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/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
- try {
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
- // we connect to amqp, create channels, start listen a queue on init and interrupting this process with 'disconnect'
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
- await sailor.scheduleShutdown();
92
- await disconnectAndExit();
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.amqpConnection.closed) {
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
+ }