@golemio/core 1.2.16-dev.601773030 → 1.2.16-dev.614668565
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/dist/integration-engine/connectors/AMQPConnector.d.ts +1 -0
- package/dist/integration-engine/connectors/AMQPConnector.js +13 -0
- package/dist/integration-engine/connectors/AMQPConnector.js.map +1 -1
- package/dist/integration-engine/queueprocessors/QueueManager.d.ts +5 -0
- package/dist/integration-engine/queueprocessors/QueueManager.js +13 -0
- package/dist/integration-engine/queueprocessors/QueueManager.js.map +1 -0
- package/dist/integration-engine/queueprocessors/QueueProcessor.d.ts +5 -5
- package/dist/integration-engine/queueprocessors/QueueProcessor.js +15 -6
- package/dist/integration-engine/queueprocessors/QueueProcessor.js.map +1 -1
- package/dist/integration-engine/queueprocessors/abstract.d.ts +13 -7
- package/dist/integration-engine/queueprocessors/index.d.ts +1 -0
- package/dist/integration-engine/queueprocessors/index.js +1 -0
- package/dist/integration-engine/queueprocessors/index.js.map +1 -1
- package/dist/integration-engine/workers/AbstractEmptyTask.d.ts +5 -0
- package/dist/integration-engine/workers/AbstractEmptyTask.js +12 -0
- package/dist/integration-engine/workers/AbstractEmptyTask.js.map +1 -0
- package/dist/integration-engine/workers/AbstractTask.d.ts +13 -0
- package/dist/integration-engine/workers/AbstractTask.js +63 -0
- package/dist/integration-engine/workers/AbstractTask.js.map +1 -0
- package/dist/integration-engine/workers/AbstractWorker.d.ts +13 -0
- package/dist/integration-engine/workers/AbstractWorker.js +38 -0
- package/dist/integration-engine/workers/AbstractWorker.js.map +1 -0
- package/dist/integration-engine/workers/BaseWorker.d.ts +3 -1
- package/dist/integration-engine/workers/BaseWorker.js +4 -19
- package/dist/integration-engine/workers/BaseWorker.js.map +1 -1
- package/dist/integration-engine/workers/index.d.ts +3 -0
- package/dist/integration-engine/workers/index.js +3 -0
- package/dist/integration-engine/workers/index.js.map +1 -1
- package/dist/integration-engine/workers/interfaces/ITask.d.ts +7 -0
- package/dist/integration-engine/workers/interfaces/ITask.js +3 -0
- package/dist/integration-engine/workers/interfaces/ITask.js.map +1 -0
- package/dist/integration-engine/workers/interfaces/index.d.ts +1 -0
- package/dist/integration-engine/workers/interfaces/index.js +18 -0
- package/dist/integration-engine/workers/interfaces/index.js.map +1 -0
- package/dist/shared/class-transformer.d.ts +2 -0
- package/dist/shared/class-transformer.js +27 -0
- package/dist/shared/class-transformer.js.map +1 -0
- package/dist/shared/class-validator.d.ts +2 -0
- package/dist/shared/class-validator.js +27 -0
- package/dist/shared/class-validator.js.map +1 -0
- package/package.json +3 -1
|
@@ -6,6 +6,7 @@ declare class MyAMQP {
|
|
|
6
6
|
constructor();
|
|
7
7
|
connect: () => Promise<amqplib.Channel>;
|
|
8
8
|
getChannel: () => amqplib.Channel;
|
|
9
|
+
sendMessage: (key: string, msg: string, options?: amqplib.Options.Publish) => Promise<boolean>;
|
|
9
10
|
private assertDeadQueue;
|
|
10
11
|
isConnected: () => Promise<boolean>;
|
|
11
12
|
disconnect: () => Promise<void>;
|
|
@@ -69,6 +69,19 @@ class MyAMQP {
|
|
|
69
69
|
}
|
|
70
70
|
return this.channel;
|
|
71
71
|
};
|
|
72
|
+
this.sendMessage = (key, msg, options = {}) => __awaiter(this, void 0, void 0, function* () {
|
|
73
|
+
try {
|
|
74
|
+
const channel = AMQPConnector.getChannel();
|
|
75
|
+
yield channel.assertExchange(config_1.config.RABBIT_EXCHANGE_NAME, "topic", {
|
|
76
|
+
durable: false,
|
|
77
|
+
alternateExchange: AlternateExchangeCreator_1.default.getAltExchangeName(config_1.config.RABBIT_EXCHANGE_NAME),
|
|
78
|
+
});
|
|
79
|
+
return channel.publish(config_1.config.RABBIT_EXCHANGE_NAME, key, Buffer.from(msg), options);
|
|
80
|
+
}
|
|
81
|
+
catch (err) {
|
|
82
|
+
throw new errors_1.CustomError("Sending the message to exchange failed.", true, this.constructor.name, 1003, err);
|
|
83
|
+
}
|
|
84
|
+
});
|
|
72
85
|
this.assertDeadQueue = (channel) => __awaiter(this, void 0, void 0, function* () {
|
|
73
86
|
if (!config_1.config.RABBIT_EXCHANGE_NAME) {
|
|
74
87
|
throw new errors_1.CustomError("[AMQP] The ENV variable RABBIT_EXCHANGE_NAME cannot be undefined.", true, this.constructor.name, 6003);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AMQPConnector.js","sourceRoot":"","sources":["../../../src/integration-engine/connectors/AMQPConnector.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"AMQPConnector.js","sourceRoot":"","sources":["../../../src/integration-engine/connectors/AMQPConnector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.QueueManager = void 0;
|
|
4
|
+
const connectors_1 = require("../connectors");
|
|
5
|
+
const sentry_transactions_1 = require("../../monitoring/sentry/sentry-transactions");
|
|
6
|
+
class QueueManager {
|
|
7
|
+
static sendMessageToExchange(queuePrefix, queueName, data, options = {}) {
|
|
8
|
+
return QueueManager.sendMessage(`workers.${queuePrefix}.${queueName}`, JSON.stringify(data), options);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.QueueManager = QueueManager;
|
|
12
|
+
QueueManager.sendMessage = (0, sentry_transactions_1.withSentryProducerTrace)(connectors_1.AMQPConnector.sendMessage);
|
|
13
|
+
//# sourceMappingURL=QueueManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueueManager.js","sourceRoot":"","sources":["../../../src/integration-engine/queueprocessors/QueueManager.ts"],"names":[],"mappings":";;;AAAA,8CAA+C;AAC/C,qFAAiF;AAGjF,MAAa,YAAY;IACd,MAAM,CAAC,qBAAqB,CAC/B,WAAmB,EACnB,SAAiB,EACjB,IAAyB,EACzB,UAA2B,EAAE;QAE7B,OAAO,YAAY,CAAC,WAAW,CAAC,WAAW,WAAW,IAAI,SAAS,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IAC1G,CAAC;;AARL,oCAWC;AADkB,wBAAW,GAAG,IAAA,6CAAuB,EAAC,0BAAa,CAAC,WAAW,CAAC,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { IQueueDefinition } from "./";
|
|
2
|
-
import
|
|
2
|
+
import { Options, Channel, ConsumeMessage } from "amqplib";
|
|
3
3
|
export declare class QueueProcessor {
|
|
4
|
-
protected channel:
|
|
4
|
+
protected channel: Channel;
|
|
5
5
|
private definition;
|
|
6
6
|
private consumers;
|
|
7
7
|
private isGracefulShutdown;
|
|
8
|
-
constructor(channel:
|
|
8
|
+
constructor(channel: Channel, definition: IQueueDefinition);
|
|
9
9
|
/**
|
|
10
10
|
* Registering all queues from definition
|
|
11
11
|
*/
|
|
@@ -17,6 +17,6 @@ export declare class QueueProcessor {
|
|
|
17
17
|
/**
|
|
18
18
|
* Default queue processor
|
|
19
19
|
*/
|
|
20
|
-
protected defaultProcessor: (msg: any, name: string, worker: () => Promise<
|
|
21
|
-
protected registerQueue: (name: string, key: string, processor: (msg:
|
|
20
|
+
protected defaultProcessor: (msg: any, name: string, worker: () => Promise<any>) => Promise<void>;
|
|
21
|
+
protected registerQueue: (name: string, key: string, processor: (msg: ConsumeMessage | null) => any, queueOptions?: Options.AssertQueue) => Promise<any>;
|
|
22
22
|
}
|
|
@@ -31,13 +31,22 @@ class QueueProcessor {
|
|
|
31
31
|
? q.customProcessFunction // custom processor from definition
|
|
32
32
|
: (msg) => __awaiter(this, void 0, void 0, function* () {
|
|
33
33
|
// default processor
|
|
34
|
-
yield this.defaultProcessor(msg, q.name, () =>
|
|
35
|
-
if (
|
|
36
|
-
|
|
34
|
+
yield this.defaultProcessor(msg, q.name, () => {
|
|
35
|
+
if (q.validateAndExecute) {
|
|
36
|
+
return (0, sentry_transactions_1.withSentryConsumerTrace)(q.validateAndExecute)(msg);
|
|
37
37
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
if (q.worker && q.workerMethod) {
|
|
39
|
+
const worker = new q.worker();
|
|
40
|
+
const workerMethod = worker[q.workerMethod];
|
|
41
|
+
if (typeof workerMethod !== "function") {
|
|
42
|
+
throw new errors_1.CustomError(
|
|
43
|
+
// eslint-disable-next-line max-len
|
|
44
|
+
`[AMQP QueueProcessor] Worker method ${q.workerMethod} does not exist on worker ${worker.constructor.name}`, false, this.constructor.name);
|
|
45
|
+
}
|
|
46
|
+
return (0, sentry_transactions_1.withSentryConsumerTrace)(workerMethod.bind(worker))(msg);
|
|
47
|
+
}
|
|
48
|
+
throw new errors_1.CustomError("[AMQP QueueProcessor] validateAndExecute method or worker and its method must be defined", false, this.constructor.name);
|
|
49
|
+
});
|
|
41
50
|
}), q.options // queue options
|
|
42
51
|
);
|
|
43
52
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueueProcessor.js","sourceRoot":"","sources":["../../../src/integration-engine/queueprocessors/QueueProcessor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,uHAA0F;AAC1F,sCAAoC;AACpC,wCAAuF;AAEvF,qFAAiF;AACjF,4CAA8C;AAG9C,MAAa,cAAc;IAMvB,YAAY,
|
|
1
|
+
{"version":3,"file":"QueueProcessor.js","sourceRoot":"","sources":["../../../src/integration-engine/queueprocessors/QueueProcessor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,17 @@
|
|
|
1
|
+
import { Options, ConsumeMessage, Message } from "amqplib";
|
|
2
|
+
import { BaseWorker } from "../workers";
|
|
1
3
|
export interface IQueueDefinition {
|
|
2
4
|
name: string;
|
|
3
5
|
queuePrefix: string;
|
|
4
|
-
queues:
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
queues: IQueueTask[];
|
|
7
|
+
}
|
|
8
|
+
export interface IQueueTask {
|
|
9
|
+
name: string;
|
|
10
|
+
options?: Options.AssertQueue;
|
|
11
|
+
customProcessFunction?: (msg: ConsumeMessage | null) => any;
|
|
12
|
+
validateAndExecute?: (msg: Message | null) => any;
|
|
13
|
+
/** @deprecated Define validateAndExecute instead */
|
|
14
|
+
worker?: new () => BaseWorker;
|
|
15
|
+
/** @deprecated Define validateAndExecute instead */
|
|
16
|
+
workerMethod?: string;
|
|
11
17
|
}
|
|
@@ -18,4 +18,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
18
18
|
__exportStar(require("./abstract"), exports);
|
|
19
19
|
__exportStar(require("./helpers"), exports);
|
|
20
20
|
__exportStar(require("./QueueProcessor"), exports);
|
|
21
|
+
__exportStar(require("./QueueManager"), exports);
|
|
21
22
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/integration-engine/queueprocessors/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iCAAiC;AACjC,6CAA2B;AAC3B,4CAA0B;AAC1B,mDAAiC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/integration-engine/queueprocessors/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iCAAiC;AACjC,6CAA2B;AAC3B,4CAA0B;AAC1B,mDAAiC;AACjC,iDAA+B"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AbstractEmptyTask = void 0;
|
|
4
|
+
const AbstractTask_1 = require("./AbstractTask");
|
|
5
|
+
class AbstractEmptyTask extends AbstractTask_1.AbstractTask {
|
|
6
|
+
constructor(queuePrefix) {
|
|
7
|
+
super(queuePrefix);
|
|
8
|
+
this.schema = undefined;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.AbstractEmptyTask = AbstractEmptyTask;
|
|
12
|
+
//# sourceMappingURL=AbstractEmptyTask.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AbstractEmptyTask.js","sourceRoot":"","sources":["../../../src/integration-engine/workers/AbstractEmptyTask.ts"],"names":[],"mappings":";;;AAAA,iDAA8C;AAE9C,MAAsB,iBAAkB,SAAQ,2BAAoB;IAGhE,YAAY,WAAmB;QAC3B,KAAK,CAAC,WAAW,CAAC,CAAC;QAHb,WAAM,GAAI,SAAS,CAAC;IAI9B,CAAC;CACJ;AAND,8CAMC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Message } from "amqplib";
|
|
2
|
+
import { ClassConstructor } from "class-transformer";
|
|
3
|
+
import { ITask } from "./interfaces";
|
|
4
|
+
export declare abstract class AbstractTask<TRawData extends object> implements ITask {
|
|
5
|
+
abstract queueName: string;
|
|
6
|
+
queueTtl?: number;
|
|
7
|
+
queuePrefix: string;
|
|
8
|
+
protected abstract schema?: ClassConstructor<TRawData> | undefined;
|
|
9
|
+
constructor(queuePrefix: string);
|
|
10
|
+
validateAndExecute(msg: Message | null): Promise<void>;
|
|
11
|
+
protected abstract execute(data: TRawData): void | Promise<void>;
|
|
12
|
+
private validate;
|
|
13
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.AbstractTask = void 0;
|
|
13
|
+
const class_transformer_1 = require("class-transformer");
|
|
14
|
+
const class_validator_1 = require("class-validator");
|
|
15
|
+
const errors_1 = require("@golemio/errors");
|
|
16
|
+
const helpers_1 = require("../helpers");
|
|
17
|
+
class AbstractTask {
|
|
18
|
+
constructor(queuePrefix) {
|
|
19
|
+
this.queuePrefix = queuePrefix;
|
|
20
|
+
}
|
|
21
|
+
validateAndExecute(msg) {
|
|
22
|
+
var _a;
|
|
23
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
24
|
+
if (!this.schema) {
|
|
25
|
+
return this.execute({});
|
|
26
|
+
}
|
|
27
|
+
let msgContent = "";
|
|
28
|
+
let data;
|
|
29
|
+
try {
|
|
30
|
+
msgContent = (_a = msg === null || msg === void 0 ? void 0 : msg.content.toString()) !== null && _a !== void 0 ? _a : "";
|
|
31
|
+
data = (0, class_transformer_1.plainToInstance)(this.schema, JSON.parse(msgContent));
|
|
32
|
+
}
|
|
33
|
+
catch (err) {
|
|
34
|
+
const exception = new errors_1.CustomError(`[${this.constructor.name}] Message parsing failed: ${`'${msgContent.substring(0, 2000)}'`}`, true, this.constructor.name, undefined, err);
|
|
35
|
+
helpers_1.log.error(exception);
|
|
36
|
+
throw exception;
|
|
37
|
+
}
|
|
38
|
+
yield this.validate(data);
|
|
39
|
+
return this.execute(data);
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
validate(data) {
|
|
43
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
44
|
+
let errors = [];
|
|
45
|
+
try {
|
|
46
|
+
errors = yield (0, class_validator_1.validate)(data);
|
|
47
|
+
}
|
|
48
|
+
catch (err) {
|
|
49
|
+
const exception = new errors_1.CustomError(`[${this.constructor.name}] Message validation failed: ${err.message}`, true, this.constructor.name, undefined, err);
|
|
50
|
+
helpers_1.log.error(exception);
|
|
51
|
+
throw exception;
|
|
52
|
+
}
|
|
53
|
+
if (errors.length > 0) {
|
|
54
|
+
const constraints = errors.flatMap(({ constraints }) => (constraints ? Object.values(constraints) : []));
|
|
55
|
+
const exception = new errors_1.CustomError(`[${this.constructor.name}] Message validation failed: [${constraints.join(", ")}]`, true, this.constructor.name);
|
|
56
|
+
helpers_1.log.error(exception);
|
|
57
|
+
throw exception;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
exports.AbstractTask = AbstractTask;
|
|
63
|
+
//# sourceMappingURL=AbstractTask.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AbstractTask.js","sourceRoot":"","sources":["../../../src/integration-engine/workers/AbstractTask.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,yDAAsE;AACtE,qDAA4D;AAC5D,4CAA8C;AAC9C,wCAAkC;AAGlC,MAAsB,YAAY;IAM9B,YAAY,WAAmB;QAC3B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACnC,CAAC;IAEY,kBAAkB,CAAC,GAAmB;;;YAC/C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBACd,OAAO,IAAI,CAAC,OAAO,CAAC,EAAc,CAAC,CAAC;aACvC;YAED,IAAI,UAAU,GAAG,EAAE,CAAC;YACpB,IAAI,IAAc,CAAC;YAEnB,IAAI;gBACA,UAAU,GAAG,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,CAAC,QAAQ,EAAE,mCAAI,EAAE,CAAC;gBAC3C,IAAI,GAAG,IAAA,mCAAe,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;aAC/D;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,SAAS,GAAG,IAAI,oBAAW,CAC7B,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,6BAA6B,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,EAC5F,IAAI,EACJ,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,SAAS,EACT,GAAG,CACN,CAAC;gBAEF,aAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBACrB,MAAM,SAAS,CAAC;aACnB;YAED,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;;KAC7B;IAIa,QAAQ,CAAC,IAAc;;YACjC,IAAI,MAAM,GAAsB,EAAE,CAAC;YACnC,IAAI;gBACA,MAAM,GAAG,MAAM,IAAA,0BAAQ,EAAC,IAAI,CAAC,CAAC;aACjC;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,SAAS,GAAG,IAAI,oBAAW,CAC7B,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,gCAAgC,GAAG,CAAC,OAAO,EAAE,EACtE,IAAI,EACJ,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,SAAS,EACT,GAAG,CACN,CAAC;gBAEF,aAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBACrB,MAAM,SAAS,CAAC;aACnB;YAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBACnB,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACzG,MAAM,SAAS,GAAG,IAAI,oBAAW,CAC7B,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,iCAAiC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EACnF,IAAI,EACJ,IAAI,CAAC,WAAW,CAAC,IAAI,CACxB,CAAC;gBAEF,aAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBACrB,MAAM,SAAS,CAAC;aACnB;QACL,CAAC;KAAA;CACJ;AArED,oCAqEC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { IQueueDefinition } from "../queueprocessors";
|
|
2
|
+
import { AbstractTask } from "./AbstractTask";
|
|
3
|
+
export declare abstract class AbstractWorker {
|
|
4
|
+
protected abstract readonly name: string;
|
|
5
|
+
private queues;
|
|
6
|
+
registerTask(task: AbstractTask<any>): void;
|
|
7
|
+
/**
|
|
8
|
+
* Generate queue definition from registed tasks
|
|
9
|
+
*/
|
|
10
|
+
getQueueDefinition(): IQueueDefinition;
|
|
11
|
+
getQueuePrefix(): string;
|
|
12
|
+
private getQueueTask;
|
|
13
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AbstractWorker = void 0;
|
|
4
|
+
const config_1 = require("../config");
|
|
5
|
+
class AbstractWorker {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.queues = [];
|
|
8
|
+
}
|
|
9
|
+
registerTask(task) {
|
|
10
|
+
this.queues.push(this.getQueueTask(task));
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Generate queue definition from registed tasks
|
|
14
|
+
*/
|
|
15
|
+
getQueueDefinition() {
|
|
16
|
+
return {
|
|
17
|
+
name: this.name,
|
|
18
|
+
queuePrefix: this.getQueuePrefix(),
|
|
19
|
+
queues: this.queues,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
getQueuePrefix() {
|
|
23
|
+
return config_1.config.RABBIT_EXCHANGE_NAME + "." + this.name.toLowerCase();
|
|
24
|
+
}
|
|
25
|
+
getQueueTask(task) {
|
|
26
|
+
return {
|
|
27
|
+
name: task.queueName,
|
|
28
|
+
options: {
|
|
29
|
+
deadLetterExchange: config_1.config.RABBIT_EXCHANGE_NAME,
|
|
30
|
+
deadLetterRoutingKey: "dead",
|
|
31
|
+
messageTtl: task.queueTtl,
|
|
32
|
+
},
|
|
33
|
+
validateAndExecute: task.validateAndExecute.bind(task),
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.AbstractWorker = AbstractWorker;
|
|
38
|
+
//# sourceMappingURL=AbstractWorker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AbstractWorker.js","sourceRoot":"","sources":["../../../src/integration-engine/workers/AbstractWorker.ts"],"names":[],"mappings":";;;AAAA,sCAAoC;AAKpC,MAAsB,cAAc;IAApC;QAEY,WAAM,GAAiB,EAAE,CAAC;IAgCtC,CAAC;IA9BU,YAAY,CAAC,IAAuB;QACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACI,kBAAkB;QACrB,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE;YAClC,MAAM,EAAE,IAAI,CAAC,MAAM;SACtB,CAAC;IACN,CAAC;IAEM,cAAc;QACjB,OAAO,eAAM,CAAC,oBAAoB,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IACvE,CAAC;IAEO,YAAY,CAAC,IAAW;QAC5B,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,SAAS;YACpB,OAAO,EAAE;gBACL,kBAAkB,EAAE,eAAM,CAAC,oBAAoB;gBAC/C,oBAAoB,EAAE,MAAM;gBAC5B,UAAU,EAAE,IAAI,CAAC,QAAQ;aAC5B;YACD,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;SACzD,CAAC;IACN,CAAC;CACJ;AAlCD,wCAkCC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { DataSourceStream } from "../datasources/DataSourceStream";
|
|
2
|
+
/**
|
|
3
|
+
* @deprecated Use AbstractWorker instead
|
|
4
|
+
*/
|
|
2
5
|
export declare class BaseWorker {
|
|
3
|
-
private sendMessage;
|
|
4
6
|
protected sendMessageToExchange: (key: string, msg: string, options?: Record<string, any> | undefined) => Promise<boolean>;
|
|
5
7
|
protected processDataStream: (dataSourceStream: Promise<DataSourceStream>, onDataFunction: (data: any) => Promise<void>) => Promise<void>;
|
|
6
8
|
}
|
|
@@ -8,32 +8,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
12
|
exports.BaseWorker = void 0;
|
|
16
|
-
const AlternateExchangeCreator_1 = __importDefault(require("../../helpers/data-access/amqp/AlternateExchangeCreator"));
|
|
17
|
-
const config_1 = require("../config");
|
|
18
13
|
const connectors_1 = require("../connectors");
|
|
19
14
|
const sentry_transactions_1 = require("../../monitoring/sentry/sentry-transactions");
|
|
20
15
|
const errors_1 = require("@golemio/errors");
|
|
16
|
+
/**
|
|
17
|
+
* @deprecated Use AbstractWorker instead
|
|
18
|
+
*/
|
|
21
19
|
class BaseWorker {
|
|
22
20
|
constructor() {
|
|
23
|
-
this.
|
|
24
|
-
try {
|
|
25
|
-
const channel = connectors_1.AMQPConnector.getChannel();
|
|
26
|
-
yield channel.assertExchange(config_1.config.RABBIT_EXCHANGE_NAME, "topic", {
|
|
27
|
-
durable: false,
|
|
28
|
-
alternateExchange: AlternateExchangeCreator_1.default.getAltExchangeName(config_1.config.RABBIT_EXCHANGE_NAME),
|
|
29
|
-
});
|
|
30
|
-
return channel.publish(config_1.config.RABBIT_EXCHANGE_NAME, key, Buffer.from(msg), options);
|
|
31
|
-
}
|
|
32
|
-
catch (err) {
|
|
33
|
-
throw new errors_1.CustomError("Sending the message to exchange failed.", true, this.constructor.name, 1003, err);
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
this.sendMessageToExchange = (0, sentry_transactions_1.withSentryProducerTrace)(this.sendMessage);
|
|
21
|
+
this.sendMessageToExchange = (0, sentry_transactions_1.withSentryProducerTrace)(connectors_1.AMQPConnector.sendMessage);
|
|
37
22
|
this.processDataStream = (dataSourceStream, onDataFunction) => __awaiter(this, void 0, void 0, function* () {
|
|
38
23
|
let dataStream;
|
|
39
24
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseWorker.js","sourceRoot":"","sources":["../../../src/integration-engine/workers/BaseWorker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BaseWorker.js","sourceRoot":"","sources":["../../../src/integration-engine/workers/BaseWorker.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAA+C;AAE/C,qFAAiF;AACjF,4CAA8C;AAE9C;;GAEG;AACH,MAAa,UAAU;IAAvB;QACc,0BAAqB,GAAG,IAAA,6CAAuB,EAAC,0BAAa,CAAC,WAAW,CAAC,CAAC;QAE3E,sBAAiB,GAAG,CAC1B,gBAA2C,EAC3C,cAA4C,EAC/B,EAAE;YACf,IAAI,UAA4B,CAAC;YAEjC,IAAI;gBACA,UAAU,GAAG,MAAM,gBAAgB,CAAC;aACvC;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,oBAAW,CAAC,0BAA0B,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;aAC7F;YAED,IAAI;gBACA,MAAM,UAAU,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE,CAAC;aAC/D;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,oBAAW,CAAC,6BAA6B,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;aAChG;QACL,CAAC,CAAA,CAAC;IACN,CAAC;CAAA;AArBD,gCAqBC"}
|
|
@@ -16,4 +16,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
/* ie/workers/index.ts */
|
|
18
18
|
__exportStar(require("./BaseWorker"), exports);
|
|
19
|
+
__exportStar(require("./AbstractTask"), exports);
|
|
20
|
+
__exportStar(require("./AbstractEmptyTask"), exports);
|
|
21
|
+
__exportStar(require("./AbstractWorker"), exports);
|
|
19
22
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/integration-engine/workers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yBAAyB;AACzB,+CAA6B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/integration-engine/workers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yBAAyB;AACzB,+CAA6B;AAC7B,iDAA+B;AAC/B,sDAAoC;AACpC,mDAAiC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ITask.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/interfaces/ITask.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./ITask";
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./ITask"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/integration-engine/workers/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
const classTransformer = __importStar(require("class-transformer"));
|
|
26
|
+
module.exports = classTransformer;
|
|
27
|
+
//# sourceMappingURL=class-transformer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"class-transformer.js","sourceRoot":"","sources":["../../src/shared/class-transformer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,oEAAsD;AACtD,iBAAS,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
const classValidator = __importStar(require("class-validator"));
|
|
26
|
+
module.exports = classValidator;
|
|
27
|
+
//# sourceMappingURL=class-validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"class-validator.js","sourceRoot":"","sources":["../../src/shared/class-validator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,gEAAkD;AAClD,iBAAS,cAAc,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@golemio/core",
|
|
3
|
-
"version": "1.2.16-dev.
|
|
3
|
+
"version": "1.2.16-dev.614668565",
|
|
4
4
|
"description": "Golemio Core Module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -92,6 +92,8 @@
|
|
|
92
92
|
"aws-sdk": "^2.823.0",
|
|
93
93
|
"axios": "^0.24.0",
|
|
94
94
|
"basic-ftp": "^4.6.6",
|
|
95
|
+
"class-transformer": "^0.5.1",
|
|
96
|
+
"class-validator": "^0.13.2",
|
|
95
97
|
"content-type": "^1.0.4",
|
|
96
98
|
"debug": "3.1.0",
|
|
97
99
|
"decompress": "^4.2.1",
|