@quatrain/worker 1.1.21 → 1.1.22

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.
@@ -0,0 +1 @@
1
+ export declare const handler: (messageHandler: Function, config: any, adapters: any) => Promise<void>;
package/lib/Handler.js ADDED
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handler = void 0;
4
+ const Worker_1 = require("./Worker");
5
+ const handler = async (messageHandler, config, adapters) => {
6
+ try {
7
+ Worker_1.Worker.info(`Worker version ${require('../package.json').version} started in ${config.MQ_MODE} mode`);
8
+ switch (config.MQ_MODE) {
9
+ case 'queue':
10
+ const { Queue } = require('@quatrain/queue');
11
+ Queue.addQueue(adapters.queue, 'default', true);
12
+ Queue.info(`Connecting to amqp://${config.MQ_HOST}:${config.MQ_PORT}`);
13
+ Queue.getQueue().listen(config.MQ_TOPIC, messageHandler);
14
+ Queue.info(`Connected and listening to ${config.MQ_TOPIC}, ready to receive messages.`);
15
+ break;
16
+ case 'cli':
17
+ case 'test':
18
+ Worker_1.Worker.warn(`Message received from CLI.`);
19
+ const json = config.MQ_MODE === 'test'
20
+ ? require('../test.json')
21
+ : process.env.JSON;
22
+ if (!json) {
23
+ throw new Error(`CLI call with missing environment variables`);
24
+ }
25
+ await messageHandler(json);
26
+ break;
27
+ default:
28
+ Worker_1.Worker.error(`Unknown mode option: '${config.MQ_MODE}'`);
29
+ process.exit(1);
30
+ }
31
+ }
32
+ catch (error) {
33
+ Worker_1.Worker.error(error.message);
34
+ process.exit(1);
35
+ }
36
+ };
37
+ exports.handler = handler;
package/lib/Worker.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { Core } from '@quatrain/core';
2
+ import { HandlerParameters } from './types/HandlerParameters';
2
3
  export declare class Worker extends Core {
3
4
  static endpoint: string;
4
5
  static logger: any;
@@ -19,4 +20,10 @@ export declare class Worker extends Core {
19
20
  * @returns boolean
20
21
  */
21
22
  static pushEvent(event: string, data?: {}, ts?: number): false | undefined;
23
+ /**
24
+ * Global handling function to process received messages
25
+ * @param messageHandler function
26
+ * @param config object
27
+ */
28
+ static handler: (messageHandler: Function, config: HandlerParameters) => Promise<void>;
22
29
  }
package/lib/Worker.js CHANGED
@@ -69,5 +69,41 @@ class Worker extends core_1.Core {
69
69
  return false;
70
70
  });
71
71
  }
72
+ /**
73
+ * Global handling function to process received messages
74
+ * @param messageHandler function
75
+ * @param config object
76
+ */
77
+ static handler = async (messageHandler, config) => {
78
+ try {
79
+ Worker.info(`Worker version ${require('../package.json').version} started in ${config.mode} mode`);
80
+ switch (config.mode) {
81
+ case 'queue':
82
+ const { Queue } = require('@quatrain/queue');
83
+ Queue.addQueue(config.queueAdapter, 'default', true);
84
+ Queue.getQueue().listen(config.topic, messageHandler);
85
+ Queue.info(`Connected and listening to ${config.topic}, ready to receive messages.`);
86
+ break;
87
+ case 'cli':
88
+ case 'test':
89
+ Worker.warn(`Message received from CLI.`);
90
+ const json = config.mode === 'test'
91
+ ? require('../test.json')
92
+ : process.env.JSON;
93
+ if (!json) {
94
+ throw new Error(`CLI call with missing environment variables`);
95
+ }
96
+ await messageHandler(json);
97
+ break;
98
+ default:
99
+ Worker.error(`Unknown mode option: '${config.mode}'`);
100
+ process.exit(1);
101
+ }
102
+ }
103
+ catch (error) {
104
+ Worker.error(error.message);
105
+ process.exit(1);
106
+ }
107
+ };
72
108
  }
73
109
  exports.Worker = Worker;
package/lib/index.d.ts CHANGED
@@ -1,3 +1,5 @@
1
1
  import { Worker } from './Worker';
2
2
  import { FileSystem } from './FileSystem';
3
- export { Worker, FileSystem };
3
+ import { HandlerParameters } from './types/HandlerParameters';
4
+ import { ModeEnum } from './types/ModeEnum';
5
+ export { Worker, FileSystem, ModeEnum, HandlerParameters };
package/lib/index.js CHANGED
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FileSystem = exports.Worker = void 0;
3
+ exports.ModeEnum = exports.FileSystem = exports.Worker = void 0;
4
4
  const Worker_1 = require("./Worker");
5
5
  Object.defineProperty(exports, "Worker", { enumerable: true, get: function () { return Worker_1.Worker; } });
6
6
  const FileSystem_1 = require("./FileSystem");
7
7
  Object.defineProperty(exports, "FileSystem", { enumerable: true, get: function () { return FileSystem_1.FileSystem; } });
8
+ const ModeEnum_1 = require("./types/ModeEnum");
9
+ Object.defineProperty(exports, "ModeEnum", { enumerable: true, get: function () { return ModeEnum_1.ModeEnum; } });
@@ -0,0 +1,8 @@
1
+ export declare const MODE_CLI = "cli";
2
+ export declare const MODE_QUEUE = "queue";
3
+ export declare const MODE_TEST = "test";
4
+ export interface HandlerParameters {
5
+ mode: typeof MODE_QUEUE | typeof MODE_CLI | typeof MODE_TEST;
6
+ topic?: string;
7
+ config?: {};
8
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MODE_TEST = exports.MODE_QUEUE = exports.MODE_CLI = void 0;
4
+ exports.MODE_CLI = 'cli';
5
+ exports.MODE_QUEUE = 'queue';
6
+ exports.MODE_TEST = 'test';
@@ -0,0 +1,7 @@
1
+ import { ModeEnum } from './ModeEnum';
2
+ import { AbstractQueueAdapter } from '@quatrain/queue';
3
+ export interface HandlerParameters {
4
+ mode: string | typeof ModeEnum;
5
+ topic?: string;
6
+ queueAdapter?: AbstractQueueAdapter;
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,5 @@
1
+ export declare enum ModeEnum {
2
+ MODE_CLI = "cli",
3
+ MODE_QUEUE = "queue",
4
+ MODE_TEST = "test"
5
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ModeEnum = void 0;
4
+ var ModeEnum;
5
+ (function (ModeEnum) {
6
+ ModeEnum["MODE_CLI"] = "cli";
7
+ ModeEnum["MODE_QUEUE"] = "queue";
8
+ ModeEnum["MODE_TEST"] = "test";
9
+ })(ModeEnum || (exports.ModeEnum = ModeEnum = {}));
@@ -0,0 +1,5 @@
1
+ export declare enum ModeEnum {
2
+ MODE_CLI = "cli",
3
+ MODE_QUEUE = "queue",
4
+ MODE_TEST = "test"
5
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ModeEnum = void 0;
4
+ var ModeEnum;
5
+ (function (ModeEnum) {
6
+ ModeEnum["MODE_CLI"] = "cli";
7
+ ModeEnum["MODE_QUEUE"] = "queue";
8
+ ModeEnum["MODE_TEST"] = "test";
9
+ })(ModeEnum || (exports.ModeEnum = ModeEnum = {}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quatrain/worker",
3
- "version": "1.1.21",
3
+ "version": "1.1.22",
4
4
  "description": "Container Worker helpers",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -25,7 +25,8 @@
25
25
  "typescript": "^5.1.5"
26
26
  },
27
27
  "dependencies": {
28
- "@quatrain/core": "^1.1.18",
28
+ "@quatrain/core": "^1.1.19",
29
+ "@quatrain/queue": "^1.1.15",
29
30
  "axios": "^1.7.7",
30
31
  "fluent-ffmpeg": "^2.1.2",
31
32
  "fs-extra": "^11.2.0",