starta.microservice 0.1.4873 → 0.1.4879
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/adapters/database/DBScripts/DBInitialise.js +3 -12
- package/lib/adapters/database/DBScripts/DBInitialise.js.map +1 -1
- package/lib/adapters/database/index.js +45 -62
- package/lib/adapters/database/index.js.map +1 -1
- package/lib/adapters/logger/index.js +27 -17
- package/lib/adapters/logger/index.js.map +1 -1
- package/lib/adapters/{rabbitmq/index.d.ts → messageBroker/Rabbitmq.d.ts} +4 -6
- package/lib/adapters/messageBroker/Rabbitmq.js +159 -0
- package/lib/adapters/messageBroker/Rabbitmq.js.map +1 -0
- package/lib/adapters/messageBroker/SnsSqs.d.ts +18 -0
- package/lib/adapters/messageBroker/SnsSqs.js +273 -0
- package/lib/adapters/messageBroker/SnsSqs.js.map +1 -0
- package/lib/adapters/messageBroker/index.d.ts +16 -0
- package/lib/adapters/messageBroker/index.js +45 -0
- package/lib/adapters/messageBroker/index.js.map +1 -0
- package/lib/adapters/messageBroker/types.d.ts +11 -0
- package/lib/adapters/messageBroker/types.js +3 -0
- package/lib/adapters/messageBroker/types.js.map +1 -0
- package/lib/adapters/redisService/Publisher.js +2 -13
- package/lib/adapters/redisService/Publisher.js.map +1 -1
- package/lib/adapters/redisService/RedisAdapter.js +59 -100
- package/lib/adapters/redisService/RedisAdapter.js.map +1 -1
- package/lib/adapters/redisService/index.js +159 -271
- package/lib/adapters/redisService/index.js.map +1 -1
- package/lib/agenda/index.js +10 -20
- package/lib/agenda/index.js.map +1 -1
- package/lib/config.d.ts +2 -0
- package/lib/config.js +2 -0
- package/lib/config.js.map +1 -1
- package/lib/entities/Account.js +2 -14
- package/lib/entities/Account.js.map +1 -1
- package/lib/helpers/index.js +7 -1
- package/lib/helpers/index.js.map +1 -1
- package/lib/repositories/Repository.js +178 -207
- package/lib/repositories/Repository.js.map +1 -1
- package/lib/services/ServiceExecutor.d.ts +3 -3
- package/lib/services/ServiceExecutor.js +34 -48
- package/lib/services/ServiceExecutor.js.map +1 -1
- package/lib/services/ServiceExecutorHandler.js +264 -283
- package/lib/services/ServiceExecutorHandler.js.map +1 -1
- package/lib/services/ServiceFactoryBase.d.ts +3 -3
- package/lib/services/ServiceFactoryBase.js +2 -2
- package/lib/services/ServiceFactoryBase.js.map +1 -1
- package/lib/services/ServiceHandlerBase.d.ts +3 -3
- package/lib/services/ServiceHandlerBase.js +54 -72
- package/lib/services/ServiceHandlerBase.js.map +1 -1
- package/lib/services/dataSelectors.js +1 -1
- package/lib/services/dataSelectors.js.map +1 -1
- package/package.json +1 -1
- package/lib/adapters/rabbitmq/index.js +0 -184
- package/lib/adapters/rabbitmq/index.js.map +0 -1
|
@@ -1,22 +1,13 @@
|
|
|
1
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
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
4
|
};
|
|
14
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
6
|
const Version_1 = __importDefault(require("../../../entities/Version"));
|
|
16
|
-
exports.default = (db, mongoDb, lastVersion) =>
|
|
7
|
+
exports.default = async (db, mongoDb, lastVersion) => {
|
|
17
8
|
const collation = { locale: 'en', strength: 2 };
|
|
18
9
|
const collections = db.getCollectionsNames();
|
|
19
10
|
console.log(JSON.stringify(collections));
|
|
20
|
-
|
|
21
|
-
}
|
|
11
|
+
await db.getCollection('versions').insertOne(new Version_1.default({ version: lastVersion, date: new Date() }));
|
|
12
|
+
};
|
|
22
13
|
//# sourceMappingURL=DBInitialise.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DBInitialise.js","sourceRoot":"","sources":["../../../../src/adapters/database/DBScripts/DBInitialise.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DBInitialise.js","sourceRoot":"","sources":["../../../../src/adapters/database/DBScripts/DBInitialise.ts"],"names":[],"mappings":";;;;;AAEA,wEAAgD;AAGhD,kBAAe,KAAK,EAAE,EAAY,EAAE,OAAW,EAAE,WAAmB,EAAE,EAAE;IACtE,MAAM,SAAS,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAChD,MAAM,WAAW,GAAG,EAAE,CAAC,mBAAmB,EAAE,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;IACzC,MAAM,EAAE,CAAC,aAAa,CAAU,UAAU,CAAC,CAAC,SAAS,CAAC,IAAI,iBAAO,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AACjH,CAAC,CAAC"}
|
|
@@ -1,13 +1,4 @@
|
|
|
1
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
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
4
|
};
|
|
@@ -25,64 +16,56 @@ class Database {
|
|
|
25
16
|
getCollection(collectionName) {
|
|
26
17
|
return this.mongoDb.collection(collectionName);
|
|
27
18
|
}
|
|
28
|
-
checkLiveness() {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}
|
|
38
|
-
});
|
|
19
|
+
async checkLiveness() {
|
|
20
|
+
try {
|
|
21
|
+
const collectionCursor = this.mongoDb.listCollections();
|
|
22
|
+
const array = await collectionCursor.toArray();
|
|
23
|
+
return array.length > 0;
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
39
28
|
}
|
|
40
|
-
connect() {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
this.mongoDb = this.mongoDbServer.db(this.dbName);
|
|
44
|
-
});
|
|
29
|
+
async connect() {
|
|
30
|
+
this.mongoDbServer = await mongodb_1.MongoClient.connect(this.connectionString);
|
|
31
|
+
this.mongoDb = this.mongoDbServer.db(this.dbName);
|
|
45
32
|
}
|
|
46
|
-
disconnect() {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
});
|
|
33
|
+
async disconnect() {
|
|
34
|
+
if (this.mongoDbServer) {
|
|
35
|
+
await this.mongoDbServer.close(false);
|
|
36
|
+
}
|
|
52
37
|
}
|
|
53
|
-
initialize() {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
throw ex;
|
|
69
|
-
}
|
|
38
|
+
async initialize() {
|
|
39
|
+
this.logger.generic.info('starting db initialization');
|
|
40
|
+
try {
|
|
41
|
+
const versions = await this.getCollection('versions').find({}).sort({ version: -1 }).limit(1).toArray();
|
|
42
|
+
const currentVersion = versions && versions[0];
|
|
43
|
+
if (!currentVersion) {
|
|
44
|
+
try {
|
|
45
|
+
this.logger.generic.info('initializing new db');
|
|
46
|
+
await (0, DBInitialise_1.default)(this, this.mongoDb, this.getMigrations()[this.getMigrations().length - 1].version);
|
|
47
|
+
this.logger.generic.info('initializing completed');
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
catch (ex) {
|
|
51
|
+
this.logger.internalError(ex, 'failed to initialize DB');
|
|
52
|
+
throw ex;
|
|
70
53
|
}
|
|
71
|
-
this.logger.generic.info('found version: ' + versions[0].version, { version: versions[0].version });
|
|
72
|
-
yield this.getMigrations().filter(m => m.version > versions[0].version)
|
|
73
|
-
.reduce((promise, migrationData) => __awaiter(this, void 0, void 0, function* () {
|
|
74
|
-
yield promise;
|
|
75
|
-
this.logger.generic.info('migration to version: ' + migrationData.version, { version: migrationData.version });
|
|
76
|
-
yield migrationData.migration.up();
|
|
77
|
-
yield this.getCollection('versions').insertOne(new Version_1.default({ version: migrationData.version, date: new Date() }));
|
|
78
|
-
this.logger.generic.info('migrated to version: ' + migrationData.version, { version: migrationData.version });
|
|
79
|
-
}), Promise.resolve());
|
|
80
|
-
}
|
|
81
|
-
catch (ex) {
|
|
82
|
-
this.logger.internalError(ex, 'DB initializing failed');
|
|
83
|
-
throw ex;
|
|
84
54
|
}
|
|
85
|
-
|
|
55
|
+
this.logger.generic.info('found version: ' + versions[0].version, { version: versions[0].version });
|
|
56
|
+
await this.getMigrations().filter(m => m.version > versions[0].version)
|
|
57
|
+
.reduce(async (promise, migrationData) => {
|
|
58
|
+
await promise;
|
|
59
|
+
this.logger.generic.info('migration to version: ' + migrationData.version, { version: migrationData.version });
|
|
60
|
+
await migrationData.migration.up();
|
|
61
|
+
await this.getCollection('versions').insertOne(new Version_1.default({ version: migrationData.version, date: new Date() }));
|
|
62
|
+
this.logger.generic.info('migrated to version: ' + migrationData.version, { version: migrationData.version });
|
|
63
|
+
}, Promise.resolve());
|
|
64
|
+
}
|
|
65
|
+
catch (ex) {
|
|
66
|
+
this.logger.internalError(ex, 'DB initializing failed');
|
|
67
|
+
throw ex;
|
|
68
|
+
}
|
|
86
69
|
}
|
|
87
70
|
}
|
|
88
71
|
exports.default = Database;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/database/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/database/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
13
13
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
14
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
15
|
};
|
|
16
|
-
var _ServerLogger_params;
|
|
16
|
+
var _ServerLogger_params, _ServerLogger_genericLogger;
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
const winston_1 = __importDefault(require("winston"));
|
|
19
19
|
//import RotatingFile from 'winston-daily-rotate-file';
|
|
@@ -30,7 +30,10 @@ const factory = (params) => {
|
|
|
30
30
|
levels: Object.assign({}, winston_1.default.config.npm.levels, { fatal: -1 }),
|
|
31
31
|
defaultMeta: params,
|
|
32
32
|
transports: [
|
|
33
|
-
new winston_1.default.transports.Console(
|
|
33
|
+
new winston_1.default.transports.Console({
|
|
34
|
+
...commonOptions,
|
|
35
|
+
level: 'debug',
|
|
36
|
+
}),
|
|
34
37
|
// new RotatingFile({
|
|
35
38
|
// ...commonOptions,
|
|
36
39
|
// json: true,
|
|
@@ -51,25 +54,33 @@ const divider = '\n-----------------------------------\n';
|
|
|
51
54
|
class ServerLogger {
|
|
52
55
|
constructor(params = null) {
|
|
53
56
|
_ServerLogger_params.set(this, void 0);
|
|
54
|
-
|
|
57
|
+
_ServerLogger_genericLogger.set(this, void 0);
|
|
58
|
+
__classPrivateFieldSet(this, _ServerLogger_params, {
|
|
59
|
+
serviceName: config_1.default.serviceName,
|
|
60
|
+
serviceVersion: config_1.default.version.toString(),
|
|
61
|
+
...(params || {}),
|
|
62
|
+
}, "f");
|
|
63
|
+
__classPrivateFieldSet(this, _ServerLogger_genericLogger, factory(__classPrivateFieldGet(this, _ServerLogger_params, "f")), "f");
|
|
55
64
|
}
|
|
56
65
|
get generic() {
|
|
57
|
-
return
|
|
66
|
+
return __classPrivateFieldGet(this, _ServerLogger_genericLogger, "f");
|
|
58
67
|
}
|
|
59
68
|
withParams(params) {
|
|
60
|
-
return new ServerLogger(
|
|
69
|
+
return new ServerLogger({
|
|
70
|
+
...(__classPrivateFieldGet(this, _ServerLogger_params, "f") || {}),
|
|
71
|
+
...params,
|
|
72
|
+
});
|
|
61
73
|
}
|
|
62
74
|
internalServerError(error, req) {
|
|
63
|
-
var _a, _b;
|
|
64
75
|
if (error.toHash)
|
|
65
76
|
error = error.toHash();
|
|
66
|
-
const username =
|
|
67
|
-
const permissions = JSON.stringify(req
|
|
77
|
+
const username = req?.session?.account?.login || 'anonymous';
|
|
78
|
+
const permissions = JSON.stringify(req?.currentOrgPermissions);
|
|
68
79
|
const requestPayload = dataSelector(req);
|
|
69
|
-
if (requestPayload
|
|
80
|
+
if (requestPayload?.password) {
|
|
70
81
|
requestPayload.password = '*********';
|
|
71
82
|
}
|
|
72
|
-
if (requestPayload
|
|
83
|
+
if (requestPayload?.passwordConfirm) {
|
|
73
84
|
requestPayload.passwordConfirm = '*********';
|
|
74
85
|
}
|
|
75
86
|
const requestString = util_1.default.format('INTERNAL SERVER ERROR\n%s %s\nusername: %s\npermissions: %s\n%j', req.originalRequest.method, req.originalRequest.url, username, permissions, requestPayload);
|
|
@@ -87,19 +98,18 @@ class ServerLogger {
|
|
|
87
98
|
error = error.toHash();
|
|
88
99
|
const eventString = util_1.default.format('INTERNAL EVENT ERROR\n%s %s\n%j', eventData.channel, eventData.message);
|
|
89
100
|
const errorString = util_1.default.format('%s\n%s\n%s', error, error.code || 'no code', error.stack);
|
|
90
|
-
this.generic.error(eventString + ' ' + errorString,
|
|
101
|
+
this.generic.error(eventString + ' ' + errorString, { ...eventData, error });
|
|
91
102
|
}
|
|
92
103
|
debugBadRequest(error, req) {
|
|
93
|
-
var _a, _b;
|
|
94
104
|
if (error.toHash)
|
|
95
105
|
error = error.toHash();
|
|
96
|
-
const username =
|
|
97
|
-
const permissions = JSON.stringify(req
|
|
106
|
+
const username = req?.session?.account?.login || 'anonymous';
|
|
107
|
+
const permissions = JSON.stringify(req?.currentOrgPermissions);
|
|
98
108
|
const requestPayload = dataSelector(req);
|
|
99
|
-
if (requestPayload
|
|
109
|
+
if (requestPayload?.password) {
|
|
100
110
|
requestPayload.password = '*********';
|
|
101
111
|
}
|
|
102
|
-
if (requestPayload
|
|
112
|
+
if (requestPayload?.passwordConfirm) {
|
|
103
113
|
requestPayload.passwordConfirm = '*********';
|
|
104
114
|
}
|
|
105
115
|
const requestString = util_1.default.format('BAD REQUEST\n%s %s\nusername: %s\npermissions: %s\n%j', req.originalRequest.method, req.originalRequest.url, username, permissions, requestPayload);
|
|
@@ -117,6 +127,6 @@ class ServerLogger {
|
|
|
117
127
|
`LAN: http://${ip_1.default.address()}:${port}`);
|
|
118
128
|
}
|
|
119
129
|
}
|
|
120
|
-
_ServerLogger_params = new WeakMap();
|
|
130
|
+
_ServerLogger_params = new WeakMap(), _ServerLogger_genericLogger = new WeakMap();
|
|
121
131
|
exports.default = ServerLogger;
|
|
122
132
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/logger/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,sDAA8B;AAC9B,uDAAuD;AACvD,4CAAoB;AACpB,gDAAwB;AAExB,iFAAyD;AAGzD,0DAAkC;AAElC,MAAM,aAAa,GAAG;IACpB,SAAS,EAAE,IAAI;CAChB,CAAC;AAEF,MAAM,OAAO,GAAG,CAAC,MAAe,EAAmB,EAAE;IACnD,MAAM,MAAM,GAAG,iBAAO,CAAC,YAAY,CAAC;QAClC,MAAM,EAAE,iBAAO,CAAC,MAAM,CAAC,OAAO,CAC5B,iBAAO,CAAC,MAAM,CAAC,SAAS,EAAE,EAC1B,iBAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CACtB;QACD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,iBAAO,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC;QACnE,WAAW,EAAE,MAAM;QACnB,UAAU,EAAE;YACV,IAAI,iBAAO,CAAC,UAAU,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/logger/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,sDAA8B;AAC9B,uDAAuD;AACvD,4CAAoB;AACpB,gDAAwB;AAExB,iFAAyD;AAGzD,0DAAkC;AAElC,MAAM,aAAa,GAAG;IACpB,SAAS,EAAE,IAAI;CAChB,CAAC;AAEF,MAAM,OAAO,GAAG,CAAC,MAAe,EAAmB,EAAE;IACnD,MAAM,MAAM,GAAG,iBAAO,CAAC,YAAY,CAAC;QAClC,MAAM,EAAE,iBAAO,CAAC,MAAM,CAAC,OAAO,CAC5B,iBAAO,CAAC,MAAM,CAAC,SAAS,EAAE,EAC1B,iBAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CACtB;QACD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,iBAAO,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC;QACnE,WAAW,EAAE,MAAM;QACnB,UAAU,EAAE;YACV,IAAI,iBAAO,CAAC,UAAU,CAAC,OAAO,CAAC;gBAC7B,GAAG,aAAa;gBAChB,KAAK,EAAE,OAAO;aACf,CAAC;YACF,qBAAqB;YACrB,sBAAsB;YACtB,gBAAgB;YAChB,oBAAoB;YACpB,kCAAkC;YAClC,wCAAwC;YACxC,+BAA+B;YAC/B,yBAAyB;YACzB,oBAAoB;YACpB,MAAM;SACP;KACF,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAElD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,uBAAa,CAAC,gBAAgB,CACjD,uBAAa,CAAC,YAAY,EAC1B,uBAAa,CAAC,WAAW,EACzB,uBAAa,CAAC,UAAU,CACzB,CAAC;AAEF,MAAM,OAAO,GAAG,yCAAyC,CAAC;AAE1D,MAAM,YAAY;IAIhB,YAAY,SAAiB,IAAI;QAHjC,uCAAiB;QACjB,8CAA+B;QAG7B,uBAAA,IAAI,wBAAW;YACb,WAAW,EAAE,gBAAM,CAAC,WAAW;YAC/B,cAAc,EAAE,gBAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;YACzC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;SAClB,MAAA,CAAC;QAEF,uBAAA,IAAI,+BAAkB,OAAO,CAAC,uBAAA,IAAI,4BAAQ,CAAC,MAAA,CAAC;IAC9C,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,uBAAA,IAAI,mCAAe,CAAC;IAC7B,CAAC;IAED,UAAU,CAAC,MAAc;QACvB,OAAO,IAAI,YAAY,CAAC;YACtB,GAAG,CAAC,uBAAA,IAAI,4BAAQ,IAAI,EAAE,CAAC;YACvB,GAAG,MAAM;SACV,CAAC,CAAA;IACJ,CAAC;IAED,mBAAmB,CAAC,KAAK,EAAE,GAAuB;QAChD,IAAI,KAAK,CAAC,MAAM;YAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,WAAW,CAAC;QAC7D,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;QAE/D,MAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,cAAc,EAAE,QAAQ,EAAE;YAC5B,cAAc,CAAC,QAAQ,GAAG,WAAW,CAAC;SACvC;QACD,IAAI,cAAc,EAAE,eAAe,EAAE;YACnC,cAAc,CAAC,eAAe,GAAG,WAAW,CAAC;SAC9C;QACD,MAAM,aAAa,GAAG,cAAI,CAAC,MAAM,CAAC,iEAAiE,EAAE,GAAG,CAAC,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;QACjM,MAAM,WAAW,GAAG,cAAI,CAAC,MAAM,CAAC,yBAAyB,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAEpF,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,GAAG,GAAG,GAAG,WAAW,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;IAC7F,CAAC;IAGD,aAAa,CAAC,KAAK,EAAE,OAAe;QAClC,IAAI,KAAK,CAAC,MAAM;YAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACzC,MAAM,WAAW,GAAG,cAAI,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAE3F,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,GAAG,WAAW,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,UAAU,CAAC,KAAK,EAAE,SAAS;QACzB,IAAI,KAAK,CAAC,MAAM;YAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACzC,MAAM,WAAW,GAAG,cAAI,CAAC,MAAM,CAAC,iCAAiC,EAAE,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;QACzG,MAAM,WAAW,GAAG,cAAI,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAE3F,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,GAAG,GAAG,GAAG,WAAW,EAAE,EAAE,GAAG,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,eAAe,CAAC,KAAK,EAAE,GAAuB;QAC5C,IAAI,KAAK,CAAC,MAAM;YAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,WAAW,CAAC;QAC7D,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;QAC/D,MAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,cAAc,EAAE,QAAQ,EAAE;YAC5B,cAAc,CAAC,QAAQ,GAAG,WAAW,CAAC;SACvC;QACD,IAAI,cAAc,EAAE,eAAe,EAAE;YACnC,cAAc,CAAC,eAAe,GAAG,WAAW,CAAC;SAC9C;QACD,MAAM,aAAa,GAAG,cAAI,CAAC,MAAM,CAAC,uDAAuD,EAAE,GAAG,CAAC,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;QACvL,MAAM,WAAW,GAAG,cAAI,CAAC,MAAM,CAAC,kCAAkC,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,IAAI,WAAW,EAAE,KAAK,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC;QAEtI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,GAAG,GAAG,GAAG,WAAW,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,UAAU,CAAC,IAAI,EAAE,aAAa,GAAG,KAAK;QACpC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAEtC,IAAI,aAAa,EAAE;YACjB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;SAC3C;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,CACf,gBAAgB;YAChB,OAAO;YACP,+BAA+B,IAAI,EAAE,GAAG,IAAI;YAC5C,eAAe,YAAE,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CACtC,CAAC;IACJ,CAAC;CACF;;AAED,kBAAe,YAAY,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import amqp from 'amqplib';
|
|
2
2
|
import ServerLogger from '../../adapters/logger';
|
|
3
|
-
|
|
3
|
+
import { IMessageBroker } from './types';
|
|
4
|
+
declare class Rabbitmq implements IMessageBroker {
|
|
4
5
|
#private;
|
|
5
6
|
constructor(logger: ServerLogger);
|
|
6
7
|
connect(tryRecconect?: boolean, timeout?: number): Promise<void>;
|
|
@@ -8,12 +9,9 @@ declare class Rabbitmq {
|
|
|
8
9
|
emitEvent(exchange: string, eventData: Object): Promise<void>;
|
|
9
10
|
consume(exchange: string, queue: string, onMessage: (msg: amqp.Message, { logger }?: {
|
|
10
11
|
logger: ServerLogger;
|
|
11
|
-
}) => Promise<void
|
|
12
|
-
pattern: string;
|
|
13
|
-
noAck: boolean;
|
|
14
|
-
}): Promise<void>;
|
|
12
|
+
}) => Promise<void>): Promise<void>;
|
|
15
13
|
checkLiveness(): Promise<boolean>;
|
|
16
|
-
|
|
14
|
+
createTopics(exchanges: string[]): Promise<void>;
|
|
17
15
|
createQueues(queues: string[], durable?: boolean): Promise<void>;
|
|
18
16
|
}
|
|
19
17
|
export default Rabbitmq;
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
+
};
|
|
8
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
var _Rabbitmq_logger, _Rabbitmq_connection, _Rabbitmq_channel, _Rabbitmq_createdExchanges, _Rabbitmq_createdQueues;
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
const amqp_connection_manager_1 = __importDefault(require("amqp-connection-manager"));
|
|
19
|
+
const config_1 = __importDefault(require("../../config"));
|
|
20
|
+
const executionContext_1 = __importDefault(require("../../contexts/executionContext"));
|
|
21
|
+
const loggerContext_1 = __importDefault(require("../../contexts/loggerContext"));
|
|
22
|
+
class Rabbitmq {
|
|
23
|
+
constructor(logger) {
|
|
24
|
+
_Rabbitmq_logger.set(this, void 0);
|
|
25
|
+
_Rabbitmq_connection.set(this, void 0);
|
|
26
|
+
_Rabbitmq_channel.set(this, void 0);
|
|
27
|
+
_Rabbitmq_createdExchanges.set(this, new Set());
|
|
28
|
+
_Rabbitmq_createdQueues.set(this, new Set());
|
|
29
|
+
__classPrivateFieldSet(this, _Rabbitmq_logger, logger, "f");
|
|
30
|
+
}
|
|
31
|
+
async connect(tryRecconect = false, timeout = 1000) {
|
|
32
|
+
const self = this;
|
|
33
|
+
const reconnect = async () => {
|
|
34
|
+
const promise = self.connect.call(self, true, Math.min(timeout * 2, 20000));
|
|
35
|
+
await promise;
|
|
36
|
+
};
|
|
37
|
+
__classPrivateFieldGet(this, _Rabbitmq_logger, "f").generic.info("Connecting to rabbit");
|
|
38
|
+
try {
|
|
39
|
+
__classPrivateFieldSet(this, _Rabbitmq_connection, await amqp_connection_manager_1.default.connect(config_1.default.rabbitmq.uri), "f");
|
|
40
|
+
}
|
|
41
|
+
catch (err) {
|
|
42
|
+
__classPrivateFieldGet(this, _Rabbitmq_logger, "f").generic.error("rabbit error", err);
|
|
43
|
+
if (tryRecconect) {
|
|
44
|
+
setTimeout(reconnect, timeout);
|
|
45
|
+
}
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
__classPrivateFieldGet(this, _Rabbitmq_connection, "f").on("error", function (err) {
|
|
49
|
+
__classPrivateFieldGet(this, _Rabbitmq_logger, "f").generic.error("rabbit error", err);
|
|
50
|
+
});
|
|
51
|
+
__classPrivateFieldGet(this, _Rabbitmq_connection, "f").on("close", function (err) {
|
|
52
|
+
__classPrivateFieldGet(self, _Rabbitmq_logger, "f").generic.error("rabbit error", err);
|
|
53
|
+
});
|
|
54
|
+
__classPrivateFieldSet(this, _Rabbitmq_channel, await __classPrivateFieldGet(this, _Rabbitmq_connection, "f").createChannel({
|
|
55
|
+
setup: function (channel) {
|
|
56
|
+
return channel.assertQueue('testqueue', { durable: true });
|
|
57
|
+
},
|
|
58
|
+
}), "f");
|
|
59
|
+
__classPrivateFieldGet(this, _Rabbitmq_logger, "f").generic.info("Connected to rabbit");
|
|
60
|
+
}
|
|
61
|
+
async disconnect() {
|
|
62
|
+
__classPrivateFieldGet(this, _Rabbitmq_logger, "f").generic.info("Disconnecting from rabbit");
|
|
63
|
+
await __classPrivateFieldGet(this, _Rabbitmq_channel, "f").close();
|
|
64
|
+
await __classPrivateFieldGet(this, _Rabbitmq_connection, "f").close();
|
|
65
|
+
__classPrivateFieldGet(this, _Rabbitmq_logger, "f").generic.info("Disconnected from rabbit");
|
|
66
|
+
}
|
|
67
|
+
async emitEvent(exchange, eventData) {
|
|
68
|
+
const logger = (loggerContext_1.default.getLogger() ?? __classPrivateFieldGet(this, _Rabbitmq_logger, "f")).withParams({
|
|
69
|
+
serviceBroker: { exchange },
|
|
70
|
+
});
|
|
71
|
+
await this.createTopics([exchange]);
|
|
72
|
+
const emit = () => __classPrivateFieldGet(this, _Rabbitmq_channel, "f").publish(exchange, '*', Buffer.from(JSON.stringify(eventData)), {
|
|
73
|
+
headers: {
|
|
74
|
+
context: executionContext_1.default.getFullData()
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
try {
|
|
78
|
+
emit();
|
|
79
|
+
logger.generic.info("Message published to rabbit");
|
|
80
|
+
}
|
|
81
|
+
catch (e) {
|
|
82
|
+
logger.internalError(e, "Unable to publish to rabbit");
|
|
83
|
+
try {
|
|
84
|
+
await this.disconnect();
|
|
85
|
+
}
|
|
86
|
+
finally {
|
|
87
|
+
await this.connect();
|
|
88
|
+
emit();
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
async consume(exchange, queue, onMessage) {
|
|
93
|
+
if (!exchange) {
|
|
94
|
+
throw 'exchange is null';
|
|
95
|
+
}
|
|
96
|
+
await this.createTopics([exchange]);
|
|
97
|
+
await this.createQueues([queue]);
|
|
98
|
+
await __classPrivateFieldGet(this, _Rabbitmq_channel, "f").bindQueue(queue, exchange, '*');
|
|
99
|
+
await __classPrivateFieldGet(this, _Rabbitmq_channel, "f").consume(queue, async (msg) => {
|
|
100
|
+
const startTime = process.hrtime();
|
|
101
|
+
const contextData = msg.properties.headers.context;
|
|
102
|
+
if (contextData) {
|
|
103
|
+
executionContext_1.default.setFullData(contextData);
|
|
104
|
+
}
|
|
105
|
+
const logger = __classPrivateFieldGet(this, _Rabbitmq_logger, "f").withParams({
|
|
106
|
+
correlationId: executionContext_1.default.getCorrelationId(),
|
|
107
|
+
login: executionContext_1.default.getAuthorizedUserLogin(),
|
|
108
|
+
serviceBroker: { queue, exchange },
|
|
109
|
+
});
|
|
110
|
+
loggerContext_1.default.setLogger(logger);
|
|
111
|
+
const contentString = msg.content.toString();
|
|
112
|
+
try {
|
|
113
|
+
logger.generic.info("Consuming started");
|
|
114
|
+
const contentObject = JSON.parse(contentString);
|
|
115
|
+
await onMessage(contentObject, { logger });
|
|
116
|
+
const diff = process.hrtime(startTime);
|
|
117
|
+
const timeInMilliseconds = diff[0] * 1000 + diff[1] / 1000000;
|
|
118
|
+
logger.generic.info("Consuming finished", { taskDuration: timeInMilliseconds });
|
|
119
|
+
}
|
|
120
|
+
catch (e) {
|
|
121
|
+
logger.generic.error(`
|
|
122
|
+
Consuming error
|
|
123
|
+
error: |${JSON.stringify(e.toHash ? e.toHash() : e.stack)}|
|
|
124
|
+
object: |${msg.content.toString()}|
|
|
125
|
+
`, e);
|
|
126
|
+
const errorQueueName = 'ERROR:' + queue;
|
|
127
|
+
await this.createQueues([errorQueueName]);
|
|
128
|
+
__classPrivateFieldGet(this, _Rabbitmq_channel, "f").publish('', errorQueueName, Buffer.from(JSON.stringify({
|
|
129
|
+
message: msg.content.toString(),
|
|
130
|
+
error: e
|
|
131
|
+
})), {
|
|
132
|
+
headers: {
|
|
133
|
+
context: executionContext_1.default.getFullData()
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
}, { noAck: true });
|
|
138
|
+
}
|
|
139
|
+
async checkLiveness() {
|
|
140
|
+
return __classPrivateFieldGet(this, _Rabbitmq_connection, "f").isConnected();
|
|
141
|
+
}
|
|
142
|
+
async createTopics(exchanges) {
|
|
143
|
+
const exchangesToCreate = exchanges.filter(exchange => !__classPrivateFieldGet(this, _Rabbitmq_createdExchanges, "f").has(exchange));
|
|
144
|
+
await Promise.all(exchangesToCreate.map(async (exchange) => {
|
|
145
|
+
await __classPrivateFieldGet(this, _Rabbitmq_channel, "f").assertExchange(exchange, 'direct', { durable: true });
|
|
146
|
+
__classPrivateFieldGet(this, _Rabbitmq_createdExchanges, "f").add(exchange);
|
|
147
|
+
}));
|
|
148
|
+
}
|
|
149
|
+
async createQueues(queues, durable = true) {
|
|
150
|
+
const queuesToCreate = queues.filter(queue => !__classPrivateFieldGet(this, _Rabbitmq_createdQueues, "f").has(queue));
|
|
151
|
+
await Promise.all(queuesToCreate.map(async (queue) => {
|
|
152
|
+
await __classPrivateFieldGet(this, _Rabbitmq_channel, "f").assertQueue(queue, { durable });
|
|
153
|
+
__classPrivateFieldGet(this, _Rabbitmq_createdQueues, "f").add(queue);
|
|
154
|
+
}));
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
_Rabbitmq_logger = new WeakMap(), _Rabbitmq_connection = new WeakMap(), _Rabbitmq_channel = new WeakMap(), _Rabbitmq_createdExchanges = new WeakMap(), _Rabbitmq_createdQueues = new WeakMap();
|
|
158
|
+
exports.default = Rabbitmq;
|
|
159
|
+
//# sourceMappingURL=Rabbitmq.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Rabbitmq.js","sourceRoot":"","sources":["../../../src/adapters/messageBroker/Rabbitmq.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,sFAAgE;AAKhE,0DAAkC;AAClC,uFAA+D;AAC/D,iFAAyD;AAGzD,MAAM,QAAQ;IAYZ,YAAY,MAAoB;QAXhC,mCAAsB;QAEtB,uCAAoC;QAEpC,oCAAuB;QAEvB,qCAAoB,IAAI,GAAG,EAAU,EAAC;QAEtC,kCAAiB,IAAI,GAAG,EAAU,EAAC;QAIjC,uBAAA,IAAI,oBAAW,MAAM,MAAA,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,eAAwB,KAAK,EAAE,UAAkB,IAAI;QACjE,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;YAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;YAC5E,MAAM,OAAO,CAAC;QAChB,CAAC,CAAA;QACD,uBAAA,IAAI,wBAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAClD,IAAI;YACF,uBAAA,IAAI,wBAAe,MAAM,iCAAyB,CAAC,OAAO,CAAC,gBAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAA,CAAC;SACjF;QAAC,OAAO,GAAG,EAAE;YACZ,uBAAA,IAAI,wBAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;YAChD,IAAI,YAAY,EAAE;gBAChB,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;aAChC;YACD,OAAO;SACR;QACD,uBAAA,IAAI,4BAAY,CAAC,EAAE,CAAC,OAAO,EAAE,UAAS,GAAG;YACvC,uBAAA,IAAI,wBAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,uBAAA,IAAI,4BAAY,CAAC,EAAE,CAAC,OAAO,EAAE,UAAS,GAAG;YACvC,uBAAA,IAAI,wBAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,uBAAA,IAAI,qBAAY,MAAM,uBAAA,IAAI,4BAAY,CAAC,aAAa,CAAC;YACnD,KAAK,EAAE,UAAU,OAAO;gBACtB,OAAO,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7D,CAAC;SACF,CAAC,MAAA,CAAC;QACH,uBAAA,IAAI,wBAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACnD,CAAC;IAGD,KAAK,CAAC,UAAU;QACd,uBAAA,IAAI,wBAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACvD,MAAM,uBAAA,IAAI,yBAAS,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,uBAAA,IAAI,4BAAY,CAAC,KAAK,EAAE,CAAC;QAC/B,uBAAA,IAAI,wBAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAAgB,EAAE,SAAiB;QACjD,MAAM,MAAM,GAAG,CAAC,uBAAa,CAAC,SAAS,EAAE,IAAI,uBAAA,IAAI,wBAAQ,CAAC,CAAC,UAAU,CAAC;YACpE,aAAa,EAAE,EAAE,QAAQ,EAAE;SAC5B,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,uBAAA,IAAI,yBAAS,CAAC,OAAO,CACtC,QAAQ,EACR,GAAG,EACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EACtC;YACE,OAAO,EAAE;gBACP,OAAO,EAAE,0BAAgB,CAAC,WAAW,EAAE;aACxC;SACF,CACF,CAAC;QAEF,IAAI;YACF,IAAI,EAAE,CAAC;YACP,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;SACpD;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,6BAA6B,CAAC,CAAC;YACvD,IAAI;gBACF,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;aACzB;oBAAS;gBACR,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;gBACrB,IAAI,EAAE,CAAC;aACR;SACF;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CACX,QAAgB,EAChB,KAAa,EACb,SAAsF;QAEtF,IAAI,CAAC,QAAQ,EAAE;YACb,MAAM,kBAAkB,CAAA;SACzB;QAED,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpC,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,MAAM,uBAAA,IAAI,yBAAS,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;QACpD,MAAM,uBAAA,IAAI,yBAAS,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAC,GAAG,EAAC,EAAE;YAC7C,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YACnC,MAAM,WAAW,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC;YACnD,IAAI,WAAW,EAAE;gBACf,0BAAgB,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;aAC3C;YAED,MAAM,MAAM,GAAG,uBAAA,IAAI,wBAAQ,CAAC,UAAU,CAAC;gBACrC,aAAa,EAAE,0BAAgB,CAAC,gBAAgB,EAAE;gBAClD,KAAK,EAAE,0BAAgB,CAAC,sBAAsB,EAAE;gBAChD,aAAa,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;aACnC,CAAC,CAAC;YACH,uBAAa,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAEhC,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAE7C,IAAI;gBACF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAEzC,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBAEhD,MAAM,SAAS,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;gBAE3C,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACvC,MAAM,kBAAkB,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;gBAC9D,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,YAAY,EAAE,kBAAkB,EAAE,CAAC,CAAC;aACjF;YAAC,OAAO,CAAC,EAAE;gBAEV,MAAM,CAAC,OAAO,CAAC,KAAK,CAClB;;UAEA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;WAC9C,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE;WACtB,EACD,CAAC,CACF,CAAC;gBAEF,MAAM,cAAc,GAAG,QAAQ,GAAC,KAAK,CAAC;gBACtC,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;gBAC1C,uBAAA,IAAI,yBAAS,CAAC,OAAO,CACnB,EAAE,EACF,cAAc,EACd,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;oBACzB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE;oBAC/B,KAAK,EAAE,CAAC;iBACT,CAAC,CAAC,EACH;oBACE,OAAO,EAAE;wBACP,OAAO,EAAE,0BAAgB,CAAC,WAAW,EAAE;qBACxC;iBACF,CACF,CAAC;aAGH;QACH,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IACrB,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,OAAO,uBAAA,IAAI,4BAAY,CAAC,WAAW,EAAE,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,SAAmB;QACpC,MAAM,iBAAiB,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,uBAAA,IAAI,kCAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE9F,MAAM,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAC,QAAQ,EAAC,EAAE;YACvD,MAAM,uBAAA,IAAI,yBAAS,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1E,uBAAA,IAAI,kCAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAgB,EAAE,UAAmB,IAAI;QAC1D,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,uBAAA,IAAI,+BAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QAE/E,MAAM,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;YACjD,MAAM,uBAAA,IAAI,yBAAS,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YACpD,uBAAA,IAAI,+BAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC,CAAC;IACN,CAAC;CACF;;AAED,kBAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import ServerLogger from '../../adapters/logger';
|
|
2
|
+
import { IMessageBroker } from './types';
|
|
3
|
+
declare class SnsSqs implements IMessageBroker {
|
|
4
|
+
#private;
|
|
5
|
+
constructor(logger: ServerLogger);
|
|
6
|
+
createTopics(topics: string[]): Promise<void>;
|
|
7
|
+
connect(): Promise<void>;
|
|
8
|
+
checkLiveness(): Promise<boolean>;
|
|
9
|
+
disconnect(): Promise<void>;
|
|
10
|
+
emitEvent(topicName: string, eventData: Object): Promise<void>;
|
|
11
|
+
consume(topicName: string, queueName: string, onMessage: (msg: any, { logger }?: {
|
|
12
|
+
logger: ServerLogger;
|
|
13
|
+
}) => Promise<void>): Promise<void>;
|
|
14
|
+
private createTopic;
|
|
15
|
+
private createQueueWithDLQ;
|
|
16
|
+
private subscribeQueueToTopic;
|
|
17
|
+
}
|
|
18
|
+
export default SnsSqs;
|