@conduitplatform/module-tools 0.16.0-alpha.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/README.mdx +18 -0
  2. package/dist/ManagedModule.d.ts +79 -0
  3. package/dist/ManagedModule.js +433 -0
  4. package/dist/ManagedModule.js.map +1 -0
  5. package/dist/classes/ConduitActiveSchema.d.ts +16 -0
  6. package/dist/classes/ConduitActiveSchema.js +57 -0
  7. package/dist/classes/ConduitActiveSchema.js.map +1 -0
  8. package/dist/classes/ConduitServiceModule.d.ts +26 -0
  9. package/dist/classes/ConduitServiceModule.js +184 -0
  10. package/dist/classes/ConduitServiceModule.js.map +1 -0
  11. package/dist/classes/ConfigController.d.ts +7 -0
  12. package/dist/classes/ConfigController.js +27 -0
  13. package/dist/classes/ConfigController.js.map +1 -0
  14. package/dist/classes/GrpcServer.d.ts +23 -0
  15. package/dist/classes/GrpcServer.js +222 -0
  16. package/dist/classes/GrpcServer.js.map +1 -0
  17. package/dist/classes/index.d.ts +4 -0
  18. package/dist/classes/index.js +21 -0
  19. package/dist/classes/index.js.map +1 -0
  20. package/dist/grpc_health_check.proto +21 -0
  21. package/dist/helpers/GrpcHelper.d.ts +8 -0
  22. package/dist/helpers/GrpcHelper.js +43 -0
  23. package/dist/helpers/GrpcHelper.js.map +1 -0
  24. package/dist/helpers/TypeHelpers.d.ts +70 -0
  25. package/dist/helpers/TypeHelpers.js +144 -0
  26. package/dist/helpers/TypeHelpers.js.map +1 -0
  27. package/dist/helpers/index.d.ts +3 -0
  28. package/dist/helpers/index.js +20 -0
  29. package/dist/helpers/index.js.map +1 -0
  30. package/dist/helpers/wrapGrpcFunctions.d.ts +5 -0
  31. package/dist/helpers/wrapGrpcFunctions.js +56 -0
  32. package/dist/helpers/wrapGrpcFunctions.js.map +1 -0
  33. package/dist/index.d.ts +6 -0
  34. package/dist/index.js +23 -0
  35. package/dist/index.js.map +1 -0
  36. package/dist/interfaces/ConduitService.d.ts +8 -0
  37. package/dist/interfaces/ConduitService.js +3 -0
  38. package/dist/interfaces/ConduitService.js.map +1 -0
  39. package/dist/interfaces/index.d.ts +1 -0
  40. package/dist/interfaces/index.js +18 -0
  41. package/dist/interfaces/index.js.map +1 -0
  42. package/dist/logging/index.d.ts +16 -0
  43. package/dist/logging/index.js +255 -0
  44. package/dist/logging/index.js.map +1 -0
  45. package/dist/metrics/MetricsServer.d.ts +10 -0
  46. package/dist/metrics/MetricsServer.js +94 -0
  47. package/dist/metrics/MetricsServer.js.map +1 -0
  48. package/dist/metrics/clientMiddleware.d.ts +2 -0
  49. package/dist/metrics/clientMiddleware.js +273 -0
  50. package/dist/metrics/clientMiddleware.js.map +1 -0
  51. package/dist/metrics/config/defaults.d.ts +91 -0
  52. package/dist/metrics/config/defaults.js +93 -0
  53. package/dist/metrics/config/defaults.js.map +1 -0
  54. package/dist/metrics/index.d.ts +22 -0
  55. package/dist/metrics/index.js +152 -0
  56. package/dist/metrics/index.js.map +1 -0
  57. package/dist/module.proto +14 -0
  58. package/dist/routing/ProxyRouteBuilder.d.ts +21 -0
  59. package/dist/routing/ProxyRouteBuilder.js +81 -0
  60. package/dist/routing/ProxyRouteBuilder.js.map +1 -0
  61. package/dist/routing/RouteBuilder.d.ts +23 -0
  62. package/dist/routing/RouteBuilder.js +107 -0
  63. package/dist/routing/RouteBuilder.js.map +1 -0
  64. package/dist/routing/RoutingManager.d.ts +32 -0
  65. package/dist/routing/RoutingManager.js +201 -0
  66. package/dist/routing/RoutingManager.js.map +1 -0
  67. package/dist/routing/RoutingUtilities.d.ts +7 -0
  68. package/dist/routing/RoutingUtilities.js +13 -0
  69. package/dist/routing/RoutingUtilities.js.map +1 -0
  70. package/dist/routing/index.d.ts +5 -0
  71. package/dist/routing/index.js +22 -0
  72. package/dist/routing/index.js.map +1 -0
  73. package/dist/routing/wrapRouterFunctions.d.ts +7 -0
  74. package/dist/routing/wrapRouterFunctions.js +136 -0
  75. package/dist/routing/wrapRouterFunctions.js.map +1 -0
  76. package/dist/utilities/convictConfigParser.d.ts +2 -0
  77. package/dist/utilities/convictConfigParser.js +18 -0
  78. package/dist/utilities/convictConfigParser.js.map +1 -0
  79. package/dist/utilities/index.d.ts +3 -0
  80. package/dist/utilities/index.js +20 -0
  81. package/dist/utilities/index.js.map +1 -0
  82. package/dist/utilities/initializeSdk.d.ts +2 -0
  83. package/dist/utilities/initializeSdk.js +64 -0
  84. package/dist/utilities/initializeSdk.js.map +1 -0
  85. package/dist/utilities/linearBackoffTimeout.d.ts +9 -0
  86. package/dist/utilities/linearBackoffTimeout.js +119 -0
  87. package/dist/utilities/linearBackoffTimeout.js.map +1 -0
  88. package/dist/utilities/merge.d.ts +1 -0
  89. package/dist/utilities/merge.js +15 -0
  90. package/dist/utilities/merge.js.map +1 -0
  91. package/package.json +58 -0
@@ -0,0 +1,184 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __generator = (this && this.__generator) || function (thisArg, body) {
35
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
36
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
37
+ function verb(n) { return function (v) { return step([n, v]); }; }
38
+ function step(op) {
39
+ if (f) throw new TypeError("Generator is already executing.");
40
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
41
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
42
+ if (y = 0, t) op = [op[0] & 2, t.value];
43
+ switch (op[0]) {
44
+ case 0: case 1: t = op; break;
45
+ case 4: _.label++; return { value: op[1], done: false };
46
+ case 5: _.label++; y = op[1]; op = [0]; continue;
47
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
48
+ default:
49
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
50
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
51
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
52
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
53
+ if (t[2]) _.ops.pop();
54
+ _.trys.pop(); continue;
55
+ }
56
+ op = body.call(thisArg, _);
57
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
58
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
59
+ }
60
+ };
61
+ var __importDefault = (this && this.__importDefault) || function (mod) {
62
+ return (mod && mod.__esModule) ? mod : { "default": mod };
63
+ };
64
+ Object.defineProperty(exports, "__esModule", { value: true });
65
+ exports.ConduitServiceModule = void 0;
66
+ var path_1 = __importDefault(require("path"));
67
+ var events_1 = require("events");
68
+ var lodash_1 = require("lodash");
69
+ var grpc_sdk_1 = __importStar(require("@conduitplatform/grpc-sdk"));
70
+ var ConduitServiceModule = /** @class */ (function () {
71
+ function ConduitServiceModule(moduleName) {
72
+ this.events = new events_1.EventEmitter();
73
+ this._serviceHealthState = grpc_sdk_1.HealthCheckStatus.SERVING; // default for health-agnostic modules
74
+ this._moduleName = (0, lodash_1.camelCase)(moduleName);
75
+ }
76
+ Object.defineProperty(ConduitServiceModule.prototype, "port", {
77
+ get: function () {
78
+ return this._port;
79
+ },
80
+ enumerable: false,
81
+ configurable: true
82
+ });
83
+ Object.defineProperty(ConduitServiceModule.prototype, "grpcSdk", {
84
+ get: function () {
85
+ if (!this._grpcSdk)
86
+ throw new Error('grpcSdk not defined yet');
87
+ return this._grpcSdk;
88
+ },
89
+ set: function (grpcSdk) {
90
+ if (this._grpcSdk)
91
+ throw new Error('grpcSdk already defined');
92
+ this._grpcSdk = grpcSdk;
93
+ },
94
+ enumerable: false,
95
+ configurable: true
96
+ });
97
+ Object.defineProperty(ConduitServiceModule.prototype, "healthState", {
98
+ get: function () {
99
+ return this._serviceHealthState;
100
+ },
101
+ enumerable: false,
102
+ configurable: true
103
+ });
104
+ ConduitServiceModule.prototype.updateHealth = function (state, init) {
105
+ var _a, _b;
106
+ if (init === void 0) { init = false; }
107
+ if ((state === grpc_sdk_1.HealthCheckStatus.UNKNOWN && !init) ||
108
+ state === grpc_sdk_1.HealthCheckStatus.SERVICE_UNKNOWN) {
109
+ throw new Error("Cannot explicitly set gRPC health state to ".concat(grpc_sdk_1.HealthCheckStatus[state]));
110
+ }
111
+ if (!init) {
112
+ (_a = grpc_sdk_1.default.Metrics) === null || _a === void 0 ? void 0 : _a.set('module_health_state', state === grpc_sdk_1.HealthCheckStatus.SERVING ? 1 : 0);
113
+ }
114
+ if (init) {
115
+ this._serviceHealthState = state;
116
+ return;
117
+ }
118
+ if (this._serviceHealthState !== state) {
119
+ this._serviceHealthState = state;
120
+ this.events.emit("grpc-health-change:".concat(this._serviceName), state);
121
+ (_b = this._grpcSdk) === null || _b === void 0 ? void 0 : _b.config.moduleHealthProbe(this._moduleName, this._address);
122
+ }
123
+ };
124
+ ConduitServiceModule.prototype.healthCheck = function (call, callback) {
125
+ var service = call.request.service.substring(call.request.service.indexOf('.') + 1);
126
+ if (service && service !== this._serviceName) {
127
+ callback(null, {
128
+ status: grpc_sdk_1.HealthCheckStatus.SERVICE_UNKNOWN,
129
+ });
130
+ }
131
+ else {
132
+ callback(null, {
133
+ status: this._serviceHealthState,
134
+ });
135
+ }
136
+ };
137
+ ConduitServiceModule.prototype.healthWatch = function (call) {
138
+ var service = call.request.service.substring(call.request.service.indexOf('.') + 1);
139
+ if (service && service !== this._serviceName) {
140
+ call.write({
141
+ status: grpc_sdk_1.HealthCheckStatus.SERVICE_UNKNOWN,
142
+ });
143
+ }
144
+ else {
145
+ this.events.on("grpc-health-change:".concat(this._serviceName), function (status) {
146
+ call.write({
147
+ status: status,
148
+ });
149
+ });
150
+ }
151
+ };
152
+ ConduitServiceModule.prototype.addHealthCheckService = function () {
153
+ return __awaiter(this, void 0, void 0, function () {
154
+ return __generator(this, function (_a) {
155
+ switch (_a.label) {
156
+ case 0: return [4 /*yield*/, this.grpcServer.addService(path_1.default.resolve(__dirname, '../grpc_health_check.proto'), 'grpc.health.v1.Health', {
157
+ Check: this.healthCheck.bind(this),
158
+ Watch: this.healthWatch.bind(this),
159
+ })];
160
+ case 1:
161
+ _a.sent();
162
+ return [2 /*return*/];
163
+ }
164
+ });
165
+ });
166
+ };
167
+ ConduitServiceModule.prototype.addModuleService = function () {
168
+ return __awaiter(this, void 0, void 0, function () {
169
+ return __generator(this, function (_a) {
170
+ switch (_a.label) {
171
+ case 0: return [4 /*yield*/, this.grpcServer.addService(path_1.default.resolve(__dirname, '../module.proto'), 'conduit.module.v1.ConduitModule', {
172
+ SetConfig: this.setConfig.bind(this),
173
+ })];
174
+ case 1:
175
+ _a.sent();
176
+ return [2 /*return*/];
177
+ }
178
+ });
179
+ });
180
+ };
181
+ return ConduitServiceModule;
182
+ }());
183
+ exports.ConduitServiceModule = ConduitServiceModule;
184
+ //# sourceMappingURL=ConduitServiceModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConduitServiceModule.js","sourceRoot":"","sources":["../../src/classes/ConduitServiceModule.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare class ConfigController {
2
+ private static instance;
3
+ private _config;
4
+ get config(): any;
5
+ set config(config: any);
6
+ static getInstance(): ConfigController;
7
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConfigController = void 0;
4
+ var ConfigController = /** @class */ (function () {
5
+ function ConfigController() {
6
+ }
7
+ Object.defineProperty(ConfigController.prototype, "config", {
8
+ get: function () {
9
+ // return copy of config and not the original object;
10
+ return Object.assign({}, this._config);
11
+ },
12
+ set: function (config) {
13
+ this._config = config;
14
+ },
15
+ enumerable: false,
16
+ configurable: true
17
+ });
18
+ ConfigController.getInstance = function () {
19
+ if (!ConfigController.instance) {
20
+ ConfigController.instance = new ConfigController();
21
+ }
22
+ return ConfigController.instance;
23
+ };
24
+ return ConfigController;
25
+ }());
26
+ exports.ConfigController = ConfigController;
27
+ //# sourceMappingURL=ConfigController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfigController.js","sourceRoot":"","sources":["../../src/classes/ConfigController.ts"],"names":[],"mappings":";;;AAAA;IAAA;IAoBA,CAAC;IAfC,sBAAI,oCAAM;aAAV;YACE,qDAAqD;YACrD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC;aAED,UAAW,MAAW;YACpB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACxB,CAAC;;;OAJA;IAMM,4BAAW,GAAlB;QACE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE;YAC9B,gBAAgB,CAAC,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;SACpD;QACD,OAAO,gBAAgB,CAAC,QAAQ,CAAC;IACnC,CAAC;IACH,uBAAC;AAAD,CAAC,AApBD,IAoBC;AApBY,4CAAgB"}
@@ -0,0 +1,23 @@
1
+ export declare class GrpcServer {
2
+ private grpcServer?;
3
+ private started;
4
+ private startedOnce;
5
+ private _serviceNames;
6
+ private scheduledRestart;
7
+ private _postponeRequests;
8
+ private _useForce?;
9
+ private _services;
10
+ constructor(port?: string);
11
+ waitForReady(): Promise<void>;
12
+ private _url;
13
+ get url(): string;
14
+ createNewServer(useForce?: boolean): Promise<number>;
15
+ addService(protoPath: string, protoDescription: string, functions: {
16
+ [name: string]: Function;
17
+ }): Promise<GrpcServer>;
18
+ wait(time: number): Promise<void>;
19
+ refresh(): Promise<void>;
20
+ scheduleRefresh(): void;
21
+ start(): void;
22
+ private postponeRestart;
23
+ }
@@ -0,0 +1,222 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.GrpcServer = void 0;
43
+ var helpers_1 = require("../helpers");
44
+ var lodash_1 = require("lodash");
45
+ var grpc_sdk_1 = __importDefault(require("@conduitplatform/grpc-sdk"));
46
+ var GrpcServer = /** @class */ (function () {
47
+ function GrpcServer(port) {
48
+ this.started = false;
49
+ this.startedOnce = false;
50
+ this._serviceNames = [];
51
+ this._postponeRequests = 0;
52
+ this._services = [];
53
+ this._url = "0.0.0.0:".concat(port !== null && port !== void 0 ? port : '5000');
54
+ }
55
+ GrpcServer.prototype.waitForReady = function () {
56
+ return __awaiter(this, void 0, void 0, function () {
57
+ return __generator(this, function (_a) {
58
+ switch (_a.label) {
59
+ case 0:
60
+ if (!!(0, lodash_1.isNil)(this.scheduledRestart)) return [3 /*break*/, 2];
61
+ return [4 /*yield*/, this.wait(200)];
62
+ case 1:
63
+ _a.sent();
64
+ return [3 /*break*/, 0];
65
+ case 2: return [2 /*return*/];
66
+ }
67
+ });
68
+ });
69
+ };
70
+ Object.defineProperty(GrpcServer.prototype, "url", {
71
+ get: function () {
72
+ return this._url;
73
+ },
74
+ enumerable: false,
75
+ configurable: true
76
+ });
77
+ GrpcServer.prototype.createNewServer = function (useForce) {
78
+ if (useForce === void 0) { useForce = false; }
79
+ return __awaiter(this, void 0, void 0, function () {
80
+ var serverResult;
81
+ return __generator(this, function (_a) {
82
+ switch (_a.label) {
83
+ case 0:
84
+ if ((0, lodash_1.isNil)(this._useForce)) {
85
+ this._useForce = useForce;
86
+ }
87
+ return [4 /*yield*/, (0, helpers_1.createServer)(this._url)];
88
+ case 1:
89
+ serverResult = _a.sent();
90
+ this.grpcServer = serverResult.server;
91
+ this._url = this._url.split(':')[0] + ':' + serverResult.port.toString();
92
+ return [2 /*return*/, serverResult.port];
93
+ }
94
+ });
95
+ });
96
+ };
97
+ GrpcServer.prototype.addService = function (protoPath, protoDescription, functions) {
98
+ return __awaiter(this, void 0, void 0, function () {
99
+ return __generator(this, function (_a) {
100
+ switch (_a.label) {
101
+ case 0:
102
+ functions = (0, helpers_1.wrapGrpcFunctions)(functions, this.postponeRestart.bind(this));
103
+ if (!(this._serviceNames.indexOf(protoDescription) !== -1)) return [3 /*break*/, 1];
104
+ grpc_sdk_1.default.Logger.log('Service already exists, performing replace');
105
+ this._services[this._serviceNames.indexOf(protoDescription)] = {
106
+ protoPath: protoPath,
107
+ protoDescription: protoDescription,
108
+ functions: functions,
109
+ };
110
+ this.scheduleRefresh();
111
+ return [2 /*return*/, this];
112
+ case 1:
113
+ this._services.push({ protoPath: protoPath, protoDescription: protoDescription, functions: functions });
114
+ this._serviceNames.push(protoDescription);
115
+ if (!this.started) return [3 /*break*/, 2];
116
+ grpc_sdk_1.default.Logger.log('Server already started, scheduling refresh..');
117
+ this.scheduleRefresh();
118
+ return [2 /*return*/, this];
119
+ case 2:
120
+ if (!!this.grpcServer) return [3 /*break*/, 4];
121
+ return [4 /*yield*/, this.wait(1000)];
122
+ case 3:
123
+ _a.sent();
124
+ _a.label = 4;
125
+ case 4:
126
+ (0, helpers_1.addServiceToServer)(this.grpcServer, protoPath, protoDescription, functions);
127
+ return [2 /*return*/, this];
128
+ }
129
+ });
130
+ });
131
+ };
132
+ GrpcServer.prototype.wait = function (time) {
133
+ return __awaiter(this, void 0, void 0, function () {
134
+ return __generator(this, function (_a) {
135
+ return [2 /*return*/, new Promise(function (resolve, reject) {
136
+ var timeout = setTimeout(function () {
137
+ clearTimeout(timeout);
138
+ resolve();
139
+ }, time);
140
+ })];
141
+ });
142
+ });
143
+ };
144
+ GrpcServer.prototype.refresh = function () {
145
+ return __awaiter(this, void 0, void 0, function () {
146
+ var _this = this;
147
+ return __generator(this, function (_a) {
148
+ switch (_a.label) {
149
+ case 0:
150
+ if (!this.started) return [3 /*break*/, 3];
151
+ this.started = false;
152
+ if (!this._useForce) return [3 /*break*/, 1];
153
+ this.grpcServer.forceShutdown();
154
+ return [3 /*break*/, 3];
155
+ case 1:
156
+ //gracefully shutdown so that there are no service disruption
157
+ return [4 /*yield*/, new Promise(function (resolve) { return _this.grpcServer.tryShutdown(function () { return resolve(); }); })];
158
+ case 2:
159
+ //gracefully shutdown so that there are no service disruption
160
+ _a.sent();
161
+ _a.label = 3;
162
+ case 3: return [4 /*yield*/, this.createNewServer()];
163
+ case 4:
164
+ _a.sent();
165
+ this._services.forEach(function (service) {
166
+ (0, helpers_1.addServiceToServer)(_this.grpcServer, service.protoPath, service.protoDescription, service.functions);
167
+ });
168
+ if (!this.started && this.startedOnce) {
169
+ this.grpcServer.start();
170
+ this.started = true;
171
+ }
172
+ return [2 /*return*/];
173
+ }
174
+ });
175
+ });
176
+ };
177
+ GrpcServer.prototype.scheduleRefresh = function () {
178
+ var _this = this;
179
+ if (this.scheduledRestart) {
180
+ clearTimeout(this.scheduledRestart);
181
+ }
182
+ var self = this;
183
+ this.scheduledRestart = setTimeout(function () { return __awaiter(_this, void 0, void 0, function () {
184
+ return __generator(this, function (_a) {
185
+ switch (_a.label) {
186
+ case 0:
187
+ grpc_sdk_1.default.Logger.log('Begin refresh');
188
+ return [4 /*yield*/, self.refresh()];
189
+ case 1:
190
+ _a.sent();
191
+ grpc_sdk_1.default.Logger.log('Refresh complete');
192
+ clearTimeout(self.scheduledRestart);
193
+ self.scheduledRestart = undefined;
194
+ self._postponeRequests = 0;
195
+ return [2 /*return*/];
196
+ }
197
+ });
198
+ }); }, 2000);
199
+ };
200
+ GrpcServer.prototype.start = function () {
201
+ var _a;
202
+ if (this.started) {
203
+ grpc_sdk_1.default.Logger.error('gRPC server is already running!');
204
+ return;
205
+ }
206
+ else if (!this.started && this.startedOnce) {
207
+ grpc_sdk_1.default.Logger.error('gRPC server is down for refresh!');
208
+ }
209
+ this.started = true;
210
+ this.startedOnce = true;
211
+ (_a = this.grpcServer) === null || _a === void 0 ? void 0 : _a.start();
212
+ };
213
+ GrpcServer.prototype.postponeRestart = function () {
214
+ if (!this.scheduledRestart || this._postponeRequests > 5)
215
+ return;
216
+ this._postponeRequests++;
217
+ this.scheduleRefresh();
218
+ };
219
+ return GrpcServer;
220
+ }());
221
+ exports.GrpcServer = GrpcServer;
222
+ //# sourceMappingURL=GrpcServer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GrpcServer.js","sourceRoot":"","sources":["../../src/classes/GrpcServer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sCAAiF;AAEjF,iCAA+B;AAC/B,uEAAuD;AAEvD;IAcE,oBAAY,IAAa;QAZjB,YAAO,GAAY,KAAK,CAAC;QACzB,gBAAW,GAAY,KAAK,CAAC;QAC7B,kBAAa,GAAa,EAAE,CAAC;QAE7B,sBAAiB,GAAG,CAAC,CAAC;QAEtB,cAAS,GAIX,EAAE,CAAC;QAGP,IAAI,CAAC,IAAI,GAAG,kBAAW,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,MAAM,CAAE,CAAC;IAC1C,CAAC;IAEY,iCAAY,GAAzB;;;;;6BACS,CAAC,IAAA,cAAK,EAAC,IAAI,CAAC,gBAAgB,CAAC;wBAClC,qBAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAA;;wBAApB,SAAoB,CAAC;;;;;;KAExB;IAID,sBAAI,2BAAG;aAAP;YACE,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC;;;OAAA;IAEK,oCAAe,GAArB,UAAsB,QAAyB;QAAzB,yBAAA,EAAA,gBAAyB;;;;;;wBAC7C,IAAI,IAAA,cAAK,EAAC,IAAI,CAAC,SAAS,CAAC,EAAE;4BACzB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;yBAC3B;wBACoB,qBAAM,IAAA,sBAAY,EAAC,IAAI,CAAC,IAAI,CAAC,EAAA;;wBAA5C,YAAY,GAAG,SAA6B;wBAClD,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC;wBACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACzE,sBAAO,YAAY,CAAC,IAAI,EAAC;;;;KAC1B;IAEK,+BAAU,GAAhB,UACE,SAAiB,EACjB,gBAAwB,EACxB,SAAuC;;;;;wBAEvC,SAAS,GAAG,IAAA,2BAAiB,EAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;6BACtE,CAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAA,EAAnD,wBAAmD;wBACrD,kBAAc,CAAC,MAAM,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;wBACxE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,GAAG;4BAC7D,SAAS,WAAA;4BACT,gBAAgB,kBAAA;4BAChB,SAAS,WAAA;yBACV,CAAC;wBACF,IAAI,CAAC,eAAe,EAAE,CAAC;wBACvB,sBAAO,IAAI,EAAC;;wBAEZ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,WAAA,EAAE,gBAAgB,kBAAA,EAAE,SAAS,WAAA,EAAE,CAAC,CAAC;wBAChE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;6BACtC,IAAI,CAAC,OAAO,EAAZ,wBAAY;wBACd,kBAAc,CAAC,MAAM,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;wBAC1E,IAAI,CAAC,eAAe,EAAE,CAAC;wBACvB,sBAAO,IAAI,EAAC;;6BAER,CAAC,IAAI,CAAC,UAAU,EAAhB,wBAAgB;wBAClB,qBAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAA;;wBAArB,SAAqB,CAAC;;;wBAExB,IAAA,4BAAkB,EAAC,IAAI,CAAC,UAAW,EAAE,SAAS,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAC;wBAC7E,sBAAO,IAAI,EAAC;;;;KAGjB;IAEK,yBAAI,GAAV,UAAW,IAAY;;;gBACrB,sBAAO,IAAI,OAAO,CAAO,UAAC,OAAO,EAAE,MAAM;wBACvC,IAAM,OAAO,GAAG,UAAU,CAAC;4BACzB,YAAY,CAAC,OAAO,CAAC,CAAC;4BACtB,OAAO,EAAE,CAAC;wBACZ,CAAC,EAAE,IAAI,CAAC,CAAC;oBACX,CAAC,CAAC,EAAC;;;KACJ;IAEK,4BAAO,GAAb;;;;;;6BACM,IAAI,CAAC,OAAO,EAAZ,wBAAY;wBACd,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;6BACjB,IAAI,CAAC,SAAS,EAAd,wBAAc;wBAChB,IAAI,CAAC,UAAW,CAAC,aAAa,EAAE,CAAC;;;oBAEjC,6DAA6D;oBAC7D,qBAAM,IAAI,OAAO,CAAO,UAAA,OAAO,IAAI,OAAA,KAAI,CAAC,UAAW,CAAC,WAAW,CAAC,cAAM,OAAA,OAAO,EAAE,EAAT,CAAS,CAAC,EAA7C,CAA6C,CAAC,EAAA;;wBADjF,6DAA6D;wBAC7D,SAAiF,CAAC;;4BAGtF,qBAAM,IAAI,CAAC,eAAe,EAAE,EAAA;;wBAA5B,SAA4B,CAAC;wBAC7B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAA,OAAO;4BAC5B,IAAA,4BAAkB,EAChB,KAAI,CAAC,UAAW,EAChB,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,gBAAgB,EACxB,OAAO,CAAC,SAAS,CAClB,CAAC;wBACJ,CAAC,CAAC,CAAC;wBACH,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE;4BACrC,IAAI,CAAC,UAAW,CAAC,KAAK,EAAE,CAAC;4BACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;yBACrB;;;;;KACF;IAED,oCAAe,GAAf;QAAA,iBAaC;QAZC,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;SACrC;QACD,IAAM,IAAI,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC;;;;wBACjC,kBAAc,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;wBAC3C,qBAAM,IAAI,CAAC,OAAO,EAAE,EAAA;;wBAApB,SAAoB,CAAC;wBACrB,kBAAc,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;wBAC9C,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;wBACpC,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;wBAClC,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;;;;aAC5B,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;IAED,0BAAK,GAAL;;QACE,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,kBAAc,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;YAC/D,OAAO;SACR;aAAM,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE;YAC5C,kBAAc,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;SACjE;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,MAAA,IAAI,CAAC,UAAU,0CAAE,KAAK,EAAE,CAAC;IAC3B,CAAC;IAEO,oCAAe,GAAvB;QACE,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,iBAAiB,GAAG,CAAC;YAAE,OAAO;QACjE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IACH,iBAAC;AAAD,CAAC,AA1ID,IA0IC;AA1IY,gCAAU"}
@@ -0,0 +1,4 @@
1
+ export * from './ConduitActiveSchema';
2
+ export * from './GrpcServer';
3
+ export * from './ConduitServiceModule';
4
+ export * from './ConfigController';
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./ConduitActiveSchema"), exports);
18
+ __exportStar(require("./GrpcServer"), exports);
19
+ __exportStar(require("./ConduitServiceModule"), exports);
20
+ __exportStar(require("./ConfigController"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/classes/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,+CAA6B;AAC7B,yDAAuC;AACvC,qDAAmC"}
@@ -0,0 +1,21 @@
1
+ syntax = "proto3";
2
+ package grpc.health.v1;
3
+
4
+ message HealthCheckRequest {
5
+ string service = 1;
6
+ }
7
+
8
+ message HealthCheckResponse {
9
+ enum ServingStatus {
10
+ UNKNOWN = 0;
11
+ SERVING = 1;
12
+ NOT_SERVING = 2;
13
+ SERVICE_UNKNOWN = 3;
14
+ }
15
+ ServingStatus status = 1;
16
+ }
17
+
18
+ service Health {
19
+ rpc Check(HealthCheckRequest) returns (HealthCheckResponse);
20
+ rpc Watch(HealthCheckRequest) returns (stream HealthCheckResponse);
21
+ }
@@ -0,0 +1,8 @@
1
+ import { Server } from '@grpc/grpc-js';
2
+ export declare function createServer(port: string): Promise<{
3
+ server: Server;
4
+ port: number;
5
+ }>;
6
+ export declare function addServiceToServer(server: Server, protoPath: string, descriptorObject: string, functions: {
7
+ [name: string]: Function;
8
+ }): void;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addServiceToServer = exports.createServer = void 0;
4
+ var grpc_js_1 = require("@grpc/grpc-js");
5
+ var protoLoader = require('@grpc/proto-loader');
6
+ function createServer(port) {
7
+ var grpcServer = new grpc_js_1.Server({
8
+ 'grpc.max_receive_message_length': 1024 * 1024 * 100,
9
+ 'grpc.max_send_message_length': 1024 * 1024 * 100,
10
+ });
11
+ return new Promise(function (resolve, reject) {
12
+ grpcServer.bindAsync(port, grpc_js_1.ServerCredentials.createInsecure(), function (err, port) {
13
+ if (err) {
14
+ reject(err);
15
+ }
16
+ else {
17
+ resolve({
18
+ server: grpcServer,
19
+ port: port,
20
+ });
21
+ }
22
+ });
23
+ });
24
+ }
25
+ exports.createServer = createServer;
26
+ function addServiceToServer(server, protoPath, descriptorObject, functions) {
27
+ var packageDefinition = protoLoader.loadSync(protoPath, {
28
+ keepCase: true,
29
+ longs: String,
30
+ enums: String,
31
+ defaults: true,
32
+ oneofs: true,
33
+ });
34
+ var protoDescriptor = (0, grpc_js_1.loadPackageDefinition)(packageDefinition);
35
+ var objs = descriptorObject.split('.');
36
+ var descObj = protoDescriptor;
37
+ objs.forEach(function (r) {
38
+ descObj = descObj[r];
39
+ });
40
+ server.addService(descObj.service, functions);
41
+ }
42
+ exports.addServiceToServer = addServiceToServer;
43
+ //# sourceMappingURL=GrpcHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GrpcHelper.js","sourceRoot":"","sources":["../../src/helpers/GrpcHelper.ts"],"names":[],"mappings":";;;AAAA,yCAKuB;AAEvB,IAAM,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAElD,SAAgB,YAAY,CAAC,IAAY;IACvC,IAAM,UAAU,GAAW,IAAI,gBAAM,CAAC;QACpC,iCAAiC,EAAE,IAAI,GAAG,IAAI,GAAG,GAAG;QACpD,8BAA8B,EAAE,IAAI,GAAG,IAAI,GAAG,GAAG;KAClD,CAAC,CAAC;IACH,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;QACjC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,2BAAiB,CAAC,cAAc,EAAE,EAAE,UAAC,GAAG,EAAE,IAAI;YACvE,IAAI,GAAG,EAAE;gBACP,MAAM,CAAC,GAAG,CAAC,CAAC;aACb;iBAAM;gBACL,OAAO,CAAC;oBACN,MAAM,EAAE,UAAU;oBAClB,IAAI,MAAA;iBACL,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAjBD,oCAiBC;AAED,SAAgB,kBAAkB,CAChC,MAAc,EACd,SAAiB,EACjB,gBAAwB,EACxB,SAAuC;IAEvC,IAAM,iBAAiB,GAAG,WAAW,CAAC,QAAQ,CAAC,SAAS,EAAE;QACxD,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,IAAI;KACb,CAAC,CAAC;IACH,IAAM,eAAe,GAAG,IAAA,+BAAqB,EAAC,iBAAiB,CAAC,CAAC;IACjE,IAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,OAAO,GAAQ,eAAe,CAAC;IACnC,IAAI,CAAC,OAAO,CAAC,UAAC,CAAS;QACrB,OAAO,GAAG,OAAO,CAAC,CAAC,CAAQ,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,SAAyC,CAAC,CAAC;AAChF,CAAC;AArBD,gDAqBC"}