@quatrain/worker 1.1.21 → 1.1.24

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/FileSystem.js CHANGED
@@ -91,6 +91,7 @@ class FileSystem {
91
91
  static uploadFile(filename, meta, mime = 'video/mp4') {
92
92
  // try to get more file metadata
93
93
  meta = { ...meta, ...FileSystem.getInfo(filename) };
94
+ Worker_1.Worker.info(`Uploading file ${filename} with size ${meta.size} bytes to ${meta.uploadUrl}`);
94
95
  return new Promise((resolve, reject) => {
95
96
  try {
96
97
  let done = 0; // total bytes uploaded
@@ -137,7 +138,7 @@ class FileSystem {
137
138
  Worker_1.Worker.error(err);
138
139
  reject(err);
139
140
  }
140
- Worker_1.Worker.debug(`ffprobe getInfo: ${JSON.stringify(metadata)}`);
141
+ // Worker.debug(`ffprobe getInfo: ${JSON.stringify(metadata)}`)
141
142
  const { width, height, duration, bit_rate: bitrate, nb_frames: nbFramees, } = metadata.streams[0];
142
143
  const nb_frames = parseFloat(nbFramees);
143
144
  const framerate = nb_frames / parseFloat(duration);
@@ -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,40 @@ 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
+ switch (config.mode) {
80
+ case 'queue':
81
+ const { Queue } = require('@quatrain/queue');
82
+ Queue.addQueue(config.queueAdapter, 'default', true);
83
+ Queue.getQueue().listen(config.topic, messageHandler);
84
+ Queue.info(`Connected and listening to ${config.topic}, ready to receive messages.`);
85
+ break;
86
+ case 'cli':
87
+ case 'test':
88
+ Worker.warn(`Message received from CLI.`);
89
+ const json = config.mode === 'test'
90
+ ? require('../test.json')
91
+ : process.env.JSON;
92
+ if (!json) {
93
+ throw new Error(`CLI call with missing environment variables`);
94
+ }
95
+ await messageHandler(json);
96
+ break;
97
+ default:
98
+ Worker.error(`Unknown mode option: '${config.mode}'`);
99
+ process.exit(1);
100
+ }
101
+ }
102
+ catch (error) {
103
+ Worker.error(error.message);
104
+ process.exit(1);
105
+ }
106
+ };
72
107
  }
73
108
  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.24",
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",