@conduitplatform/module-tools 0.16.5 → 0.16.7

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 (71) hide show
  1. package/dist/classes/ConduitServiceModule.d.ts +2 -2
  2. package/dist/index.cjs +1776 -0
  3. package/dist/index.cjs.map +1 -0
  4. package/dist/index.esm.js +1749 -0
  5. package/dist/index.esm.js.map +1 -0
  6. package/dist/utilities/initializeSdk.d.ts +1 -1
  7. package/package.json +27 -5
  8. package/dist/ManagedModule.js +0 -221
  9. package/dist/ManagedModule.js.map +0 -1
  10. package/dist/classes/ConduitActiveSchema.js +0 -44
  11. package/dist/classes/ConduitActiveSchema.js.map +0 -1
  12. package/dist/classes/ConduitServiceModule.js +0 -110
  13. package/dist/classes/ConduitServiceModule.js.map +0 -1
  14. package/dist/classes/ConfigController.js +0 -16
  15. package/dist/classes/ConfigController.js.map +0 -1
  16. package/dist/classes/GrpcServer.js +0 -121
  17. package/dist/classes/GrpcServer.js.map +0 -1
  18. package/dist/classes/index.js +0 -5
  19. package/dist/classes/index.js.map +0 -1
  20. package/dist/helpers/GrpcHelper.js +0 -38
  21. package/dist/helpers/GrpcHelper.js.map +0 -1
  22. package/dist/helpers/GrpcToParsedRouterRequest.js +0 -15
  23. package/dist/helpers/GrpcToParsedRouterRequest.js.map +0 -1
  24. package/dist/helpers/TypeHelpers.js +0 -79
  25. package/dist/helpers/TypeHelpers.js.map +0 -1
  26. package/dist/helpers/index.js +0 -5
  27. package/dist/helpers/index.js.map +0 -1
  28. package/dist/helpers/wrapGrpcFunctions.js +0 -48
  29. package/dist/helpers/wrapGrpcFunctions.js.map +0 -1
  30. package/dist/index.js +0 -7
  31. package/dist/index.js.map +0 -1
  32. package/dist/interfaces/ConduitService.js +0 -2
  33. package/dist/interfaces/ConduitService.js.map +0 -1
  34. package/dist/interfaces/ModuleLifecycleStage.js +0 -9
  35. package/dist/interfaces/ModuleLifecycleStage.js.map +0 -1
  36. package/dist/interfaces/index.js +0 -3
  37. package/dist/interfaces/index.js.map +0 -1
  38. package/dist/logging/index.js +0 -124
  39. package/dist/logging/index.js.map +0 -1
  40. package/dist/metrics/MetricsServer.js +0 -42
  41. package/dist/metrics/MetricsServer.js.map +0 -1
  42. package/dist/metrics/clientMiddleware.js +0 -120
  43. package/dist/metrics/clientMiddleware.js.map +0 -1
  44. package/dist/metrics/config/defaults.js +0 -91
  45. package/dist/metrics/config/defaults.js.map +0 -1
  46. package/dist/metrics/index.js +0 -109
  47. package/dist/metrics/index.js.map +0 -1
  48. package/dist/routing/ProxyRouteBuilder.js +0 -74
  49. package/dist/routing/ProxyRouteBuilder.js.map +0 -1
  50. package/dist/routing/RouteBuilder.js +0 -100
  51. package/dist/routing/RouteBuilder.js.map +0 -1
  52. package/dist/routing/RoutingController.js +0 -21
  53. package/dist/routing/RoutingController.js.map +0 -1
  54. package/dist/routing/RoutingManager.js +0 -140
  55. package/dist/routing/RoutingManager.js.map +0 -1
  56. package/dist/routing/RoutingUtilities.js +0 -9
  57. package/dist/routing/RoutingUtilities.js.map +0 -1
  58. package/dist/routing/index.js +0 -6
  59. package/dist/routing/index.js.map +0 -1
  60. package/dist/routing/wrapRouterFunctions.js +0 -120
  61. package/dist/routing/wrapRouterFunctions.js.map +0 -1
  62. package/dist/utilities/convictConfigParser.js +0 -14
  63. package/dist/utilities/convictConfigParser.js.map +0 -1
  64. package/dist/utilities/index.js +0 -4
  65. package/dist/utilities/index.js.map +0 -1
  66. package/dist/utilities/initializeSdk.js +0 -35
  67. package/dist/utilities/initializeSdk.js.map +0 -1
  68. package/dist/utilities/linearBackoffTimeout.js +0 -57
  69. package/dist/utilities/linearBackoffTimeout.js.map +0 -1
  70. package/dist/utilities/merge.js +0 -11
  71. package/dist/utilities/merge.js.map +0 -1
package/package.json CHANGED
@@ -1,25 +1,39 @@
1
1
  {
2
2
  "name": "@conduitplatform/module-tools",
3
- "version": "0.16.5",
4
- "main": "dist/index.js",
3
+ "version": "0.16.7",
4
+ "main": "dist/index.cjs",
5
+ "module": "dist/index.esm.js",
5
6
  "types": "dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "import": {
10
+ "default": "./dist/index.esm.js",
11
+ "types": "./dist/index.d.ts"
12
+ },
13
+ "require": {
14
+ "default": "./dist/index.cjs",
15
+ "types": "./dist/index.d.ts"
16
+ }
17
+ }
18
+ },
6
19
  "engines": {
7
20
  "node": ">=14"
8
21
  },
9
22
  "type": "module",
10
23
  "scripts": {
11
24
  "prepublish": "npm run build",
12
- "build": "rimraf dist && tsc",
25
+ "build": "rimraf dist && rollup -c",
13
26
  "postbuild": "copyfiles -u 1 src/*.proto src/**/*.json ./dist/"
14
27
  },
15
28
  "license": "MIT",
16
29
  "dependencies": {
17
- "@grpc/grpc-js": "^1.9.7",
30
+ "@grpc/grpc-js": "^1.10.9",
18
31
  "@grpc/proto-loader": "^0.7.6",
19
32
  "abort-controller-x": "^0.4.1",
20
33
  "convict": "^6.2.4",
21
34
  "express": "^4.19.2",
22
35
  "fast-jwt": "^3.3.2",
36
+ "lodash": "^4.17.21",
23
37
  "lodash-es": "^4.17.21",
24
38
  "prom-client": "^15.1.0",
25
39
  "protobufjs": "^7.2.6",
@@ -40,19 +54,27 @@
40
54
  },
41
55
  "devDependencies": {
42
56
  "@conduitplatform/grpc-sdk": "*",
57
+ "@rollup/plugin-commonjs": "^26.0.1",
58
+ "@rollup/plugin-json": "^6.1.0",
59
+ "@rollup/plugin-replace": "^5.0.7",
60
+ "@rollup/plugin-typescript": "^11.1.6",
43
61
  "@types/convict": "^6.1.6",
44
62
  "@types/express": "^4.17.21",
45
63
  "@types/fs-extra": "^11.0.4",
46
64
  "@types/google-protobuf": "^3.15.12",
65
+ "@types/lodash": "^4.17.6",
47
66
  "@types/lodash-es": "^4.17.12",
48
67
  "@types/node": "20.11.24",
49
68
  "copyfiles": "^2.4.1",
50
69
  "rimraf": "^5.0.5",
70
+ "rollup": "^4.18.0",
71
+ "ts-node": "^10.9.2",
51
72
  "ts-proto": "^1.167.1",
73
+ "tslib": "^2.6.3",
52
74
  "typescript": "~5.3.3"
53
75
  },
54
76
  "peerDependencies": {
55
77
  "@conduitplatform/grpc-sdk": "*",
56
- "@grpc/grpc-js": "^1.9.7"
78
+ "@grpc/grpc-js": "^1.10.9"
57
79
  }
58
80
  }
@@ -1,221 +0,0 @@
1
- import { ConduitServiceModule, ConfigController, GrpcServer } from './classes/index.js';
2
- import { kebabCase } from 'lodash-es';
3
- import { status } from '@grpc/grpc-js';
4
- import convict from 'convict';
5
- import ConduitGrpcSdk from '@conduitplatform/grpc-sdk';
6
- import { initializeSdk, merge } from './utilities/index.js';
7
- import { convictConfigParser } from './utilities/convictConfigParser.js';
8
- import { RoutingManager } from './routing/index.js';
9
- import { RoutingController } from './routing/RoutingController.js';
10
- import { ModuleLifecycleStage } from './interfaces/index.js';
11
- export class ManagedModule extends ConduitServiceModule {
12
- constructor(moduleName) {
13
- var _a;
14
- super(moduleName);
15
- this.configOverride = false;
16
- this._moduleState = ModuleLifecycleStage.CREATE_GRPC;
17
- if (!process.env.CONDUIT_SERVER) {
18
- throw new Error('CONDUIT_SERVER is undefined, specify Conduit server URL');
19
- }
20
- this.servicePort = (_a = process.env.GRPC_PORT) !== null && _a !== void 0 ? _a : '5000';
21
- this.serviceAddress =
22
- // @compat (v0.15): SERVICE_IP -> SERVICE_URL
23
- process.env.SERVICE_URL || process.env.SERVICE_IP || '0.0.0.0:' + this.servicePort;
24
- try {
25
- this.grpcSdk = initializeSdk(process.env.CONDUIT_SERVER, this.name, true, () => {
26
- return this.healthState;
27
- });
28
- }
29
- catch (e) {
30
- throw new Error('Failed to initialize grpcSdk');
31
- }
32
- }
33
- get name() {
34
- return this._moduleName;
35
- }
36
- get address() {
37
- return this._address;
38
- }
39
- async start() {
40
- await this.grpcSdk.initialize();
41
- this.initialize(this.serviceAddress, this.servicePort);
42
- try {
43
- await this.preRegisterLifecycle();
44
- await this.grpcSdk.config.registerModule(this.name, this.address, this.healthState);
45
- }
46
- catch (err) {
47
- ConduitGrpcSdk.Logger.error('Failed to initialize server');
48
- ConduitGrpcSdk.Logger.error(err);
49
- process.exit(-1);
50
- }
51
- await this.postRegisterLifecycle().catch((err) => {
52
- ConduitGrpcSdk.Logger.error('Failed to activate module');
53
- ConduitGrpcSdk.Logger.error(err);
54
- process.exit(-1);
55
- });
56
- }
57
- /**
58
- * This is the first function triggered on module spin up.
59
- * @param address {string} external address:port of service (LoadBalancer)
60
- * @param port {string} port to bring up gRPC service
61
- */
62
- initialize(address, port) {
63
- this._address = address;
64
- this._port = port;
65
- if (this.configSchema) {
66
- this.config = convict(this.configSchema);
67
- }
68
- }
69
- /**
70
- * This is triggered before spinning up the Grpc Server
71
- * of the module. On this stage, the redis bus and state have
72
- * not yet been initialized, and only communications with Conduit core
73
- * have been established.
74
- */
75
- async preServerStart() { }
76
- /**
77
- * This is triggered right after Grpc Server start.
78
- * At this stage the core module will communicate with your service
79
- * for health checks, and the Bus and State management mechanics
80
- * are online and available.
81
- */
82
- async onServerStart() { }
83
- /**
84
- * Triggers right before registering the module with Conduit Core.
85
- */
86
- async preRegister() { }
87
- /**
88
- * Triggers when module has been registered with Conduit Core
89
- * This is the step where you should initialize your
90
- * module's general routing (admin or client) and any other operation,
91
- * that would require other modules being able to reach you
92
- */
93
- async onRegister() { }
94
- /**
95
- * This is triggered when the module receives new configuration.
96
- * At this step the configuration has not been checked yet,
97
- * and has only been parsed.
98
- * @param config
99
- */
100
- async preConfig(config) {
101
- return config;
102
- }
103
- /**
104
- * This is triggered when new configuration has been applied.
105
- * This happens either when changes are being made on the configuration,
106
- * or on module start up, where the config is recovered from the database.
107
- * In either case the configuration is now available through the
108
- * Config Controller of the sdk.
109
- */
110
- async onConfig() { }
111
- /**
112
- * Registers common and module-specific metric types.
113
- */
114
- async registerMetrics() {
115
- if (ConduitGrpcSdk.Metrics) {
116
- ConduitGrpcSdk.Metrics.initializeDefaultMetrics();
117
- if (this.metricsSchema) {
118
- Object.values(this.metricsSchema).forEach(metric => {
119
- ConduitGrpcSdk.Metrics.registerMetric(metric.type, metric.config);
120
- });
121
- }
122
- }
123
- }
124
- /**
125
- * Initializes metric startup values.
126
- * Implemented by individual modules.
127
- */
128
- async initializeMetrics() { }
129
- async createGrpcServer() {
130
- this.grpcServer = new GrpcServer(this._port);
131
- this._port = (await this.grpcServer.createNewServer()).toString();
132
- }
133
- async startGrpcServer() {
134
- if (this.service) {
135
- this._serviceName = this.service.protoDescription.substring(this.service.protoDescription.indexOf('.') + 1);
136
- await this.grpcServer.addService(this.service.protoPath, this.service.protoDescription, this.service.functions);
137
- }
138
- RoutingManager.ClientController = new RoutingController();
139
- RoutingManager.AdminController = new RoutingController();
140
- await this.addHealthCheckService();
141
- await this.addModuleService();
142
- await this.grpcServer.start();
143
- ConduitGrpcSdk.Logger.log('gRPC server listening on ' + this._port);
144
- }
145
- async setConfig(call, callback) {
146
- var _a;
147
- try {
148
- if (!this.config) {
149
- return callback({
150
- code: status.INVALID_ARGUMENT,
151
- message: 'Module is not configurable',
152
- });
153
- }
154
- let config = JSON.parse(call.request.newConfig);
155
- config = merge(this.config.getProperties(), config);
156
- config = await this.preConfig(config);
157
- const previousConfig = this.config.getProperties();
158
- try {
159
- this.config.load(config).validate({
160
- allowed: 'warn',
161
- });
162
- config = this.config.getProperties();
163
- callback(null, { updatedConfig: JSON.stringify(config) });
164
- }
165
- catch (e) {
166
- this.config = convict(this.configSchema);
167
- this.config.load(previousConfig);
168
- return callback({
169
- code: status.INVALID_ARGUMENT,
170
- message: 'Invalid configuration values: ' + e.message,
171
- });
172
- }
173
- ConfigController.getInstance().config = config;
174
- await this.onConfig();
175
- (_a = this.grpcSdk.bus) === null || _a === void 0 ? void 0 : _a.publish(kebabCase(this.name) + ':config:update', JSON.stringify(config));
176
- }
177
- catch (e) {
178
- return callback({ code: status.INTERNAL, message: e.message });
179
- }
180
- }
181
- /** Used to update the module's configuration on initial Redis/DB reconciliation. */
182
- async handleConfigSyncUpdate() {
183
- if (!this.config)
184
- return;
185
- this.grpcSdk.bus.subscribe(`${kebabCase(this.name)}:config:update`, async (message) => {
186
- ConfigController.getInstance().config = await this.preConfig(JSON.parse(message));
187
- await this.onConfig();
188
- });
189
- }
190
- async preRegisterLifecycle() {
191
- await this.createGrpcServer();
192
- this._moduleState = ModuleLifecycleStage.PRE_SERVER_START;
193
- await this.preServerStart();
194
- await this.grpcSdk.initializeEventBus();
195
- await this.handleConfigSyncUpdate();
196
- await this.registerMetrics();
197
- await this.startGrpcServer();
198
- this._moduleState = ModuleLifecycleStage.SERVER_STARTED;
199
- await this.onServerStart();
200
- await this.initializeMetrics();
201
- this._moduleState = ModuleLifecycleStage.PRE_REGISTER;
202
- await this.preRegister();
203
- }
204
- async postRegisterLifecycle() {
205
- this._moduleState = ModuleLifecycleStage.POST_REGISTER;
206
- this.registered = true;
207
- await this.onRegister();
208
- if (this.config) {
209
- const configSchema = this.config.getSchema();
210
- let config = this.config.getProperties();
211
- config = await this.preConfig(config);
212
- config = await this.grpcSdk.config.configure(config, convictConfigParser(configSchema), this.configOverride);
213
- ConfigController.getInstance();
214
- if (config)
215
- ConfigController.getInstance().config = config;
216
- if (!config || config.active || !config.hasOwnProperty('active'))
217
- await this.onConfig();
218
- }
219
- }
220
- }
221
- //# sourceMappingURL=ManagedModule.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ManagedModule.js","sourceRoot":"","sources":["../src/ManagedModule.ts"],"names":[],"mappings":"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"}
@@ -1,44 +0,0 @@
1
- import { ConduitSchema, } from '@conduitplatform/grpc-sdk';
2
- export class ConduitActiveSchema extends ConduitSchema {
3
- constructor(dbInstance, name, fields, modelOptions, collectionName) {
4
- super(name, fields !== null && fields !== void 0 ? fields : {}, modelOptions, collectionName);
5
- this.dbInstance = dbInstance;
6
- }
7
- findOne(query, select, populate, userId, scope) {
8
- return this.dbInstance.findOne(this.name, query, select, populate, userId, scope);
9
- }
10
- findMany(query, select, skip, limit, sort, populate, userId, scope) {
11
- return this.dbInstance.findMany(this.name, query, select, skip, limit, sort, populate, userId, scope);
12
- }
13
- create(query, userId, scope) {
14
- return this.dbInstance.create(this.name, query, userId, scope);
15
- }
16
- createMany(query, userId, scope) {
17
- return this.dbInstance.createMany(this.name, query, userId, scope);
18
- }
19
- findByIdAndUpdate(id, document, populate, userId, scope) {
20
- return this.dbInstance.findByIdAndUpdate(this.name, id, document, populate, userId, scope);
21
- }
22
- findByIdAndReplace(id, document, populate, userId, scope) {
23
- return this.dbInstance.findByIdAndReplace(this.name, id, document, populate, userId, scope);
24
- }
25
- replaceOne(filterQuery, query, populate, userId, scope) {
26
- return this.dbInstance.replaceOne(this.name, filterQuery, query, populate, userId, scope);
27
- }
28
- updateOne(filterQuery, query, populate, userId, scope) {
29
- return this.dbInstance.updateOne(this.name, filterQuery, query, populate, userId, scope);
30
- }
31
- updateMany(filterQuery, query, populate, userId, scope) {
32
- return this.dbInstance.updateMany(this.name, filterQuery, query, populate, userId, scope);
33
- }
34
- deleteOne(query, userId, scope) {
35
- return this.dbInstance.deleteOne(this.name, query, userId, scope);
36
- }
37
- deleteMany(query, userId, scope) {
38
- return this.dbInstance.deleteMany(this.name, query, userId, scope);
39
- }
40
- countDocuments(query, userId, scope) {
41
- return this.dbInstance.countDocuments(this.name, query, userId, scope);
42
- }
43
- }
44
- //# sourceMappingURL=ConduitActiveSchema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConduitActiveSchema.js","sourceRoot":"","sources":["../../src/classes/ConduitActiveSchema.ts"],"names":[],"mappings":"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"}
@@ -1,110 +0,0 @@
1
- import path from 'path';
2
- import { EventEmitter } from 'events';
3
- import { camelCase } from 'lodash-es';
4
- import ConduitGrpcSdk, { HealthCheckResponse_ServingStatus, HealthCheckStatus, } from '@conduitplatform/grpc-sdk';
5
- import { RoutingManager } from '../routing/index.js';
6
- import { fileURLToPath } from 'node:url';
7
- const __filename = fileURLToPath(import.meta.url);
8
- const __dirname = path.dirname(__filename);
9
- export class ConduitServiceModule {
10
- constructor(moduleName) {
11
- this.events = new EventEmitter();
12
- this._serviceHealthState = HealthCheckStatus.SERVING; // default for health-agnostic modules
13
- this._registered = false;
14
- this._moduleName = camelCase(moduleName);
15
- }
16
- set registered(registered) {
17
- this._registered = registered;
18
- }
19
- get port() {
20
- return this._port;
21
- }
22
- get grpcSdk() {
23
- if (!this._grpcSdk)
24
- throw new Error('grpcSdk not defined yet');
25
- return this._grpcSdk;
26
- }
27
- set grpcSdk(grpcSdk) {
28
- if (this._grpcSdk)
29
- throw new Error('grpcSdk already defined');
30
- this._grpcSdk = grpcSdk;
31
- }
32
- get healthState() {
33
- return this._serviceHealthState;
34
- }
35
- updateHealth(state, init = false) {
36
- var _a, _b;
37
- if ((state === HealthCheckStatus.UNKNOWN && !init) ||
38
- state === HealthCheckStatus.SERVICE_UNKNOWN) {
39
- throw new Error(`Cannot explicitly set gRPC health state to ${HealthCheckStatus[state]}`);
40
- }
41
- if (!init) {
42
- (_a = ConduitGrpcSdk.Metrics) === null || _a === void 0 ? void 0 : _a.set('module_health_state', state === HealthCheckStatus.SERVING ? 1 : 0);
43
- }
44
- if (init) {
45
- this._serviceHealthState = state;
46
- return;
47
- }
48
- if (this._serviceHealthState !== state) {
49
- this._serviceHealthState = state;
50
- // do not emit health updates until registered
51
- if (this._registered) {
52
- this.events.emit(`grpc-health-change:${this._serviceName}`, state);
53
- (_b = this._grpcSdk) === null || _b === void 0 ? void 0 : _b.config.moduleHealthProbe(this._moduleName, this._address);
54
- }
55
- }
56
- }
57
- healthCheck(call, callback) {
58
- const service = call.request.service.substring(call.request.service.indexOf('.') + 1);
59
- if (service && service !== this._serviceName) {
60
- callback(null, {
61
- status: HealthCheckStatus.SERVICE_UNKNOWN,
62
- });
63
- }
64
- else {
65
- if (!this._registered) {
66
- return callback(null, {
67
- status: HealthCheckResponse_ServingStatus.UNKNOWN,
68
- });
69
- }
70
- callback(null, {
71
- status: this._serviceHealthState,
72
- });
73
- }
74
- }
75
- healthWatch(call) {
76
- const service = call.request.service.substring(call.request.service.indexOf('.') + 1);
77
- if (service && service !== this._serviceName) {
78
- call.write({
79
- status: HealthCheckStatus.SERVICE_UNKNOWN,
80
- });
81
- }
82
- else {
83
- this.events.on(`grpc-health-change:${this._serviceName}`, (status) => {
84
- call.write({
85
- status: status,
86
- });
87
- });
88
- }
89
- }
90
- async addHealthCheckService() {
91
- await this.grpcServer.addService(path.resolve(__dirname, '../grpc_health_check.proto'), 'grpc.health.v1.Health', {
92
- Check: this.healthCheck.bind(this),
93
- Watch: this.healthWatch.bind(this),
94
- });
95
- }
96
- async addModuleService() {
97
- await this.grpcServer.addService(path.resolve(__dirname, '../module.proto'), 'conduit.module.v1.ConduitModule', {
98
- SetConfig: this.setConfig.bind(this),
99
- });
100
- await this.grpcServer.addService(path.resolve(__dirname, '../module.proto'), 'conduit.module.v1.ClientRouter', {
101
- Route: RoutingManager.ClientController.handleRequest.bind(RoutingManager.ClientController),
102
- SocketRoute: RoutingManager.ClientController.handleRequest.bind(RoutingManager.ClientController),
103
- });
104
- await this.grpcServer.addService(path.resolve(__dirname, '../module.proto'), 'conduit.module.v1.AdminRouter', {
105
- Route: RoutingManager.AdminController.handleRequest.bind(RoutingManager.AdminController),
106
- SocketRoute: RoutingManager.AdminController.handleRequest.bind(RoutingManager.AdminController),
107
- });
108
- }
109
- }
110
- //# sourceMappingURL=ConduitServiceModule.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConduitServiceModule.js","sourceRoot":"","sources":["../../src/classes/ConduitServiceModule.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- export class ConfigController {
2
- get config() {
3
- // return copy of config and not the original object;
4
- return Object.assign({}, this._config);
5
- }
6
- set config(config) {
7
- this._config = config;
8
- }
9
- static getInstance() {
10
- if (!ConfigController.instance) {
11
- ConfigController.instance = new ConfigController();
12
- }
13
- return ConfigController.instance;
14
- }
15
- }
16
- //# sourceMappingURL=ConfigController.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConfigController.js","sourceRoot":"","sources":["../../src/classes/ConfigController.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,gBAAgB;IAK3B,IAAI,MAAM;QACR,qDAAqD;QACrD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,MAAM,CAAC,MAAW;QACpB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;YAC/B,gBAAgB,CAAC,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACrD,CAAC;QACD,OAAO,gBAAgB,CAAC,QAAQ,CAAC;IACnC,CAAC;CACF"}
@@ -1,121 +0,0 @@
1
- import { addServiceToServer, createServer, wrapGrpcFunctions } from '../helpers/index.js';
2
- import { isNil } from 'lodash-es';
3
- import ConduitGrpcSdk from '@conduitplatform/grpc-sdk';
4
- export class GrpcServer {
5
- constructor(port) {
6
- this.started = false;
7
- this.startedOnce = false;
8
- this._serviceNames = [];
9
- this._postponeRequests = 0;
10
- this._services = [];
11
- this._url = `0.0.0.0:${port !== null && port !== void 0 ? port : '5000'}`;
12
- }
13
- async waitForReady() {
14
- while (!isNil(this.scheduledRestart)) {
15
- await this.wait(200);
16
- }
17
- }
18
- get url() {
19
- return this._url;
20
- }
21
- async createNewServer(useForce = false) {
22
- if (isNil(this._useForce)) {
23
- this._useForce = useForce;
24
- }
25
- const serverResult = await createServer(this._url);
26
- this.grpcServer = serverResult.server;
27
- this._url = this._url.split(':')[0] + ':' + serverResult.port.toString();
28
- return serverResult.port;
29
- }
30
- async addService(protoPath, protoDescription, functions) {
31
- functions = wrapGrpcFunctions(functions, this.postponeRestart.bind(this));
32
- if (this._serviceNames.indexOf(protoDescription) !== -1) {
33
- ConduitGrpcSdk.Logger.log('Service already exists, performing replace');
34
- this._services[this._serviceNames.indexOf(protoDescription)] = {
35
- protoPath,
36
- protoDescription,
37
- functions,
38
- };
39
- this.scheduleRefresh();
40
- return this;
41
- }
42
- else {
43
- this._services.push({ protoPath, protoDescription, functions });
44
- this._serviceNames.push(protoDescription);
45
- if (this.started) {
46
- ConduitGrpcSdk.Logger.log('Server already started, scheduling refresh..');
47
- this.scheduleRefresh();
48
- return this;
49
- }
50
- else {
51
- if (!this.grpcServer) {
52
- await this.wait(1000);
53
- }
54
- addServiceToServer(this.grpcServer, protoPath, protoDescription, functions);
55
- return this;
56
- }
57
- }
58
- }
59
- async wait(time) {
60
- return new Promise((resolve, reject) => {
61
- const timeout = setTimeout(() => {
62
- clearTimeout(timeout);
63
- resolve();
64
- }, time);
65
- });
66
- }
67
- async refresh() {
68
- if (this.started) {
69
- this.started = false;
70
- if (this._useForce) {
71
- this.grpcServer.forceShutdown();
72
- }
73
- else {
74
- //gracefully shutdown so that there are no service disruption
75
- await new Promise(resolve => this.grpcServer.tryShutdown(() => resolve()));
76
- }
77
- }
78
- await this.createNewServer();
79
- this._services.forEach(service => {
80
- addServiceToServer(this.grpcServer, service.protoPath, service.protoDescription, service.functions);
81
- });
82
- if (!this.started && this.startedOnce) {
83
- this.grpcServer.start();
84
- this.started = true;
85
- }
86
- }
87
- scheduleRefresh() {
88
- if (this.scheduledRestart) {
89
- clearTimeout(this.scheduledRestart);
90
- }
91
- const self = this;
92
- this.scheduledRestart = setTimeout(async () => {
93
- ConduitGrpcSdk.Logger.log('Begin refresh');
94
- await self.refresh();
95
- ConduitGrpcSdk.Logger.log('Refresh complete');
96
- clearTimeout(self.scheduledRestart);
97
- self.scheduledRestart = undefined;
98
- self._postponeRequests = 0;
99
- }, 2000);
100
- }
101
- start() {
102
- var _a;
103
- if (this.started) {
104
- ConduitGrpcSdk.Logger.error('gRPC server is already running!');
105
- return;
106
- }
107
- else if (!this.started && this.startedOnce) {
108
- ConduitGrpcSdk.Logger.error('gRPC server is down for refresh!');
109
- }
110
- this.started = true;
111
- this.startedOnce = true;
112
- (_a = this.grpcServer) === null || _a === void 0 ? void 0 : _a.start();
113
- }
114
- postponeRestart() {
115
- if (!this.scheduledRestart || this._postponeRequests > 5)
116
- return;
117
- this._postponeRequests++;
118
- this.scheduleRefresh();
119
- }
120
- }
121
- //# sourceMappingURL=GrpcServer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GrpcServer.js","sourceRoot":"","sources":["../../src/classes/GrpcServer.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- export * from './ConduitActiveSchema.js';
2
- export * from './GrpcServer.js';
3
- export * from './ConduitServiceModule.js';
4
- export * from './ConfigController.js';
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/classes/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC"}