@common-stack/server-stack 9.0.2-alpha.1 → 9.0.2-alpha.12
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.
- package/lib/MainStackServer.cjs +82 -24
- package/lib/MainStackServer.cjs.map +1 -1
- package/lib/MainStackServer.mjs +82 -24
- package/lib/MainStackServer.mjs.map +1 -1
- package/lib/config/env-config.cjs +3 -0
- package/lib/config/env-config.cjs.map +1 -1
- package/lib/config/env-config.mjs +3 -0
- package/lib/config/env-config.mjs.map +1 -1
- package/lib/express-adapter.cjs +90 -0
- package/lib/express-adapter.cjs.map +1 -0
- package/lib/express-adapter.mjs +90 -0
- package/lib/express-adapter.mjs.map +1 -0
- package/lib/middleware/services.cjs +46 -11
- package/lib/middleware/services.cjs.map +1 -1
- package/lib/middleware/services.mjs +46 -11
- package/lib/middleware/services.mjs.map +1 -1
- package/lib/servers/ExpressApp.cjs +27 -12
- package/lib/servers/ExpressApp.cjs.map +1 -1
- package/lib/servers/ExpressApp.mjs +26 -11
- package/lib/servers/ExpressApp.mjs.map +1 -1
- package/lib/servers/GraphqlServer.cjs +30 -18
- package/lib/servers/GraphqlServer.cjs.map +1 -1
- package/lib/servers/GraphqlServer.mjs +29 -17
- package/lib/servers/GraphqlServer.mjs.map +1 -1
- package/lib/servers/GraphqlWs.cjs +10 -1
- package/lib/servers/GraphqlWs.cjs.map +1 -1
- package/lib/servers/GraphqlWs.mjs +10 -1
- package/lib/servers/GraphqlWs.mjs.map +1 -1
- package/lib/servers/WebsocketMultipathUpdate.cjs +39 -38
- package/lib/servers/WebsocketMultipathUpdate.cjs.map +1 -1
- package/lib/servers/WebsocketMultipathUpdate.mjs +38 -37
- package/lib/servers/WebsocketMultipathUpdate.mjs.map +1 -1
- package/package.json +9 -10
package/lib/MainStackServer.cjs
CHANGED
|
@@ -1,15 +1,8 @@
|
|
|
1
|
-
'use strict';require('reflect-metadata');var
|
|
1
|
+
'use strict';require('reflect-metadata');var expressAdapter=require('./express-adapter.cjs'),server=require('@cdm-logger/server'),serverCore=require('@common-stack/server-core'),_=require('lodash-es'),graphqlModule=require('@common-stack/graphql-api/lib/module.js'),ExpressApp=require('./servers/ExpressApp.cjs'),GraphqlServer=require('./servers/GraphqlServer.cjs'),envConfig=require('./config/env-config.cjs'),schemaBuilder=require('./api/schema-builder.cjs'),WebsocketMultipathUpdate=require('./servers/WebsocketMultipathUpdate.cjs'),migrations=require('./utils/migrations.cjs');require('graphql');var subGraphSchemaBuilder=require('./api/sub-graph-schema-builder.cjs'),setup=require('./inngest/setup.cjs');require('inversify'),require('common/server'),require('@common-stack/core');var infrastructureFactory=require('./infrastructure/infrastructure-factory.cjs');require('inngest');/* eslint-disable import/namespace */
|
|
2
2
|
/* eslint-disable import/no-unresolved */
|
|
3
3
|
/* eslint-disable import/no-extraneous-dependencies */
|
|
4
4
|
// version 08/25/2021
|
|
5
5
|
const graphqlApiFeature = graphqlModule.default ?? graphqlModule;
|
|
6
|
-
function startListening(port) {
|
|
7
|
-
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
8
|
-
const server = this;
|
|
9
|
-
return new Promise((resolve) => {
|
|
10
|
-
server.listen(port, resolve);
|
|
11
|
-
});
|
|
12
|
-
}
|
|
13
6
|
/**
|
|
14
7
|
* Controls the lifecycle of the Application Server
|
|
15
8
|
*
|
|
@@ -17,8 +10,16 @@ function startListening(port) {
|
|
|
17
10
|
* @class StackServer
|
|
18
11
|
*/
|
|
19
12
|
class MainStackServer {
|
|
20
|
-
httpServer;
|
|
21
13
|
app;
|
|
14
|
+
/**
|
|
15
|
+
* The underlying HTTP server.
|
|
16
|
+
* - ultimate-express: null (uWebSockets.js manages the server internally)
|
|
17
|
+
* - classic express: http.Server from http.createServer(app)
|
|
18
|
+
*
|
|
19
|
+
* Also provides backward-compatible startListening() and close() methods.
|
|
20
|
+
*/
|
|
21
|
+
httpServer;
|
|
22
|
+
listenSocket;
|
|
22
23
|
logger;
|
|
23
24
|
infrastructureFactory;
|
|
24
25
|
mainServiceContext;
|
|
@@ -79,8 +80,18 @@ class MainStackServer {
|
|
|
79
80
|
await originalStart();
|
|
80
81
|
// Use main container if microservice container is null (due to module reuse)
|
|
81
82
|
const containerToUse = this.microserviceContext.container || this.mainServiceContext.container;
|
|
82
|
-
|
|
83
|
-
|
|
83
|
+
try {
|
|
84
|
+
await this.serverFeature.microservicePreStart(containerToUse);
|
|
85
|
+
}
|
|
86
|
+
catch (preStartErr) {
|
|
87
|
+
this.logger.error('Error in microservicePreStart hooks:', preStartErr);
|
|
88
|
+
}
|
|
89
|
+
try {
|
|
90
|
+
await this.serverFeature.microservicePostStart(containerToUse);
|
|
91
|
+
}
|
|
92
|
+
catch (postStartErr) {
|
|
93
|
+
this.logger.error('Error in microservicePostStart hooks:', postStartErr);
|
|
94
|
+
}
|
|
84
95
|
};
|
|
85
96
|
}
|
|
86
97
|
async setupGraphQLSchema() {
|
|
@@ -124,6 +135,13 @@ class MainStackServer {
|
|
|
124
135
|
services = {};
|
|
125
136
|
}
|
|
126
137
|
}
|
|
138
|
+
// Make services available on the Feature instance so phasedContextMiddleware
|
|
139
|
+
// (which reads `feature.services` to seed `req.services` in pre-beforeware)
|
|
140
|
+
// works regardless of whether services came from baseModules or
|
|
141
|
+
// allModules.createService(). Without this, the reuse path leaves
|
|
142
|
+
// allModules.services undefined and REST routes hit
|
|
143
|
+
// `req.services.accountService` undefined.
|
|
144
|
+
allModules.services = services;
|
|
127
145
|
// Create service context function that uses the created services
|
|
128
146
|
const serviceContextFunc = async (req, connectionParams, webSocket) => {
|
|
129
147
|
const results = await Promise.all(allModules.createContextFunc.map((createContext) => createContext(req, connectionParams, webSocket)));
|
|
@@ -144,28 +162,37 @@ class MainStackServer {
|
|
|
144
162
|
}
|
|
145
163
|
async setupHttpServer() {
|
|
146
164
|
const { context } = this.mainServiceContext;
|
|
147
|
-
// Initialize
|
|
148
|
-
|
|
165
|
+
// Initialize Express app using the configured engine (ultimate-express or classic express)
|
|
166
|
+
// The adapter selects the engine based on EXPRESS_ENGINE env var.
|
|
149
167
|
// Pass Redis client to expressApp so it can be attached at the very top of middleware stack
|
|
150
|
-
this.app = await ExpressApp.expressApp(this.allModules, this.serviceBroker, null,
|
|
168
|
+
this.app = await ExpressApp.expressApp(this.allModules, this.serviceBroker, null, undefined, context.redisClient);
|
|
169
|
+
// Create HTTP server (null for ultimate-express, http.Server for classic express)
|
|
170
|
+
const rawHttpServer = expressAdapter.createHttpServer(this.app);
|
|
171
|
+
// Provide backward-compatible httpServer with startListening() and close()
|
|
172
|
+
this.httpServer = Object.assign(rawHttpServer || {}, {
|
|
173
|
+
startListening: (port) => this.startListening(port),
|
|
174
|
+
close: () => {
|
|
175
|
+
if (rawHttpServer) {
|
|
176
|
+
rawHttpServer.close();
|
|
177
|
+
}
|
|
178
|
+
// ultimate-express handles cleanup internally
|
|
179
|
+
},
|
|
180
|
+
});
|
|
151
181
|
// Register existing express middleware (Redis client middleware is already attached in expressApp)
|
|
152
182
|
this.allModules.registerExpressMiddleware(this.app, this.mainServiceContext.container);
|
|
153
183
|
// Setup Inngest functions
|
|
154
184
|
setup.setupInngestFunctions(this.allModules, this.app, this.mainServiceContext.container, this.logger);
|
|
155
|
-
this.httpServer.startListening = startListening.bind(this.httpServer);
|
|
156
|
-
this.httpServer.on('request', this.app);
|
|
157
|
-
this.httpServer.on('close', () => {
|
|
158
|
-
this.httpServer = undefined;
|
|
159
|
-
});
|
|
160
185
|
// Setup WebSocket if configured
|
|
161
186
|
const customWebsocket = this.allModules.getWebsocketConfig();
|
|
162
187
|
const customWebsocketEnable = !_.isEmpty(customWebsocket);
|
|
163
188
|
if (customWebsocketEnable) {
|
|
164
|
-
this.multiPathWebsocket = new WebsocketMultipathUpdate.WebsocketMultiPathServer(this.serviceBroker, context.redisClient, customWebsocket);
|
|
165
|
-
this.httpServer = this.multiPathWebsocket.httpServerUpgrade(this.httpServer);
|
|
189
|
+
this.multiPathWebsocket = new WebsocketMultipathUpdate.WebsocketMultiPathServer(this.serviceBroker, context.redisClient, expressAdapter.isUltimateEngine ? this.app : rawHttpServer, customWebsocket);
|
|
166
190
|
}
|
|
167
191
|
// Setup GraphQL server
|
|
168
|
-
|
|
192
|
+
// Pass the appropriate server object based on engine:
|
|
193
|
+
// - ultimate-express: pass the app (WebSocket servers bind via { server: app })
|
|
194
|
+
// - classic express: pass the httpServer (WebSocket servers bind via { server: httpServer })
|
|
195
|
+
const graphqlServer = new GraphqlServer.GraphqlServer(this.app, expressAdapter.isUltimateEngine ? this.app : rawHttpServer, context.redisClient, this.serviceBroker, !customWebsocketEnable, this.allModules.apolloCacheKeyGenerator.bind(this.allModules), this.allModules.apolloInvalidateCacheKeyGenerator.bind(this.allModules), this.allModules.graphqlPlugins);
|
|
169
196
|
await graphqlServer.initialize();
|
|
170
197
|
this.app.use('/graphql', (req, res, next) => {
|
|
171
198
|
res.append('Access-Control-Allow-Credentials', JSON.stringify(true));
|
|
@@ -175,9 +202,39 @@ class MainStackServer {
|
|
|
175
202
|
next();
|
|
176
203
|
});
|
|
177
204
|
}
|
|
205
|
+
/**
|
|
206
|
+
* Start listening on the given port.
|
|
207
|
+
* - ultimate-express: uses the built-in high-performance uWebSockets.js server
|
|
208
|
+
* - classic express: uses http.Server.listen()
|
|
209
|
+
*/
|
|
210
|
+
startListening(port) {
|
|
211
|
+
return new Promise((resolve) => {
|
|
212
|
+
const server = expressAdapter.isUltimateEngine ? this.app : this.httpServer;
|
|
213
|
+
server.listen(port, () => {
|
|
214
|
+
this.logger.info('Server listening on port %d (engine: %s)', port, expressAdapter.isUltimateEngine ? 'ultimate-express' : 'express');
|
|
215
|
+
resolve();
|
|
216
|
+
});
|
|
217
|
+
});
|
|
218
|
+
}
|
|
178
219
|
async start() {
|
|
179
220
|
if (envConfig.config.NODE_ENV === 'development' && this.microserviceContext) {
|
|
221
|
+
// Start both brokers in parallel to avoid blocking on service dependencies
|
|
222
|
+
// Services on one broker may depend on services on the other broker
|
|
180
223
|
await Promise.all([this.mainServiceContext.broker.start(), this.microserviceContext.broker.start()]);
|
|
224
|
+
// Wait for service discovery between brokers
|
|
225
|
+
// The TCP transporter needs time to discover services from other nodes
|
|
226
|
+
await new Promise((resolve) => setTimeout(resolve, 2000));
|
|
227
|
+
// Now run migrations after both brokers are fully started
|
|
228
|
+
// This ensures all Moleculer services (like MailerService) are available
|
|
229
|
+
try {
|
|
230
|
+
this.logger.info('Starting Migration');
|
|
231
|
+
await migrations.migrate(this.mainServiceContext.context.mongoClient, this.mainServiceContext.container, this.logger);
|
|
232
|
+
this.logger.info('End Migration');
|
|
233
|
+
}
|
|
234
|
+
catch (e) {
|
|
235
|
+
this.logger.error('Error while running migrations', e);
|
|
236
|
+
this.logger.error(e.stack);
|
|
237
|
+
}
|
|
181
238
|
}
|
|
182
239
|
else {
|
|
183
240
|
await this.mainServiceContext.broker.start();
|
|
@@ -200,8 +257,9 @@ class MainStackServer {
|
|
|
200
257
|
if (this.multiPathWebsocket) {
|
|
201
258
|
this.multiPathWebsocket.close();
|
|
202
259
|
}
|
|
203
|
-
if
|
|
204
|
-
|
|
260
|
+
// Close HTTP server if using classic express
|
|
261
|
+
if (this.httpServer && typeof this.httpServer.close === 'function') {
|
|
262
|
+
this.httpServer.close();
|
|
205
263
|
}
|
|
206
264
|
if (this.infrastructureFactory) {
|
|
207
265
|
await this.infrastructureFactory.cleanup();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MainStackServer.cjs","sources":["../src/MainStackServer.ts"],"sourcesContent":[null],"names":["serverLogger","InfrastructureFactory","config","Feature","SubGraphSchemaBuilder","GatewaySchemaBuilder","merge","
|
|
1
|
+
{"version":3,"file":"MainStackServer.cjs","sources":["../src/MainStackServer.ts"],"sourcesContent":[null],"names":["serverLogger","InfrastructureFactory","config","Feature","SubGraphSchemaBuilder","GatewaySchemaBuilder","merge","expressApp","createHttpServer","setupInngestFunctions","isEmpty","WebsocketMultiPathServer","isUltimateEngine","GraphqlServer","migrate"],"mappings":"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"}
|
package/lib/MainStackServer.mjs
CHANGED
|
@@ -1,15 +1,8 @@
|
|
|
1
|
-
import'reflect-metadata';import
|
|
1
|
+
import'reflect-metadata';import {createHttpServer,isUltimateEngine}from'./express-adapter.mjs';import {logger}from'@cdm-logger/server';import {Feature}from'@common-stack/server-core';import {isEmpty,merge}from'lodash-es';import graphqlModule from'@common-stack/graphql-api/lib/module.js';import {expressApp}from'./servers/ExpressApp.mjs';import {GraphqlServer}from'./servers/GraphqlServer.mjs';import {config}from'./config/env-config.mjs';import {GatewaySchemaBuilder}from'./api/schema-builder.mjs';import {WebsocketMultiPathServer}from'./servers/WebsocketMultipathUpdate.mjs';import {migrate}from'./utils/migrations.mjs';import'graphql';import {SubGraphSchemaBuilder}from'./api/sub-graph-schema-builder.mjs';import {setupInngestFunctions}from'./inngest/setup.mjs';import'inversify';import'common/server';import'@common-stack/core';import {InfrastructureFactory}from'./infrastructure/infrastructure-factory.mjs';import'inngest';/* eslint-disable import/namespace */
|
|
2
2
|
/* eslint-disable import/no-unresolved */
|
|
3
3
|
/* eslint-disable import/no-extraneous-dependencies */
|
|
4
4
|
// version 08/25/2021
|
|
5
5
|
const graphqlApiFeature = graphqlModule.default ?? graphqlModule;
|
|
6
|
-
function startListening(port) {
|
|
7
|
-
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
8
|
-
const server = this;
|
|
9
|
-
return new Promise((resolve) => {
|
|
10
|
-
server.listen(port, resolve);
|
|
11
|
-
});
|
|
12
|
-
}
|
|
13
6
|
/**
|
|
14
7
|
* Controls the lifecycle of the Application Server
|
|
15
8
|
*
|
|
@@ -17,8 +10,16 @@ function startListening(port) {
|
|
|
17
10
|
* @class StackServer
|
|
18
11
|
*/
|
|
19
12
|
class MainStackServer {
|
|
20
|
-
httpServer;
|
|
21
13
|
app;
|
|
14
|
+
/**
|
|
15
|
+
* The underlying HTTP server.
|
|
16
|
+
* - ultimate-express: null (uWebSockets.js manages the server internally)
|
|
17
|
+
* - classic express: http.Server from http.createServer(app)
|
|
18
|
+
*
|
|
19
|
+
* Also provides backward-compatible startListening() and close() methods.
|
|
20
|
+
*/
|
|
21
|
+
httpServer;
|
|
22
|
+
listenSocket;
|
|
22
23
|
logger;
|
|
23
24
|
infrastructureFactory;
|
|
24
25
|
mainServiceContext;
|
|
@@ -79,8 +80,18 @@ class MainStackServer {
|
|
|
79
80
|
await originalStart();
|
|
80
81
|
// Use main container if microservice container is null (due to module reuse)
|
|
81
82
|
const containerToUse = this.microserviceContext.container || this.mainServiceContext.container;
|
|
82
|
-
|
|
83
|
-
|
|
83
|
+
try {
|
|
84
|
+
await this.serverFeature.microservicePreStart(containerToUse);
|
|
85
|
+
}
|
|
86
|
+
catch (preStartErr) {
|
|
87
|
+
this.logger.error('Error in microservicePreStart hooks:', preStartErr);
|
|
88
|
+
}
|
|
89
|
+
try {
|
|
90
|
+
await this.serverFeature.microservicePostStart(containerToUse);
|
|
91
|
+
}
|
|
92
|
+
catch (postStartErr) {
|
|
93
|
+
this.logger.error('Error in microservicePostStart hooks:', postStartErr);
|
|
94
|
+
}
|
|
84
95
|
};
|
|
85
96
|
}
|
|
86
97
|
async setupGraphQLSchema() {
|
|
@@ -124,6 +135,13 @@ class MainStackServer {
|
|
|
124
135
|
services = {};
|
|
125
136
|
}
|
|
126
137
|
}
|
|
138
|
+
// Make services available on the Feature instance so phasedContextMiddleware
|
|
139
|
+
// (which reads `feature.services` to seed `req.services` in pre-beforeware)
|
|
140
|
+
// works regardless of whether services came from baseModules or
|
|
141
|
+
// allModules.createService(). Without this, the reuse path leaves
|
|
142
|
+
// allModules.services undefined and REST routes hit
|
|
143
|
+
// `req.services.accountService` undefined.
|
|
144
|
+
allModules.services = services;
|
|
127
145
|
// Create service context function that uses the created services
|
|
128
146
|
const serviceContextFunc = async (req, connectionParams, webSocket) => {
|
|
129
147
|
const results = await Promise.all(allModules.createContextFunc.map((createContext) => createContext(req, connectionParams, webSocket)));
|
|
@@ -144,28 +162,37 @@ class MainStackServer {
|
|
|
144
162
|
}
|
|
145
163
|
async setupHttpServer() {
|
|
146
164
|
const { context } = this.mainServiceContext;
|
|
147
|
-
// Initialize
|
|
148
|
-
|
|
165
|
+
// Initialize Express app using the configured engine (ultimate-express or classic express)
|
|
166
|
+
// The adapter selects the engine based on EXPRESS_ENGINE env var.
|
|
149
167
|
// Pass Redis client to expressApp so it can be attached at the very top of middleware stack
|
|
150
|
-
this.app = await expressApp(this.allModules, this.serviceBroker, null,
|
|
168
|
+
this.app = await expressApp(this.allModules, this.serviceBroker, null, undefined, context.redisClient);
|
|
169
|
+
// Create HTTP server (null for ultimate-express, http.Server for classic express)
|
|
170
|
+
const rawHttpServer = createHttpServer(this.app);
|
|
171
|
+
// Provide backward-compatible httpServer with startListening() and close()
|
|
172
|
+
this.httpServer = Object.assign(rawHttpServer || {}, {
|
|
173
|
+
startListening: (port) => this.startListening(port),
|
|
174
|
+
close: () => {
|
|
175
|
+
if (rawHttpServer) {
|
|
176
|
+
rawHttpServer.close();
|
|
177
|
+
}
|
|
178
|
+
// ultimate-express handles cleanup internally
|
|
179
|
+
},
|
|
180
|
+
});
|
|
151
181
|
// Register existing express middleware (Redis client middleware is already attached in expressApp)
|
|
152
182
|
this.allModules.registerExpressMiddleware(this.app, this.mainServiceContext.container);
|
|
153
183
|
// Setup Inngest functions
|
|
154
184
|
setupInngestFunctions(this.allModules, this.app, this.mainServiceContext.container, this.logger);
|
|
155
|
-
this.httpServer.startListening = startListening.bind(this.httpServer);
|
|
156
|
-
this.httpServer.on('request', this.app);
|
|
157
|
-
this.httpServer.on('close', () => {
|
|
158
|
-
this.httpServer = undefined;
|
|
159
|
-
});
|
|
160
185
|
// Setup WebSocket if configured
|
|
161
186
|
const customWebsocket = this.allModules.getWebsocketConfig();
|
|
162
187
|
const customWebsocketEnable = !isEmpty(customWebsocket);
|
|
163
188
|
if (customWebsocketEnable) {
|
|
164
|
-
this.multiPathWebsocket = new WebsocketMultiPathServer(this.serviceBroker, context.redisClient, customWebsocket);
|
|
165
|
-
this.httpServer = this.multiPathWebsocket.httpServerUpgrade(this.httpServer);
|
|
189
|
+
this.multiPathWebsocket = new WebsocketMultiPathServer(this.serviceBroker, context.redisClient, isUltimateEngine ? this.app : rawHttpServer, customWebsocket);
|
|
166
190
|
}
|
|
167
191
|
// Setup GraphQL server
|
|
168
|
-
|
|
192
|
+
// Pass the appropriate server object based on engine:
|
|
193
|
+
// - ultimate-express: pass the app (WebSocket servers bind via { server: app })
|
|
194
|
+
// - classic express: pass the httpServer (WebSocket servers bind via { server: httpServer })
|
|
195
|
+
const graphqlServer = new GraphqlServer(this.app, isUltimateEngine ? this.app : rawHttpServer, context.redisClient, this.serviceBroker, !customWebsocketEnable, this.allModules.apolloCacheKeyGenerator.bind(this.allModules), this.allModules.apolloInvalidateCacheKeyGenerator.bind(this.allModules), this.allModules.graphqlPlugins);
|
|
169
196
|
await graphqlServer.initialize();
|
|
170
197
|
this.app.use('/graphql', (req, res, next) => {
|
|
171
198
|
res.append('Access-Control-Allow-Credentials', JSON.stringify(true));
|
|
@@ -175,9 +202,39 @@ class MainStackServer {
|
|
|
175
202
|
next();
|
|
176
203
|
});
|
|
177
204
|
}
|
|
205
|
+
/**
|
|
206
|
+
* Start listening on the given port.
|
|
207
|
+
* - ultimate-express: uses the built-in high-performance uWebSockets.js server
|
|
208
|
+
* - classic express: uses http.Server.listen()
|
|
209
|
+
*/
|
|
210
|
+
startListening(port) {
|
|
211
|
+
return new Promise((resolve) => {
|
|
212
|
+
const server = isUltimateEngine ? this.app : this.httpServer;
|
|
213
|
+
server.listen(port, () => {
|
|
214
|
+
this.logger.info('Server listening on port %d (engine: %s)', port, isUltimateEngine ? 'ultimate-express' : 'express');
|
|
215
|
+
resolve();
|
|
216
|
+
});
|
|
217
|
+
});
|
|
218
|
+
}
|
|
178
219
|
async start() {
|
|
179
220
|
if (config.NODE_ENV === 'development' && this.microserviceContext) {
|
|
221
|
+
// Start both brokers in parallel to avoid blocking on service dependencies
|
|
222
|
+
// Services on one broker may depend on services on the other broker
|
|
180
223
|
await Promise.all([this.mainServiceContext.broker.start(), this.microserviceContext.broker.start()]);
|
|
224
|
+
// Wait for service discovery between brokers
|
|
225
|
+
// The TCP transporter needs time to discover services from other nodes
|
|
226
|
+
await new Promise((resolve) => setTimeout(resolve, 2000));
|
|
227
|
+
// Now run migrations after both brokers are fully started
|
|
228
|
+
// This ensures all Moleculer services (like MailerService) are available
|
|
229
|
+
try {
|
|
230
|
+
this.logger.info('Starting Migration');
|
|
231
|
+
await migrate(this.mainServiceContext.context.mongoClient, this.mainServiceContext.container, this.logger);
|
|
232
|
+
this.logger.info('End Migration');
|
|
233
|
+
}
|
|
234
|
+
catch (e) {
|
|
235
|
+
this.logger.error('Error while running migrations', e);
|
|
236
|
+
this.logger.error(e.stack);
|
|
237
|
+
}
|
|
181
238
|
}
|
|
182
239
|
else {
|
|
183
240
|
await this.mainServiceContext.broker.start();
|
|
@@ -200,8 +257,9 @@ class MainStackServer {
|
|
|
200
257
|
if (this.multiPathWebsocket) {
|
|
201
258
|
this.multiPathWebsocket.close();
|
|
202
259
|
}
|
|
203
|
-
if
|
|
204
|
-
|
|
260
|
+
// Close HTTP server if using classic express
|
|
261
|
+
if (this.httpServer && typeof this.httpServer.close === 'function') {
|
|
262
|
+
this.httpServer.close();
|
|
205
263
|
}
|
|
206
264
|
if (this.infrastructureFactory) {
|
|
207
265
|
await this.infrastructureFactory.cleanup();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MainStackServer.mjs","sources":["../src/MainStackServer.ts"],"sourcesContent":[null],"names":["serverLogger"],"mappings":"
|
|
1
|
+
{"version":3,"file":"MainStackServer.mjs","sources":["../src/MainStackServer.ts"],"sourcesContent":[null],"names":["serverLogger"],"mappings":"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"}
|
|
@@ -51,6 +51,9 @@ const config = envalid__namespace.cleanEnv(process.env,
|
|
|
51
51
|
INNGEST_CLIENT_ID: str({ devDefault: '', default: '' }),
|
|
52
52
|
// Stable application ID used for Inngest client registration across deployments
|
|
53
53
|
APPLICATION_ID: str({ devDefault: '', default: '' }),
|
|
54
|
+
// HTTP server engine: 'ultimate' (uWebSockets.js, faster) or 'express' (classic Node.js http)
|
|
55
|
+
// ultimate-express is a drop-in replacement but requires app.listen() instead of http.createServer()
|
|
56
|
+
EXPRESS_ENGINE: str({ default: 'ultimate', choices: ['ultimate', 'express'], devDefault: 'ultimate' }),
|
|
54
57
|
// WebSocket connection limits per pod instance
|
|
55
58
|
// Recommended: ~20000 per 1Gi memory
|
|
56
59
|
WEBSOCKET_MAX_CONNECTIONS: num({ default: 20000, devDefault: 10000 }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-config.cjs","sources":["../../src/config/env-config.ts"],"sourcesContent":[null],"names":["envalid"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"env-config.cjs","sources":["../../src/config/env-config.ts"],"sourcesContent":[null],"names":["envalid"],"mappings":"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"}
|
|
@@ -51,6 +51,9 @@ const config = envalid.cleanEnv(process.env,
|
|
|
51
51
|
INNGEST_CLIENT_ID: str({ devDefault: '', default: '' }),
|
|
52
52
|
// Stable application ID used for Inngest client registration across deployments
|
|
53
53
|
APPLICATION_ID: str({ devDefault: '', default: '' }),
|
|
54
|
+
// HTTP server engine: 'ultimate' (uWebSockets.js, faster) or 'express' (classic Node.js http)
|
|
55
|
+
// ultimate-express is a drop-in replacement but requires app.listen() instead of http.createServer()
|
|
56
|
+
EXPRESS_ENGINE: str({ default: 'ultimate', choices: ['ultimate', 'express'], devDefault: 'ultimate' }),
|
|
54
57
|
// WebSocket connection limits per pod instance
|
|
55
58
|
// Recommended: ~20000 per 1Gi memory
|
|
56
59
|
WEBSOCKET_MAX_CONNECTIONS: num({ default: 20000, devDefault: 10000 }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-config.mjs","sources":["../../src/config/env-config.ts"],"sourcesContent":[null],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"env-config.mjs","sources":["../../src/config/env-config.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
'use strict';Object.defineProperty(exports,'__esModule',{value:true});var node_module=require('node:module');var_documentCurrentScript=typeofdocument!=='undefined'?document.currentScript:null;/**
|
|
2
|
+
* Express Engine Adapter
|
|
3
|
+
*
|
|
4
|
+
* Provides a unified interface for both Express 4 and ultimate-express (uWebSockets.js).
|
|
5
|
+
* The engine is selected at startup via the `EXPRESS_ENGINE` environment variable:
|
|
6
|
+
*
|
|
7
|
+
* - `EXPRESS_ENGINE=ultimate` (default) — uses ultimate-express + ultimate-ws for best performance
|
|
8
|
+
* - `EXPRESS_ENGINE=express` — uses classic Express 4 + ws for maximum compatibility
|
|
9
|
+
*
|
|
10
|
+
* All server modules import from this adapter instead of directly from 'express' or 'ultimate-express',
|
|
11
|
+
* so switching engines requires zero code changes — just set the env var.
|
|
12
|
+
*
|
|
13
|
+
* IMPORTANT: ultimate-express does NOT support http.createServer(). The server is started via app.listen().
|
|
14
|
+
* Classic express works with both http.createServer() and app.listen().
|
|
15
|
+
* This adapter normalizes both to use app.listen() for consistency.
|
|
16
|
+
*/
|
|
17
|
+
// ─── Engine Detection ────────────────────────────────────────────────────────
|
|
18
|
+
// Read engine choice early (before envalid config is available).
|
|
19
|
+
// This module is loaded at import time, so we read directly from process.env.
|
|
20
|
+
const requestedEngine = (process.env.EXPRESS_ENGINE || 'ultimate').toLowerCase();
|
|
21
|
+
const _require = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('express-adapter.cjs', document.baseURI).href)));
|
|
22
|
+
/**
|
|
23
|
+
* Safely attempt to load the ultimate-* native engine.
|
|
24
|
+
* These packages are declared as `optionalDependencies` and require a recent glibc;
|
|
25
|
+
* in stripped-down container images they may be missing or fail to load — in that
|
|
26
|
+
* case we transparently fall back to classic express + ws.
|
|
27
|
+
*/
|
|
28
|
+
function tryLoadUltimate() {
|
|
29
|
+
try {
|
|
30
|
+
const ultimateExpress = _require('ultimate-express');
|
|
31
|
+
const ultimateWs = _require('ultimate-ws');
|
|
32
|
+
return { express: ultimateExpress, WebSocketServer: ultimateWs.WebSocketServer };
|
|
33
|
+
}
|
|
34
|
+
catch (err) {
|
|
35
|
+
if (requestedEngine === 'ultimate') {
|
|
36
|
+
// eslint-disable-next-line no-console
|
|
37
|
+
console.warn('[express-adapter] ultimate-express/ultimate-ws unavailable, falling back to express + ws.', err?.message);
|
|
38
|
+
}
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
const ultimate = requestedEngine === 'ultimate' ? tryLoadUltimate() : null;
|
|
43
|
+
/** Whether the ultimate-express (uWebSockets.js) engine is active */
|
|
44
|
+
const isUltimateEngine = ultimate !== null;
|
|
45
|
+
/**
|
|
46
|
+
* The express factory function — creates an Express application.
|
|
47
|
+
* When engine='ultimate' (and the native module loaded), this is ultimate-express (uWS.js-backed).
|
|
48
|
+
* Otherwise this is classic Express 4.
|
|
49
|
+
*/
|
|
50
|
+
const express = ultimate ? ultimate.express : _require('express');
|
|
51
|
+
/**
|
|
52
|
+
* WebSocketServer class.
|
|
53
|
+
* When engine='ultimate' (and the native module loaded), this is ultimate-ws (uWS.js-backed).
|
|
54
|
+
* Otherwise this is the standard `ws` package.
|
|
55
|
+
*/
|
|
56
|
+
const WebSocketServer = ultimate ? ultimate.WebSocketServer : _require('ws').WebSocketServer;
|
|
57
|
+
/**
|
|
58
|
+
* Create an HTTP server for the given express app.
|
|
59
|
+
*
|
|
60
|
+
* - ultimate-express: returns null (uWS manages the server internally via app.listen())
|
|
61
|
+
* - classic express: returns http.createServer(app)
|
|
62
|
+
*/
|
|
63
|
+
function createHttpServer(app) {
|
|
64
|
+
if (isUltimateEngine) {
|
|
65
|
+
// ultimate-express manages its own uWS server; no http.Server is created
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
const http = _require('http');
|
|
69
|
+
return http.createServer(app);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Body parser middleware.
|
|
73
|
+
*
|
|
74
|
+
* - ultimate-express: uses built-in express.json() / express.urlencoded() for best perf
|
|
75
|
+
* - classic express: uses body-parser package (more battle-tested options)
|
|
76
|
+
*/
|
|
77
|
+
function jsonParser(options) {
|
|
78
|
+
if (isUltimateEngine) {
|
|
79
|
+
return express.json(options);
|
|
80
|
+
}
|
|
81
|
+
const bodyParser = _require('body-parser');
|
|
82
|
+
return bodyParser.json(options);
|
|
83
|
+
}
|
|
84
|
+
function urlencodedParser(options) {
|
|
85
|
+
if (isUltimateEngine) {
|
|
86
|
+
return express.urlencoded(options);
|
|
87
|
+
}
|
|
88
|
+
const bodyParser = _require('body-parser');
|
|
89
|
+
return bodyParser.urlencoded(options);
|
|
90
|
+
}exports.WebSocketServer=WebSocketServer;exports.createHttpServer=createHttpServer;exports.default=express;exports.express=express;exports.isUltimateEngine=isUltimateEngine;exports.jsonParser=jsonParser;exports.urlencodedParser=urlencodedParser;//# sourceMappingURL=express-adapter.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"express-adapter.cjs","sources":["../src/express-adapter.ts"],"sourcesContent":[null],"names":["createRequire"],"mappings":"gMAAA;;;;;;;;;;;;;;;AAeG;AAQH;AACA;AACA;AACA,MAAM,eAAe,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,UAAU,EAAE,WAAW,EAAE,CAAC;AAKjF,MAAM,QAAQ,GAAGA,yBAAa,CAAC,qQAAe,CAAC,CAAC;AAEhD;;;;;AAKG;AACH,SAAS,eAAe,GAAA;AACpB,IAAA,IAAI;AACA,QAAA,MAAM,eAAe,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AACrD,QAAA,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC3C,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,CAAC,eAAe,EAAE,CAAC;KACpF;IAAC,OAAO,GAAG,EAAE;AACV,QAAA,IAAI,eAAe,KAAK,UAAU,EAAE;;YAEhC,OAAO,CAAC,IAAI,CACR,2FAA2F,EAC1F,GAAa,EAAE,OAAO,CAC1B,CAAC;SACL;AACD,QAAA,OAAO,IAAI,CAAC;KACf;AACL,CAAC;AAED,MAAM,QAAQ,GAAG,eAAe,KAAK,UAAU,GAAG,eAAe,EAAE,GAAG,IAAI,CAAC;AAE3E;AACa,MAAA,gBAAgB,GAAY,QAAQ,KAAK,KAAK;AAE3D;;;;AAIG;AACU,MAAA,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,SAAS,EAAE;AAIzE;;;;AAIG;MACU,eAAe,GAAG,QAAQ,GAAG,QAAQ,CAAC,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,gBAAgB;AAKpG;;;;;AAKG;AACG,SAAU,gBAAgB,CAAC,GAAY,EAAA;IACzC,IAAI,gBAAgB,EAAE;;AAElB,QAAA,OAAO,IAAI,CAAC;KACf;AACD,IAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC9B,IAAA,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;AAClC,CAAC;AAuBD;;;;;AAKG;AACG,SAAU,UAAU,CAAC,OAAa,EAAA;IACpC,IAAI,gBAAgB,EAAE;AAClB,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAChC;AACD,IAAA,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;AAC3C,IAAA,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC;AAEK,SAAU,gBAAgB,CAAC,OAAa,EAAA;IAC1C,IAAI,gBAAgB,EAAE;AAClB,QAAA,OAAO,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;KACtC;AACD,IAAA,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;AAC3C,IAAA,OAAO,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAC1C"}
|