-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathNodeGateway.js
More file actions
75 lines (61 loc) · 6.07 KB
/
Copy pathNodeGateway.js
File metadata and controls
75 lines (61 loc) · 6.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _lodash = require('lodash');
var _lodash2 = _interopRequireDefault(_lodash);
var _GatewayRunner = require('./GatewayRunner');
var _GatewayRunner2 = _interopRequireDefault(_GatewayRunner);
var _check = require('./util/check');
var _parseRouteConfig = require('./util/parseRouteConfig');
var _parseRouteConfig2 = _interopRequireDefault(_parseRouteConfig);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
class NodeGateway {
static getGatewayRunner(app) {
if (!this.gatewayRunner) {
this.gatewayRunner = new _GatewayRunner2.default(app);
}
return this.gatewayRunner;
}
/**
* normal init
* @param app
* @param filterClasses
*/
init(app, filterClasses = []) {
if (!(0, _check.isKoaIns)(app)) {
throw new Error('Invalid app instance');
}
if (!_lodash2.default.isArray(filterClasses)) {
filterClasses = [];
}
let gatewayRunner = NodeGateway.getGatewayRunner(app);
gatewayRunner.init(filterClasses);
}
/**
* init gateway in nodecloud
* @param app
* @param filterClasses
* @param routeConfig
* @param client reference(https://github.com/nodecloud/nodecloud-boot)
*/
initWithService(app, filterClasses = [], routeConfig, client) {
if (!(0, _check.isKoaIns)(app)) {
throw new Error('Invalid app instance');
}
if (!_lodash2.default.isArray(filterClasses)) {
filterClasses = [];
}
if (!(0, _check.isValidClient)(client)) {
throw new Error('Invalid client');
}
// add default service filter
// filterClasses.push(ServiceGatewayFilter);
app.context.routeConfig = (0, _parseRouteConfig2.default)(routeConfig);
app.context.serviceClient = client;
let gatewayRunner = NodeGateway.getGatewayRunner(app);
gatewayRunner.init(filterClasses);
}
}
exports.default = NodeGateway;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2xpYi9Ob2RlR2F0ZXdheS5qcyJdLCJuYW1lcyI6WyJOb2RlR2F0ZXdheSIsImdldEdhdGV3YXlSdW5uZXIiLCJhcHAiLCJnYXRld2F5UnVubmVyIiwiaW5pdCIsImZpbHRlckNsYXNzZXMiLCJFcnJvciIsImlzQXJyYXkiLCJpbml0V2l0aFNlcnZpY2UiLCJyb3V0ZUNvbmZpZyIsImNsaWVudCIsImNvbnRleHQiLCJzZXJ2aWNlQ2xpZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7OztBQUVBOzs7O0FBQ0E7O0FBQ0E7Ozs7OztBQUVlLE1BQU1BLFdBQU4sQ0FBa0I7QUFDN0IsV0FBT0MsZ0JBQVAsQ0FBd0JDLEdBQXhCLEVBQTZCO0FBQ3pCLFlBQUksQ0FBQyxLQUFLQyxhQUFWLEVBQXlCO0FBQ3JCLGlCQUFLQSxhQUFMLEdBQXFCLDRCQUFrQkQsR0FBbEIsQ0FBckI7QUFDSDtBQUNELGVBQU8sS0FBS0MsYUFBWjtBQUNIOztBQUVEOzs7OztBQUtBQyxTQUFLRixHQUFMLEVBQVVHLGdCQUFnQixFQUExQixFQUE4QjtBQUMxQixZQUFJLENBQUMscUJBQVNILEdBQVQsQ0FBTCxFQUFvQjtBQUNoQixrQkFBTSxJQUFJSSxLQUFKLENBQVUsc0JBQVYsQ0FBTjtBQUNIO0FBQ0QsWUFBSSxDQUFDLGlCQUFFQyxPQUFGLENBQVVGLGFBQVYsQ0FBTCxFQUErQjtBQUMzQkEsNEJBQWdCLEVBQWhCO0FBQ0g7QUFDRCxZQUFJRixnQkFBZ0JILFlBQVlDLGdCQUFaLENBQTZCQyxHQUE3QixDQUFwQjtBQUNBQyxzQkFBY0MsSUFBZCxDQUFtQkMsYUFBbkI7QUFDSDs7QUFFRDs7Ozs7OztBQU9BRyxvQkFBZ0JOLEdBQWhCLEVBQXFCRyxnQkFBZ0IsRUFBckMsRUFBeUNJLFdBQXpDLEVBQXNEQyxNQUF0RCxFQUE4RDtBQUMxRCxZQUFJLENBQUMscUJBQVNSLEdBQVQsQ0FBTCxFQUFvQjtBQUNoQixrQkFBTSxJQUFJSSxLQUFKLENBQVUsc0JBQVYsQ0FBTjtBQUNIO0FBQ0QsWUFBSSxDQUFDLGlCQUFFQyxPQUFGLENBQVVGLGFBQVYsQ0FBTCxFQUErQjtBQUMzQkEsNEJBQWdCLEVBQWhCO0FBQ0g7QUFDRCxZQUFJLENBQUMsMEJBQWNLLE1BQWQsQ0FBTCxFQUE0QjtBQUN4QixrQkFBTSxJQUFJSixLQUFKLENBQVUsZ0JBQVYsQ0FBTjtBQUNIOztBQUVEO0FBQ0E7QUFDQUosWUFBSVMsT0FBSixDQUFZRixXQUFaLEdBQTBCLGdDQUFpQkEsV0FBakIsQ0FBMUI7QUFDQVAsWUFBSVMsT0FBSixDQUFZQyxhQUFaLEdBQTRCRixNQUE1Qjs7QUFFQSxZQUFJUCxnQkFBZ0JILFlBQVlDLGdCQUFaLENBQTZCQyxHQUE3QixDQUFwQjtBQUNBQyxzQkFBY0MsSUFBZCxDQUFtQkMsYUFBbkI7QUFDSDtBQWpENEI7a0JBQVpMLFciLCJmaWxlIjoiTm9kZUdhdGV3YXkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5pbXBvcnQgR2F0ZXdheVJ1bm5lciBmcm9tICcuL0dhdGV3YXlSdW5uZXInO1xuaW1wb3J0IHtpc0tvYUlucywgaXNWYWxpZENsaWVudH0gZnJvbSAnLi91dGlsL2NoZWNrJztcbmltcG9ydCBwYXJzZVJvdXRlQ29uZmlnIGZyb20gJy4vdXRpbC9wYXJzZVJvdXRlQ29uZmlnJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTm9kZUdhdGV3YXkge1xuICAgIHN0YXRpYyBnZXRHYXRld2F5UnVubmVyKGFwcCkge1xuICAgICAgICBpZiAoIXRoaXMuZ2F0ZXdheVJ1bm5lcikge1xuICAgICAgICAgICAgdGhpcy5nYXRld2F5UnVubmVyID0gbmV3IEdhdGV3YXlSdW5uZXIoYXBwKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5nYXRld2F5UnVubmVyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIG5vcm1hbCBpbml0XG4gICAgICogQHBhcmFtIGFwcFxuICAgICAqIEBwYXJhbSBmaWx0ZXJDbGFzc2VzXG4gICAgICovXG4gICAgaW5pdChhcHAsIGZpbHRlckNsYXNzZXMgPSBbXSkge1xuICAgICAgICBpZiAoIWlzS29hSW5zKGFwcCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBhcHAgaW5zdGFuY2UnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIV8uaXNBcnJheShmaWx0ZXJDbGFzc2VzKSkge1xuICAgICAgICAgICAgZmlsdGVyQ2xhc3NlcyA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIGxldCBnYXRld2F5UnVubmVyID0gTm9kZUdhdGV3YXkuZ2V0R2F0ZXdheVJ1bm5lcihhcHApO1xuICAgICAgICBnYXRld2F5UnVubmVyLmluaXQoZmlsdGVyQ2xhc3Nlcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogaW5pdCBnYXRld2F5IGluIG5vZGVjbG91ZFxuICAgICAqIEBwYXJhbSBhcHBcbiAgICAgKiBAcGFyYW0gZmlsdGVyQ2xhc3Nlc1xuICAgICAqIEBwYXJhbSByb3V0ZUNvbmZpZ1xuICAgICAqIEBwYXJhbSBjbGllbnQgcmVmZXJlbmNlKGh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlY2xvdWQvbm9kZWNsb3VkLWJvb3QpXG4gICAgICovXG4gICAgaW5pdFdpdGhTZXJ2aWNlKGFwcCwgZmlsdGVyQ2xhc3NlcyA9IFtdLCByb3V0ZUNvbmZpZywgY2xpZW50KSB7XG4gICAgICAgIGlmICghaXNLb2FJbnMoYXBwKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGFwcCBpbnN0YW5jZScpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghXy5pc0FycmF5KGZpbHRlckNsYXNzZXMpKSB7XG4gICAgICAgICAgICBmaWx0ZXJDbGFzc2VzID0gW107XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc1ZhbGlkQ2xpZW50KGNsaWVudCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBjbGllbnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGFkZCBkZWZhdWx0IHNlcnZpY2UgZmlsdGVyXG4gICAgICAgIC8vIGZpbHRlckNsYXNzZXMucHVzaChTZXJ2aWNlR2F0ZXdheUZpbHRlcik7XG4gICAgICAgIGFwcC5jb250ZXh0LnJvdXRlQ29uZmlnID0gcGFyc2VSb3V0ZUNvbmZpZyhyb3V0ZUNvbmZpZyk7XG4gICAgICAgIGFwcC5jb250ZXh0LnNlcnZpY2VDbGllbnQgPSBjbGllbnQ7XG5cbiAgICAgICAgbGV0IGdhdGV3YXlSdW5uZXIgPSBOb2RlR2F0ZXdheS5nZXRHYXRld2F5UnVubmVyKGFwcCk7XG4gICAgICAgIGdhdGV3YXlSdW5uZXIuaW5pdChmaWx0ZXJDbGFzc2VzKTtcbiAgICB9XG59XG4iXX0=