@golemio/core 1.2.7-dev.527896900 → 1.2.7-dev.527897314
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/README.md +6 -1
- package/dist/helpers/data-access/amqp/AlternateExchangeCreator.d.ts +7 -0
- package/dist/helpers/data-access/amqp/AlternateExchangeCreator.js +31 -0
- package/dist/helpers/data-access/amqp/AlternateExchangeCreator.js.map +1 -0
- package/dist/input-gateway/connectors/AMQPConnector.js +5 -1
- package/dist/input-gateway/connectors/AMQPConnector.js.map +1 -1
- package/dist/integration-engine/connectors/AMQPConnector.js +8 -3
- package/dist/integration-engine/connectors/AMQPConnector.js.map +1 -1
- package/dist/integration-engine/queueprocessors/QueueProcessor.d.ts +1 -1
- package/dist/integration-engine/queueprocessors/QueueProcessor.js +9 -2
- package/dist/integration-engine/queueprocessors/QueueProcessor.js.map +1 -1
- package/dist/integration-engine/workers/BaseWorker.js +9 -2
- package/dist/integration-engine/workers/BaseWorker.js.map +1 -1
- package/package.json +1 -1
- package/tsconfig.base.json +1 -1
package/README.md
CHANGED
|
@@ -80,7 +80,6 @@ yarn dev-start
|
|
|
80
80
|
|
|
81
81
|
Now you can change code and immediately see the results.
|
|
82
82
|
|
|
83
|
-
|
|
84
83
|
## Tests
|
|
85
84
|
|
|
86
85
|
To run all test defined in /test directory simply run this command:
|
|
@@ -92,6 +91,12 @@ yarn test
|
|
|
92
91
|
from the application's root directory. All tests should pass.
|
|
93
92
|
|
|
94
93
|
|
|
94
|
+
## Rabbit MQ
|
|
95
|
+
|
|
96
|
+
Core module defines main exchange in rabbit mq and its name is dependent on .env setting. Also it contains definition of queue for dead messages. All other queues are defined in separate modules and loaded dynamically by `QueueProcessor.ts`.
|
|
97
|
+
|
|
98
|
+
Core module also defines alternate exchange for messages that are unroutable. Name of the exchage is created from name of the main one with suffix `-alt` and it contains 1 queue named `alt-routes`.
|
|
99
|
+
|
|
95
100
|
## Contribution guidelines
|
|
96
101
|
|
|
97
102
|
Please read `CONTRIBUTING.md`.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import amqplib from "amqplib";
|
|
2
|
+
export default class AlternateExchangeCreator {
|
|
3
|
+
private static EXCHANGE_NAME_SUFFIX;
|
|
4
|
+
private static EXCHANGE_QUEUE_NAME;
|
|
5
|
+
static createAlternateExchange: (channel: amqplib.Channel, originalExchangeName: string) => Promise<void>;
|
|
6
|
+
static getAltExchangeName: (originalExchangeName: string) => string;
|
|
7
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
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
|
+
var _a;
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
class AlternateExchangeCreator {
|
|
14
|
+
}
|
|
15
|
+
exports.default = AlternateExchangeCreator;
|
|
16
|
+
_a = AlternateExchangeCreator;
|
|
17
|
+
AlternateExchangeCreator.EXCHANGE_NAME_SUFFIX = "-alt";
|
|
18
|
+
AlternateExchangeCreator.EXCHANGE_QUEUE_NAME = ".alt-routes";
|
|
19
|
+
AlternateExchangeCreator.createAlternateExchange = (channel, originalExchangeName) => __awaiter(void 0, void 0, void 0, function* () {
|
|
20
|
+
const altExchangeName = _a.getAltExchangeName(originalExchangeName);
|
|
21
|
+
yield channel.assertExchange(altExchangeName, "fanout", { durable: false });
|
|
22
|
+
const q = yield channel.assertQueue(altExchangeName + _a.EXCHANGE_QUEUE_NAME, {
|
|
23
|
+
durable: true,
|
|
24
|
+
messageTtl: 3 * 24 * 60 * 60 * 1000, // 3 days in milliseconds
|
|
25
|
+
});
|
|
26
|
+
channel.bindQueue(q.queue, altExchangeName, "dead");
|
|
27
|
+
});
|
|
28
|
+
AlternateExchangeCreator.getAltExchangeName = (originalExchangeName) => {
|
|
29
|
+
return originalExchangeName.concat(_a.EXCHANGE_NAME_SUFFIX);
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=AlternateExchangeCreator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AlternateExchangeCreator.js","sourceRoot":"","sources":["../../../../src/helpers/data-access/amqp/AlternateExchangeCreator.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,MAAqB,wBAAwB;;AAA7C,2CAmBC;;AAlBkB,6CAAoB,GAAG,MAAO,CAAA;AAC9B,4CAAmB,GAAG,aAAc,CAAA;AAErC,gDAAuB,GAAG,CAAO,OAAwB,EAAE,oBAA4B,EAAiB,EAAE;IACpH,MAAM,eAAe,GAAG,EAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;IACtE,MAAM,OAAO,CAAC,cAAc,CAAC,eAAyB,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAEtF,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,eAAe,GAAG,EAAI,CAAC,mBAAmB,EAAE;QAC5E,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,yBAAyB;KACjE,CAAC,CAAC;IAEH,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;AACxD,CAAC,CAAC,CAAA;AAEY,2CAAkB,GAAG,CAAC,oBAA4B,EAAU,EAAE;IACxE,OAAO,oBAAoB,CAAC,MAAM,CAAC,EAAI,CAAC,oBAAoB,CAAC,CAAC;AAClE,CAAE,CAAA"}
|
|
@@ -17,6 +17,7 @@ const errors_1 = require("@golemio/errors");
|
|
|
17
17
|
const amqplib_1 = __importDefault(require("amqplib"));
|
|
18
18
|
const config_1 = require("../config");
|
|
19
19
|
const helpers_1 = require("../helpers");
|
|
20
|
+
const AlternateExchangeCreator_1 = __importDefault(require("../../helpers/data-access/amqp/AlternateExchangeCreator"));
|
|
20
21
|
/**
|
|
21
22
|
* Class for connecting to RabbitMQ. Using amqplib https://www.npmjs.com/package/amqplib
|
|
22
23
|
*/
|
|
@@ -99,7 +100,10 @@ class MyAMQP {
|
|
|
99
100
|
*/
|
|
100
101
|
assertDeadQueue(channel) {
|
|
101
102
|
return __awaiter(this, void 0, void 0, function* () {
|
|
102
|
-
yield channel.assertExchange(config_1.config.rabbit_exchange_name, "topic", {
|
|
103
|
+
yield channel.assertExchange(config_1.config.rabbit_exchange_name, "topic", {
|
|
104
|
+
durable: false,
|
|
105
|
+
alternateExchange: AlternateExchangeCreator_1.default.getAltExchangeName(config_1.config.rabbit_exchange_name),
|
|
106
|
+
});
|
|
103
107
|
const q = yield channel.assertQueue(config_1.config.rabbit_exchange_name + ".deadqueue", {
|
|
104
108
|
durable: true,
|
|
105
109
|
messageTtl: 3 * 24 * 60 * 60 * 1000, // 3 days in milliseconds
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AMQPConnector.js","sourceRoot":"","sources":["../../../src/input-gateway/connectors/AMQPConnector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAA4D;AAC5D,sDAA8B;AAC9B,sCAAoC;AACpC,wCAAkC;
|
|
1
|
+
{"version":3,"file":"AMQPConnector.js","sourceRoot":"","sources":["../../../src/input-gateway/connectors/AMQPConnector.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,10 +13,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.AMQPConnector = void 0;
|
|
16
|
-
const
|
|
17
|
-
const amqplib_1 = __importDefault(require("amqplib"));
|
|
16
|
+
const AlternateExchangeCreator_1 = __importDefault(require("../../helpers/data-access/amqp/AlternateExchangeCreator"));
|
|
18
17
|
const config_1 = require("../config");
|
|
19
18
|
const helpers_1 = require("../helpers");
|
|
19
|
+
const errors_1 = require("@golemio/errors");
|
|
20
|
+
const amqplib_1 = __importDefault(require("amqplib"));
|
|
20
21
|
class MyAMQP {
|
|
21
22
|
constructor() {
|
|
22
23
|
this.connect = () => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -51,6 +52,7 @@ class MyAMQP {
|
|
|
51
52
|
}
|
|
52
53
|
});
|
|
53
54
|
helpers_1.log.info("[AMQP] Connected to Queue!");
|
|
55
|
+
yield AlternateExchangeCreator_1.default.createAlternateExchange(this.channel, config_1.config.RABBIT_EXCHANGE_NAME);
|
|
54
56
|
yield this.assertDeadQueue(this.channel);
|
|
55
57
|
return this.channel;
|
|
56
58
|
}
|
|
@@ -68,7 +70,10 @@ class MyAMQP {
|
|
|
68
70
|
if (!config_1.config.RABBIT_EXCHANGE_NAME) {
|
|
69
71
|
throw new errors_1.CustomError("[AMQP] The ENV variable RABBIT_EXCHANGE_NAME cannot be undefined.", true, this.constructor.name, 6003);
|
|
70
72
|
}
|
|
71
|
-
yield channel.assertExchange(config_1.config.RABBIT_EXCHANGE_NAME, "topic", {
|
|
73
|
+
yield channel.assertExchange(config_1.config.RABBIT_EXCHANGE_NAME, "topic", {
|
|
74
|
+
durable: false,
|
|
75
|
+
alternateExchange: AlternateExchangeCreator_1.default.getAltExchangeName(config_1.config.RABBIT_EXCHANGE_NAME),
|
|
76
|
+
});
|
|
72
77
|
const q = yield channel.assertQueue(config_1.config.RABBIT_EXCHANGE_NAME + ".deadqueue", {
|
|
73
78
|
durable: true,
|
|
74
79
|
messageTtl: 3 * 24 * 60 * 60 * 1000, // 3 days in milliseconds
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AMQPConnector.js","sourceRoot":"","sources":["../../../src/integration-engine/connectors/AMQPConnector.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"AMQPConnector.js","sourceRoot":"","sources":["../../../src/integration-engine/connectors/AMQPConnector.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,12 +8,16 @@ 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
|
+
};
|
|
11
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
15
|
exports.QueueProcessor = void 0;
|
|
13
|
-
const
|
|
16
|
+
const AlternateExchangeCreator_1 = __importDefault(require("../../helpers/data-access/amqp/AlternateExchangeCreator"));
|
|
14
17
|
const config_1 = require("../config");
|
|
15
18
|
const helpers_1 = require("../helpers");
|
|
16
19
|
const sentry_transactions_1 = require("../../monitoring/sentry/sentry-transactions");
|
|
20
|
+
const errors_1 = require("@golemio/errors");
|
|
17
21
|
class QueueProcessor {
|
|
18
22
|
constructor(channel, definition) {
|
|
19
23
|
/**
|
|
@@ -67,7 +71,10 @@ class QueueProcessor {
|
|
|
67
71
|
throw new errors_1.CustomError("[AMQP] The ENV variable RABBIT_EXCHANGE_NAME cannot be undefined.", true, this.constructor.name, 6003);
|
|
68
72
|
}
|
|
69
73
|
// Create exchange if not exists
|
|
70
|
-
yield this.channel.assertExchange(config_1.config.RABBIT_EXCHANGE_NAME, "topic", {
|
|
74
|
+
yield this.channel.assertExchange(config_1.config.RABBIT_EXCHANGE_NAME, "topic", {
|
|
75
|
+
durable: false,
|
|
76
|
+
alternateExchange: AlternateExchangeCreator_1.default.getAltExchangeName(config_1.config.RABBIT_EXCHANGE_NAME),
|
|
77
|
+
});
|
|
71
78
|
// Create queue
|
|
72
79
|
const q = yield this.channel.assertQueue(name, Object.assign(Object.assign({}, queueOptions), { durable: true }));
|
|
73
80
|
// This tells RabbitMQ not to give more than one message to a worker at a time.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueueProcessor.js","sourceRoot":"","sources":["../../../src/integration-engine/queueprocessors/QueueProcessor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"QueueProcessor.js","sourceRoot":"","sources":["../../../src/integration-engine/queueprocessors/QueueProcessor.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,18 +8,25 @@ 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
|
+
};
|
|
11
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
15
|
exports.BaseWorker = void 0;
|
|
13
|
-
const
|
|
16
|
+
const AlternateExchangeCreator_1 = __importDefault(require("../../helpers/data-access/amqp/AlternateExchangeCreator"));
|
|
14
17
|
const config_1 = require("../config");
|
|
15
18
|
const connectors_1 = require("../connectors");
|
|
16
19
|
const sentry_transactions_1 = require("../../monitoring/sentry/sentry-transactions");
|
|
20
|
+
const errors_1 = require("@golemio/errors");
|
|
17
21
|
class BaseWorker {
|
|
18
22
|
constructor() {
|
|
19
23
|
this.sendMessage = (key, msg, options = {}) => __awaiter(this, void 0, void 0, function* () {
|
|
20
24
|
try {
|
|
21
25
|
const channel = connectors_1.AMQPConnector.getChannel();
|
|
22
|
-
yield channel.assertExchange(config_1.config.RABBIT_EXCHANGE_NAME, "topic", {
|
|
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
|
+
});
|
|
23
30
|
return channel.publish(config_1.config.RABBIT_EXCHANGE_NAME, key, Buffer.from(msg), options);
|
|
24
31
|
}
|
|
25
32
|
catch (err) {
|
|
@@ -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,uHAA0F;AAC1F,sCAAoC;AACpC,8CAA+C;AAE/C,qFAAiF;AACjF,4CAA8C;AAE9C,MAAa,UAAU;IAAvB;QACY,gBAAW,GAAG,CAAO,GAAW,EAAE,GAAW,EAAE,UAAkB,EAAE,EAAoB,EAAE;YAC7F,IAAI;gBACA,MAAM,OAAO,GAAG,0BAAa,CAAC,UAAU,EAAE,CAAC;gBAC3C,MAAM,OAAO,CAAC,cAAc,CAAC,eAAM,CAAC,oBAA8B,EAAE,OAAO,EAAE;oBACzE,OAAO,EAAE,KAAK;oBACd,iBAAiB,EAAE,kCAAwB,CAAC,kBAAkB,CAAC,eAAM,CAAC,oBAAqB,CAAC;iBAC/F,CAAC,CAAC;gBACH,OAAO,OAAO,CAAC,OAAO,CAAC,eAAM,CAAC,oBAA8B,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;aACjG;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,oBAAW,CAAC,yCAAyC,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;aAC5G;QACL,CAAC,CAAA,CAAC;QAEQ,0BAAqB,GAAG,IAAA,6CAAuB,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAElE,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;AAlCD,gCAkCC"}
|
package/package.json
CHANGED