elasticio-sailor-nodejs 3.0.0-dev7 → 3.0.0-sailor-proxy-dev1
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/.eslintrc.js +12 -146
- package/.nsprc +0 -8
- package/CHANGELOG.md +0 -10
- package/config/local.json +19 -0
- package/lib/executor.js +0 -9
- package/lib/proxy-client.js +725 -0
- package/lib/sailor.js +70 -186
- package/lib/settings.js +17 -20
- package/lib/utils.js +8 -0
- package/mise.toml +2 -0
- package/package.json +8 -6
- package/run.js +14 -22
- package/run.local.js +14 -0
- package/tsconfig.json +23 -0
- package/lib/amqp.js +0 -647
- package/lib/messagesDB.js +0 -37
package/run.js
CHANGED
|
@@ -24,6 +24,7 @@ function prepareSandbox() {
|
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
async function putOutToSea(settings, ipc) {
|
|
27
|
+
logger.trace({ settings }, 'putOutToSea called');
|
|
27
28
|
ipc.send('init:started');
|
|
28
29
|
const deferred = Q.defer();
|
|
29
30
|
sailorInit = deferred.promise;
|
|
@@ -31,6 +32,7 @@ async function putOutToSea(settings, ipc) {
|
|
|
31
32
|
|
|
32
33
|
//eslint-disable-next-line no-extra-boolean-cast
|
|
33
34
|
if (!!settings.HOOK_SHUTDOWN) {
|
|
35
|
+
logger.trace('Running hook shutdown');
|
|
34
36
|
disconnectRequired = false;
|
|
35
37
|
//eslint-disable-next-line no-empty-function
|
|
36
38
|
sailor.reportError = () => {
|
|
@@ -50,26 +52,10 @@ async function putOutToSea(settings, ipc) {
|
|
|
50
52
|
}
|
|
51
53
|
|
|
52
54
|
await sailor.runHookInit();
|
|
53
|
-
await sailor.run();
|
|
54
55
|
deferred.resolve();
|
|
55
56
|
ipc.send('init:ended');
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
async function disconnectAndExit() {
|
|
59
|
-
if (!disconnectRequired) {
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
disconnectRequired = false;
|
|
63
57
|
|
|
64
|
-
|
|
65
|
-
logger.info('Disconnecting...');
|
|
66
|
-
await sailor.disconnect();
|
|
67
|
-
logger.info('Successfully disconnected');
|
|
68
|
-
process.exit();
|
|
69
|
-
} catch (err) {
|
|
70
|
-
logger.error(err, 'Unable to disconnect');
|
|
71
|
-
process.exit(-1);
|
|
72
|
-
}
|
|
58
|
+
await sailor.run();
|
|
73
59
|
}
|
|
74
60
|
|
|
75
61
|
async function gracefulShutdown() {
|
|
@@ -82,14 +68,20 @@ async function gracefulShutdown() {
|
|
|
82
68
|
return;
|
|
83
69
|
}
|
|
84
70
|
|
|
85
|
-
//
|
|
86
|
-
// will lead to undefined behaviour
|
|
71
|
+
// Wait for init to complete before disconnecting
|
|
87
72
|
logger.trace('Checking/waiting for init before graceful shutdown');
|
|
88
73
|
await sailorInit;
|
|
89
74
|
logger.trace('Waited an init before graceful shutdown');
|
|
90
75
|
|
|
91
|
-
|
|
92
|
-
|
|
76
|
+
try {
|
|
77
|
+
logger.info('Disconnecting...');
|
|
78
|
+
await sailor.scheduleShutdown();
|
|
79
|
+
logger.info('Successfully disconnected');
|
|
80
|
+
process.exit();
|
|
81
|
+
} catch (err) {
|
|
82
|
+
logger.error(err, 'Unable to disconnect');
|
|
83
|
+
process.exit(-1);
|
|
84
|
+
}
|
|
93
85
|
}
|
|
94
86
|
|
|
95
87
|
async function run(settings, ipc) {
|
|
@@ -98,7 +90,7 @@ async function run(settings, ipc) {
|
|
|
98
90
|
await putOutToSea(settings, ipc);
|
|
99
91
|
logger.info('Fully initialized and waiting for messages');
|
|
100
92
|
} catch (e) {
|
|
101
|
-
if (sailor && !sailor.
|
|
93
|
+
if (sailor && !sailor.isConnected()) {
|
|
102
94
|
await sailor.reportError(e);
|
|
103
95
|
}
|
|
104
96
|
logger.criticalErrorAndExit('putOutToSea.catch', e);
|
package/run.local.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
const config = require('./config/local.json');
|
|
2
|
+
|
|
3
|
+
function setEnvVars() {
|
|
4
|
+
for (const [key, value] of Object.entries(config)) {
|
|
5
|
+
process.env[key] = value;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
setEnvVars();
|
|
9
|
+
|
|
10
|
+
const { IPC } = require('./lib/ipc');
|
|
11
|
+
const { run } = require('./run');
|
|
12
|
+
const settings = require('./lib/settings.js');
|
|
13
|
+
const ipc = new IPC();
|
|
14
|
+
run(settings.readFrom(process.env), ipc);
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"experimentalDecorators": true,
|
|
4
|
+
"emitDecoratorMetadata": true,
|
|
5
|
+
"lib": [
|
|
6
|
+
"es2020"
|
|
7
|
+
],
|
|
8
|
+
"types": ["node", "mocha"],
|
|
9
|
+
"module": "commonjs",
|
|
10
|
+
"esModuleInterop": true,
|
|
11
|
+
"target": "es2019",
|
|
12
|
+
"noImplicitAny": false,
|
|
13
|
+
"moduleResolution": "node",
|
|
14
|
+
"resolveJsonModule": true,
|
|
15
|
+
"sourceMap": true,
|
|
16
|
+
"outDir": "dist",
|
|
17
|
+
"skipLibCheck": true,
|
|
18
|
+
"typeRoots": ["./node_modules/@types", "./src/@types"]
|
|
19
|
+
},
|
|
20
|
+
"include": [
|
|
21
|
+
"src/**/*"
|
|
22
|
+
]
|
|
23
|
+
}
|