@mondomob/gae-node-nestjs 11.0.2-alpha2 → 12.0.0-alpha-1
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.
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mondomob/gae-node-nestjs",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "12.0.0-alpha-1",
|
|
4
4
|
"description": "Google App Engine datastore repositories and graphql setup with nestjs",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"typings": "dist/index.d.ts",
|
|
@@ -23,10 +23,10 @@
|
|
|
23
23
|
"license": "MIT",
|
|
24
24
|
"homepage": "https://github.com/mondo-mob/gae-node-nestjs",
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@apollo/server": "4.
|
|
27
|
-
"@google-cloud/datastore": "9.1
|
|
26
|
+
"@apollo/server": "4.13.0",
|
|
27
|
+
"@google-cloud/datastore": "9.2.1",
|
|
28
28
|
"@google-cloud/logging-bunyan": "5.1.0",
|
|
29
|
-
"@google-cloud/storage": "7.
|
|
29
|
+
"@google-cloud/storage": "7.19.0",
|
|
30
30
|
"@google-cloud/tasks": "4.1.0",
|
|
31
31
|
"@google-cloud/trace-agent": "7.1.2",
|
|
32
32
|
"@node-saml/passport-saml": "5.1.0",
|
|
@@ -62,18 +62,18 @@
|
|
|
62
62
|
"webpack": "5.94.0"
|
|
63
63
|
},
|
|
64
64
|
"peerDependencies": {
|
|
65
|
-
"@nestjs/common": "^10.4.
|
|
66
|
-
"@nestjs/core": "^10.4.
|
|
65
|
+
"@nestjs/common": "^10.4.18",
|
|
66
|
+
"@nestjs/core": "^10.4.18",
|
|
67
67
|
"@nestjs/graphql": "^12.2.2",
|
|
68
|
-
"@nestjs/platform-express": "^10.4.
|
|
69
|
-
"express": ">= 4.
|
|
68
|
+
"@nestjs/platform-express": "^10.4.18",
|
|
69
|
+
"express": ">= 4.22.0",
|
|
70
70
|
"rxjs": "7.8.1"
|
|
71
71
|
},
|
|
72
72
|
"devDependencies": {
|
|
73
|
-
"@nestjs/common": "10.4.
|
|
74
|
-
"@nestjs/core": "10.4.
|
|
73
|
+
"@nestjs/common": "10.4.22",
|
|
74
|
+
"@nestjs/core": "10.4.22",
|
|
75
75
|
"@nestjs/graphql": "12.2.2",
|
|
76
|
-
"@nestjs/platform-express": "10.4.
|
|
76
|
+
"@nestjs/platform-express": "10.4.22",
|
|
77
77
|
"@types/bcryptjs": "2.4.6",
|
|
78
78
|
"@types/bunyan": "1.8.11",
|
|
79
79
|
"@types/cls-hooked": "4.3.8",
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
"@types/passport-local": "1.0.38",
|
|
91
91
|
"@types/uuid": "8.3.4",
|
|
92
92
|
"chokidar": "3.6.0",
|
|
93
|
-
"express": "4.
|
|
93
|
+
"express": "4.22.1",
|
|
94
94
|
"jest": "29.7.0",
|
|
95
95
|
"prettier": "2.8.8",
|
|
96
96
|
"rxjs": "7.8.1",
|
package/server-start.js
CHANGED
|
@@ -21,6 +21,7 @@ const componentColors = {
|
|
|
21
21
|
server: colors.blue,
|
|
22
22
|
webpack: colors.magenta,
|
|
23
23
|
datastore: colors.cyan,
|
|
24
|
+
dsui: colors.green,
|
|
24
25
|
};
|
|
25
26
|
|
|
26
27
|
class BunyanStream {
|
|
@@ -45,15 +46,17 @@ const { buildEvents, stopWebpack } = setupWebpack(logger);
|
|
|
45
46
|
const { stopServer, startServer } = setupServer(logger, loggingStream, buildEvents);
|
|
46
47
|
|
|
47
48
|
const { stopDatastore, startDatastore } = setupDatastore(logger, buildEvents);
|
|
49
|
+
const { startDsui, stopDsui } = setupDsui(logger);
|
|
48
50
|
|
|
49
51
|
buildEvents.once('reload', startServer);
|
|
50
52
|
startDatastore();
|
|
53
|
+
startDsui();
|
|
51
54
|
|
|
52
55
|
// Handle process stop
|
|
53
56
|
process.on('SIGINT', async function () {
|
|
54
57
|
logger.info('Caught interrupt signal');
|
|
55
58
|
|
|
56
|
-
await Promise.all([stopWebpack(), stopDatastore(), stopServer()]);
|
|
59
|
+
await Promise.all([stopWebpack(), stopDatastore(), stopDsui(), stopServer()]);
|
|
57
60
|
|
|
58
61
|
logger.info('Shutting down');
|
|
59
62
|
process.exit();
|
|
@@ -229,6 +232,74 @@ function setupServer(logger, loggingStream, buildEvents) {
|
|
|
229
232
|
};
|
|
230
233
|
}
|
|
231
234
|
|
|
235
|
+
function setupDsui(logger) {
|
|
236
|
+
const dsuiLogger = logger.child({ component: 'dsui' });
|
|
237
|
+
let dsui;
|
|
238
|
+
const startDsui = () => {
|
|
239
|
+
// poll the status URL until the datastore emulator is ready
|
|
240
|
+
dsuiLogger.info('Waiting for Datastore emulator to start');
|
|
241
|
+
const timeout = setInterval(() => {
|
|
242
|
+
let body = '';
|
|
243
|
+
http.get(
|
|
244
|
+
{
|
|
245
|
+
hostname: '127.0.0.1',
|
|
246
|
+
port: DATASTORE_PORT,
|
|
247
|
+
path: '/',
|
|
248
|
+
agent: false,
|
|
249
|
+
},
|
|
250
|
+
res => {
|
|
251
|
+
res.on('data', data => {
|
|
252
|
+
body += data;
|
|
253
|
+
});
|
|
254
|
+
res.on('end', () => {
|
|
255
|
+
if (res.statusCode == 200) {
|
|
256
|
+
dsuiLogger.info('Datastore emulator is ready, starting DSUI');
|
|
257
|
+
clearInterval(timeout);
|
|
258
|
+
const gcloud = spawn('gcloud', ['beta', 'emulators', 'datastore', 'env-init', '--format=json']);
|
|
259
|
+
gcloud.stdout.on('data', data => {
|
|
260
|
+
const datastoreConfig = JSON.parse(data);
|
|
261
|
+
_.forEach(datastoreConfig, (value, key) => {
|
|
262
|
+
process.env[key] = value;
|
|
263
|
+
});
|
|
264
|
+
});
|
|
265
|
+
|
|
266
|
+
gcloud.once('close', () => {
|
|
267
|
+
dsui = spawn('npm', ['run', 'dsui']);
|
|
268
|
+
dsui.stdout.on('data', dsuiData => {
|
|
269
|
+
const string = dsuiData.toString('utf8');
|
|
270
|
+
dsuiLogger.info(string);
|
|
271
|
+
});
|
|
272
|
+
|
|
273
|
+
dsui.stderr.on('data', dsuiData => {
|
|
274
|
+
const string = dsuiData.toString('utf8');
|
|
275
|
+
dsuiLogger.error(string);
|
|
276
|
+
});
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
});
|
|
280
|
+
},
|
|
281
|
+
);
|
|
282
|
+
}, 2000);
|
|
283
|
+
};
|
|
284
|
+
|
|
285
|
+
const stopDsui = () => {
|
|
286
|
+
return new Promise(resolve => {
|
|
287
|
+
if (dsui) {
|
|
288
|
+
dsuiLogger.info('Killing DSUI');
|
|
289
|
+
dsui.kill('SIGINT');
|
|
290
|
+
dsui.once('close', () => {
|
|
291
|
+
logger.info('DSUI successfully shutdown');
|
|
292
|
+
resolve();
|
|
293
|
+
});
|
|
294
|
+
} else {
|
|
295
|
+
resolve();
|
|
296
|
+
}
|
|
297
|
+
});
|
|
298
|
+
};
|
|
299
|
+
|
|
300
|
+
return { startDsui, stopDsui };
|
|
301
|
+
}
|
|
302
|
+
|
|
232
303
|
function setupDatastore(logger, buildEvents) {
|
|
233
304
|
const datastoreLogger = logger.child({
|
|
234
305
|
component: 'datastore',
|
|
Binary file
|
|
Binary file
|