@webda/core 1.2.1 → 1.6.0-beta.0
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/application.d.ts +3 -0
- package/lib/application.js +26 -22
- package/lib/application.js.map +1 -1
- package/lib/application.spec.js +185 -2
- package/lib/application.spec.js.map +1 -1
- package/lib/core.d.ts +62 -6
- package/lib/core.js +127 -86
- package/lib/core.js.map +1 -1
- package/lib/core.spec.js +151 -6
- package/lib/core.spec.js.map +1 -1
- package/lib/index.d.ts +4 -0
- package/lib/index.js +4 -0
- package/lib/index.js.map +1 -1
- package/lib/models/aclmodel.d.ts +42 -3
- package/lib/models/aclmodel.js +58 -3
- package/lib/models/aclmodel.js.map +1 -1
- package/lib/models/aclmodel.spec.js +46 -0
- package/lib/models/aclmodel.spec.js.map +1 -1
- package/lib/models/coremodel.d.ts +58 -10
- package/lib/models/coremodel.js +39 -32
- package/lib/models/coremodel.js.map +1 -1
- package/lib/models/coremodel.spec.js +68 -6
- package/lib/models/coremodel.spec.js.map +1 -1
- package/lib/models/ident.d.ts +8 -2
- package/lib/models/ident.js.map +1 -1
- package/lib/models/ident.spec.js +16 -0
- package/lib/models/ident.spec.js.map +1 -1
- package/lib/models/ownermodel.d.ts +1 -1
- package/lib/models/ownermodel.js.map +1 -1
- package/lib/models/ownermodel.spec.js +22 -19
- package/lib/models/ownermodel.spec.js.map +1 -1
- package/lib/models/user.d.ts +2 -0
- package/lib/models/user.js +4 -2
- package/lib/models/user.js.map +1 -1
- package/lib/models/user.spec.js +9 -2
- package/lib/models/user.spec.js.map +1 -1
- package/lib/queues/filequeue.d.ts +63 -0
- package/lib/queues/filequeue.js +161 -0
- package/lib/queues/filequeue.js.map +1 -0
- package/lib/queues/filequeue.spec.d.ts +1 -0
- package/lib/queues/filequeue.spec.js +90 -0
- package/lib/queues/filequeue.spec.js.map +1 -0
- package/lib/queues/memoryqueue.d.ts +18 -4
- package/lib/queues/memoryqueue.js +20 -13
- package/lib/queues/memoryqueue.js.map +1 -1
- package/lib/queues/memoryqueue.spec.js +142 -39
- package/lib/queues/memoryqueue.spec.js.map +1 -1
- package/lib/queues/pubsubservice.d.ts +27 -0
- package/lib/queues/pubsubservice.js +21 -0
- package/lib/queues/pubsubservice.js.map +1 -0
- package/lib/queues/queue.spec.js +16 -7
- package/lib/queues/queue.spec.js.map +1 -1
- package/lib/queues/queueservice.d.ts +108 -13
- package/lib/queues/queueservice.js +100 -36
- package/lib/queues/queueservice.js.map +1 -1
- package/lib/router.js +4 -6
- package/lib/router.js.map +1 -1
- package/lib/router.spec.js +27 -2
- package/lib/router.spec.js.map +1 -1
- package/lib/services/asyncevents.d.ts +110 -5
- package/lib/services/asyncevents.js +134 -39
- package/lib/services/asyncevents.js.map +1 -1
- package/lib/services/asyncevents.spec.js +58 -4
- package/lib/services/asyncevents.spec.js.map +1 -1
- package/lib/services/authentication.d.ts +57 -5
- package/lib/services/authentication.js +93 -84
- package/lib/services/authentication.js.map +1 -1
- package/lib/services/authentication.spec.js +118 -82
- package/lib/services/authentication.spec.js.map +1 -1
- package/lib/services/binary.d.ts +175 -48
- package/lib/services/binary.js +205 -170
- package/lib/services/binary.js.map +1 -1
- package/lib/services/binary.spec.d.ts +22 -3
- package/lib/services/binary.spec.js +327 -22
- package/lib/services/binary.spec.js.map +1 -1
- package/lib/services/configuration.d.ts +94 -13
- package/lib/services/configuration.js +98 -28
- package/lib/services/configuration.js.map +1 -1
- package/lib/services/configuration.spec.js +40 -1
- package/lib/services/configuration.spec.js.map +1 -1
- package/lib/services/cron.d.ts +4 -4
- package/lib/services/cron.js +37 -53
- package/lib/services/cron.js.map +1 -1
- package/lib/services/cron.spec.d.ts +1 -0
- package/lib/services/cron.spec.js +76 -0
- package/lib/services/cron.spec.js.map +1 -0
- package/lib/services/debugmailer.spec.js +18 -4
- package/lib/services/debugmailer.spec.js.map +1 -1
- package/lib/services/echo.js +22 -13
- package/lib/services/echo.js.map +1 -1
- package/lib/services/echo.spec.d.ts +1 -0
- package/lib/services/echo.spec.js +52 -0
- package/lib/services/echo.spec.js.map +1 -0
- package/lib/services/filebinary.d.ts +16 -9
- package/lib/services/filebinary.js +58 -73
- package/lib/services/filebinary.js.map +1 -1
- package/lib/services/filebinary.spec.d.ts +8 -1
- package/lib/services/filebinary.spec.js +133 -7
- package/lib/services/filebinary.spec.js.map +1 -1
- package/lib/services/fileconfiguration.d.ts +9 -3
- package/lib/services/fileconfiguration.js +13 -6
- package/lib/services/fileconfiguration.js.map +1 -1
- package/lib/services/fileconfiguration.spec.js +100 -5
- package/lib/services/fileconfiguration.spec.js.map +1 -1
- package/lib/services/kubernetesconfiguration.d.ts +8 -2
- package/lib/services/kubernetesconfiguration.js +16 -5
- package/lib/services/kubernetesconfiguration.js.map +1 -1
- package/lib/services/kubernetesconfiguration.spec.js +53 -16
- package/lib/services/kubernetesconfiguration.spec.js.map +1 -1
- package/lib/services/mailer.d.ts +11 -2
- package/lib/services/mailer.js +28 -34
- package/lib/services/mailer.js.map +1 -1
- package/lib/services/mailer.spec.js +69 -23
- package/lib/services/mailer.spec.js.map +1 -1
- package/lib/services/oauth.d.ts +5 -2
- package/lib/services/oauth.js +22 -8
- package/lib/services/oauth.js.map +1 -1
- package/lib/services/oauth.spec.js +33 -3
- package/lib/services/oauth.spec.js.map +1 -1
- package/lib/services/resource.spec.js +39 -2
- package/lib/services/resource.spec.js.map +1 -1
- package/lib/services/service.d.ts +16 -0
- package/lib/services/service.js +47 -6
- package/lib/services/service.js.map +1 -1
- package/lib/services/service.spec.d.ts +1 -0
- package/lib/services/service.spec.js +119 -0
- package/lib/services/service.spec.js.map +1 -0
- package/lib/stores/aggregator.d.ts +43 -0
- package/lib/stores/aggregator.js +106 -0
- package/lib/stores/aggregator.js.map +1 -0
- package/lib/stores/file.d.ts +49 -11
- package/lib/stores/file.js +84 -81
- package/lib/stores/file.js.map +1 -1
- package/lib/stores/file.spec.d.ts +6 -1
- package/lib/stores/file.spec.js +134 -9
- package/lib/stores/file.spec.js.map +1 -1
- package/lib/stores/mapper.d.ts +151 -0
- package/lib/stores/mapper.js +294 -0
- package/lib/stores/mapper.js.map +1 -0
- package/lib/stores/mapper.spec.d.ts +1 -0
- package/lib/stores/mapper.spec.js +55 -0
- package/lib/stores/mapper.spec.js.map +1 -0
- package/lib/stores/memory.d.ts +52 -7
- package/lib/stores/memory.js +71 -33
- package/lib/stores/memory.js.map +1 -1
- package/lib/stores/memory.spec.d.ts +6 -1
- package/lib/stores/memory.spec.js +65 -4
- package/lib/stores/memory.spec.js.map +1 -1
- package/lib/stores/store.d.ts +263 -126
- package/lib/stores/store.js +285 -493
- package/lib/stores/store.js.map +1 -1
- package/lib/stores/store.spec.d.ts +20 -0
- package/lib/stores/store.spec.js +242 -18
- package/lib/stores/store.spec.js.map +1 -1
- package/lib/test.d.ts +1 -7
- package/lib/test.js +3 -12
- package/lib/test.js.map +1 -1
- package/lib/utils/abstractdeployer.spec.d.ts +1 -0
- package/lib/utils/abstractdeployer.spec.js +23 -0
- package/lib/utils/abstractdeployer.spec.js.map +1 -0
- package/lib/utils/context.d.ts +25 -2
- package/lib/utils/context.js +33 -12
- package/lib/utils/context.js.map +1 -1
- package/lib/utils/context.spec.js +81 -11
- package/lib/utils/context.spec.js.map +1 -1
- package/lib/utils/cookie.d.ts +12 -0
- package/lib/utils/cookie.js +13 -1
- package/lib/utils/cookie.js.map +1 -1
- package/lib/utils/cookie.spec.js +42 -11
- package/lib/utils/cookie.spec.js.map +1 -1
- package/lib/utils/logger.d.ts +23 -4
- package/lib/utils/logger.js +29 -6
- package/lib/utils/logger.js.map +1 -1
- package/lib/utils/logger.spec.js +8 -0
- package/lib/utils/logger.spec.js.map +1 -1
- package/lib/utils/serializers.d.ts +5 -5
- package/lib/utils/serializers.js +10 -10
- package/lib/utils/serializers.js.map +1 -1
- package/lib/utils/serializers.spec.js +41 -16
- package/lib/utils/serializers.spec.js.map +1 -1
- package/lib/utils/waiter.d.ts +59 -1
- package/lib/utils/waiter.js +86 -3
- package/lib/utils/waiter.js.map +1 -1
- package/lib/utils/waiter.spec.js +48 -4
- package/lib/utils/waiter.spec.js.map +1 -1
- package/package.json +16 -11
- package/test/badapp/package.json +4 -0
- package/test/badapp/webda.config.json +1 -0
- package/test/cachedapp/webda.config.json +7 -0
- package/test/config-file-no-reload.json +70 -0
- package/test/config-file-reload.json +7 -1
- package/test/config-kube-reload.json +7 -1
- package/test/config.json +45 -21
- package/test/config.old-default.json +0 -16
- package/test/config.old.json +0 -16
- package/test/deployments/invalid.json +1 -0
- package/test/moddas/fakeservice.js +5 -0
- package/test/models/ident.js +10 -14
- package/test/models/task.js +2 -4
|
@@ -9,68 +9,132 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.Queue = void 0;
|
|
12
|
+
exports.Queue = exports.QueueParameters = void 0;
|
|
13
13
|
const service_1 = require("../services/service");
|
|
14
|
+
const waiter_1 = require("../utils/waiter");
|
|
15
|
+
const pubsubservice_1 = require("./pubsubservice");
|
|
16
|
+
/**
|
|
17
|
+
* @inheritdoc
|
|
18
|
+
*/
|
|
19
|
+
class QueueParameters extends service_1.ServiceParameters {
|
|
20
|
+
/**
|
|
21
|
+
* @inheritdoc
|
|
22
|
+
*/
|
|
23
|
+
constructor(params) {
|
|
24
|
+
var _a, _b;
|
|
25
|
+
super(params);
|
|
26
|
+
(_a = this.workerParallelism) !== null && _a !== void 0 ? _a : (this.workerParallelism = true);
|
|
27
|
+
(_b = this.maxConsumers) !== null && _b !== void 0 ? _b : (this.maxConsumers = 10);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.QueueParameters = QueueParameters;
|
|
14
31
|
/**
|
|
15
32
|
* AbstractQueue implements the worker system
|
|
16
33
|
*
|
|
17
|
-
* A
|
|
34
|
+
* A Consumer allows you to define how to process message from
|
|
18
35
|
* the queue, implementing the retries policy
|
|
19
36
|
*
|
|
20
37
|
* @category CoreServices
|
|
21
38
|
*/
|
|
22
|
-
class Queue extends
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
});
|
|
39
|
+
class Queue extends pubsubservice_1.PubSubService {
|
|
40
|
+
/**
|
|
41
|
+
* Create the delayer
|
|
42
|
+
*/
|
|
43
|
+
resolve() {
|
|
44
|
+
super.resolve();
|
|
45
|
+
this.delayer = waiter_1.WaitDelayerFactories.get(this.parameters.workerDelayer);
|
|
30
46
|
}
|
|
31
|
-
|
|
47
|
+
/**
|
|
48
|
+
* Receive and process message from the queue
|
|
49
|
+
*
|
|
50
|
+
* @returns
|
|
51
|
+
*/
|
|
52
|
+
consumerReceiveMessage() {
|
|
32
53
|
return __awaiter(this, void 0, void 0, function* () {
|
|
33
|
-
if (this._interrupt) {
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
54
|
try {
|
|
37
|
-
let
|
|
55
|
+
let speed = Date.now();
|
|
56
|
+
let items = yield this.receiveMessage(this.eventPrototype);
|
|
57
|
+
speed = Date.now() - speed;
|
|
58
|
+
this.failedIterations = 0;
|
|
38
59
|
if (items.length === 0) {
|
|
39
|
-
return
|
|
60
|
+
return { speed, items: items.length };
|
|
40
61
|
}
|
|
41
|
-
|
|
42
|
-
let event = JSON.parse(msg.Body);
|
|
62
|
+
const msgWorker = (msg) => __awaiter(this, void 0, void 0, function* () {
|
|
43
63
|
try {
|
|
44
|
-
yield this.callback(
|
|
64
|
+
yield this.callback(msg.Message);
|
|
45
65
|
yield this.deleteMessage(msg.ReceiptHandle);
|
|
46
66
|
}
|
|
47
67
|
catch (err) {
|
|
48
|
-
this.
|
|
68
|
+
this.getWebda().log("ERROR", `Message ${msg.ReceiptHandle}`, err);
|
|
49
69
|
}
|
|
70
|
+
});
|
|
71
|
+
if (this.parameters.workerParallelism) {
|
|
72
|
+
// Parallelized processing
|
|
73
|
+
yield Promise.all(items.map(msgWorker));
|
|
50
74
|
}
|
|
51
|
-
|
|
75
|
+
else {
|
|
76
|
+
// Serialized processing
|
|
77
|
+
for (const item of items) {
|
|
78
|
+
yield msgWorker(item);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return { speed, items: items.length };
|
|
52
82
|
}
|
|
53
83
|
catch (err) {
|
|
54
|
-
this.
|
|
55
|
-
this.
|
|
56
|
-
setTimeout(this.
|
|
84
|
+
this.failedIterations += 1;
|
|
85
|
+
this.log("ERROR", err);
|
|
86
|
+
yield new Promise(resolve => setTimeout(resolve, this.delayer(this.failedIterations)));
|
|
87
|
+
return { speed: 0, items: -1 };
|
|
57
88
|
}
|
|
58
89
|
});
|
|
59
90
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
91
|
+
/**
|
|
92
|
+
* Return the max consumers for the queue
|
|
93
|
+
*
|
|
94
|
+
* It is overridable so if a queue can retrieve several message at once
|
|
95
|
+
* it can just use the worker // and several messages at once
|
|
96
|
+
*
|
|
97
|
+
* SQS for example will return this.parameters.maxConsumers / 10
|
|
98
|
+
*
|
|
99
|
+
* @returns
|
|
100
|
+
*/
|
|
101
|
+
getMaxConsumers() {
|
|
102
|
+
return this.parameters.maxConsumers;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Work a queue calling the callback with every Event received
|
|
106
|
+
* If the callback is called without exception the `deleteMessage` is called
|
|
107
|
+
* @param callback
|
|
108
|
+
* @param eventPrototype
|
|
109
|
+
*/
|
|
110
|
+
consume(callback, eventPrototype) {
|
|
111
|
+
this.failedIterations = 0;
|
|
112
|
+
this.callback = callback;
|
|
113
|
+
this.eventPrototype = eventPrototype;
|
|
114
|
+
let consumers = new Set();
|
|
115
|
+
let childQueueCallback = (canceller) => __awaiter(this, void 0, void 0, function* () {
|
|
116
|
+
let res = yield this.consumerReceiveMessage();
|
|
117
|
+
// If an error occured or no results found, stop the child
|
|
118
|
+
if (res.items <= 0) {
|
|
119
|
+
yield canceller();
|
|
66
120
|
}
|
|
67
121
|
});
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
122
|
+
let parentQueueCallback = (canceller) => __awaiter(this, void 0, void 0, function* () {
|
|
123
|
+
let res = yield this.consumerReceiveMessage();
|
|
124
|
+
if (res.items > 0 && res.speed < 3000 && consumers.size < this.getMaxConsumers() - 1) {
|
|
125
|
+
this.log("TRACE", `Launching a new queue consumer for ${this.getName()}`);
|
|
126
|
+
let consumer = new waiter_1.CancelableLoopPromise(childQueueCallback);
|
|
127
|
+
// Add consumer to our list
|
|
128
|
+
consumers.add(consumer);
|
|
129
|
+
// Remove consumer once finished
|
|
130
|
+
consumer.finally(() => {
|
|
131
|
+
consumers.delete(consumer);
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
return new waiter_1.CancelableLoopPromise(parentQueueCallback, () => __awaiter(this, void 0, void 0, function* () {
|
|
136
|
+
yield Promise.all(Array.from(consumers).map(c => c.cancel()));
|
|
137
|
+
}));
|
|
74
138
|
}
|
|
75
139
|
}
|
|
76
140
|
exports.Queue = Queue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queueservice.js","sourceRoot":"","sources":["../../src/queues/queueservice.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"queueservice.js","sourceRoot":"","sources":["../../src/queues/queueservice.ts"],"names":[],"mappings":"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"}
|
package/lib/router.js
CHANGED
|
@@ -19,7 +19,9 @@ class Router {
|
|
|
19
19
|
* @param {Object} info the type of executor
|
|
20
20
|
*/
|
|
21
21
|
addRoute(url, info) {
|
|
22
|
+
var _a;
|
|
22
23
|
this.webda.log("TRACE", `Add route ${url}`);
|
|
24
|
+
(_a = info.openapi) !== null && _a !== void 0 ? _a : (info.openapi = {});
|
|
23
25
|
if (this.routes[url]) {
|
|
24
26
|
// If route is already added do not do anything
|
|
25
27
|
if (this.routes[url].includes(info)) {
|
|
@@ -32,7 +34,8 @@ class Router {
|
|
|
32
34
|
this.webda.log("WARN", `${m} ${url} overlap with another defined route`);
|
|
33
35
|
}
|
|
34
36
|
});
|
|
35
|
-
|
|
37
|
+
// Last added need to be overriding
|
|
38
|
+
this.routes[url].unshift(info);
|
|
36
39
|
}
|
|
37
40
|
else {
|
|
38
41
|
this.routes[url] = [info];
|
|
@@ -169,11 +172,6 @@ class Router {
|
|
|
169
172
|
};
|
|
170
173
|
for (let i in this.routes) {
|
|
171
174
|
this.routes[i].forEach((route) => {
|
|
172
|
-
if (!route.openapi) {
|
|
173
|
-
route.openapi = {
|
|
174
|
-
methods: {}
|
|
175
|
-
};
|
|
176
|
-
}
|
|
177
175
|
if (route.openapi.hidden && skipHidden) {
|
|
178
176
|
return;
|
|
179
177
|
}
|
package/lib/router.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":";;;AACA,8CAA8C;AAmC9C;;;GAGG;AACH,MAAa,MAAM;IAMjB,YAAY,KAAW;QALb,WAAM,GAA6B,IAAI,GAAG,EAAE,CAAC;QAC7C,cAAS,GAAY,KAAK,CAAC;QAKnC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAC,GAAW,EAAE,IAAe
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
|
package/lib/router.spec.js
CHANGED
|
@@ -21,11 +21,12 @@ const test_1 = require("./test");
|
|
|
21
21
|
const context_1 = require("./utils/context");
|
|
22
22
|
let RouterTest = class RouterTest extends test_1.WebdaTest {
|
|
23
23
|
testGetRouteMethodsFromUrl() {
|
|
24
|
-
|
|
24
|
+
const info = { methods: ["GET"], executor: "DefinedMailer" };
|
|
25
|
+
this.webda.addRoute("/plop", info);
|
|
25
26
|
assert.deepStrictEqual(this.webda.getRouter().getRouteMethodsFromUrl("/"), ["GET", "POST"]);
|
|
26
27
|
assert.deepStrictEqual(this.webda.getRouter().getRouteMethodsFromUrl("/plop"), ["GET"]);
|
|
27
28
|
this.webda.addRoute("/plop", { methods: ["POST"], executor: "DefinedMailer" });
|
|
28
|
-
assert.deepStrictEqual(this.webda.getRouter().getRouteMethodsFromUrl("/plop"), ["
|
|
29
|
+
assert.deepStrictEqual(this.webda.getRouter().getRouteMethodsFromUrl("/plop"), ["POST", "GET"]);
|
|
29
30
|
let call = [];
|
|
30
31
|
this.webda.log = (level, ...args) => {
|
|
31
32
|
call.push({ level, args });
|
|
@@ -35,6 +36,8 @@ let RouterTest = class RouterTest extends test_1.WebdaTest {
|
|
|
35
36
|
{ level: "TRACE", args: ["Add route /plop"] },
|
|
36
37
|
{ level: "WARN", args: ["GET /plop overlap with another defined route"] }
|
|
37
38
|
]);
|
|
39
|
+
// Should be skipped
|
|
40
|
+
this.webda.addRoute("/plop", info);
|
|
38
41
|
}
|
|
39
42
|
testRouteWithPrefix() {
|
|
40
43
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -69,6 +72,25 @@ let RouterTest = class RouterTest extends test_1.WebdaTest {
|
|
|
69
72
|
assert.strictEqual(ctx.getPathParameters().uuid, "bouzouf");
|
|
70
73
|
});
|
|
71
74
|
}
|
|
75
|
+
completeOpenApi() {
|
|
76
|
+
let api = { paths: {}, info: { title: "Plop", version: "1.0" }, openapi: "", tags: [{ name: "test" }] };
|
|
77
|
+
const info = {
|
|
78
|
+
methods: ["GET"],
|
|
79
|
+
executor: "DefinedMailer",
|
|
80
|
+
openapi: {
|
|
81
|
+
tags: ["plop", "test"],
|
|
82
|
+
hidden: true
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
this.webda.addRoute("/plop{?*path}", info);
|
|
86
|
+
this.webda.getRouter().remapRoutes();
|
|
87
|
+
this.webda.getRouter().completeOpenAPI(api);
|
|
88
|
+
assert.strictEqual(api.paths["/plop"], undefined);
|
|
89
|
+
this.webda.getRouter().completeOpenAPI(api, false);
|
|
90
|
+
assert.notStrictEqual(api.paths["/plop"], undefined);
|
|
91
|
+
assert.deepStrictEqual(api.paths["/plop"].get.tags, ["plop", "test"]);
|
|
92
|
+
assert.ok(api.tags.filter(f => f.name === "plop").length === 1);
|
|
93
|
+
}
|
|
72
94
|
};
|
|
73
95
|
__decorate([
|
|
74
96
|
mocha_1.test
|
|
@@ -82,6 +104,9 @@ __decorate([
|
|
|
82
104
|
__decorate([
|
|
83
105
|
mocha_1.test
|
|
84
106
|
], RouterTest.prototype, "testRouteWithQueryParam", null);
|
|
107
|
+
__decorate([
|
|
108
|
+
mocha_1.test
|
|
109
|
+
], RouterTest.prototype, "completeOpenApi", null);
|
|
85
110
|
RouterTest = __decorate([
|
|
86
111
|
mocha_1.suite
|
|
87
112
|
], RouterTest);
|
package/lib/router.spec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.spec.js","sourceRoot":"","sources":["../src/router.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iCAAiC;AACjC,2CAA8C;AAC9C,iCAAmC;AACnC,6CAA8C;
|
|
1
|
+
{"version":3,"file":"router.spec.js","sourceRoot":"","sources":["../src/router.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,60 @@
|
|
|
1
1
|
import { Queue } from "../queues/queueservice";
|
|
2
2
|
import { Service, ServiceParameters } from "./service";
|
|
3
|
+
/**
|
|
4
|
+
* AsyncEvent representation
|
|
5
|
+
*/
|
|
6
|
+
export declare class AsyncEvent {
|
|
7
|
+
/**
|
|
8
|
+
* Service emitted the event
|
|
9
|
+
*/
|
|
10
|
+
service: string;
|
|
11
|
+
/**
|
|
12
|
+
* Type of event
|
|
13
|
+
*/
|
|
14
|
+
type: string;
|
|
15
|
+
/**
|
|
16
|
+
* Payload of the event
|
|
17
|
+
*/
|
|
18
|
+
payload: any;
|
|
19
|
+
/**
|
|
20
|
+
* Time
|
|
21
|
+
*/
|
|
22
|
+
time: Date;
|
|
23
|
+
/**
|
|
24
|
+
* Used when serializing a service
|
|
25
|
+
*/
|
|
26
|
+
static ServiceTag: string;
|
|
27
|
+
constructor(service: string, type: any, payload?: {});
|
|
28
|
+
/**
|
|
29
|
+
* Allow payload to contain Service but do not serialize them
|
|
30
|
+
* replacing them by a #Webda:Service:${service.getName()} so it
|
|
31
|
+
* can be revived
|
|
32
|
+
*
|
|
33
|
+
* @returns
|
|
34
|
+
*/
|
|
35
|
+
toJSON(): this & {
|
|
36
|
+
payload: string;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Deserialize from the queue, reviving any detected service
|
|
40
|
+
*
|
|
41
|
+
* @param data
|
|
42
|
+
* @param service
|
|
43
|
+
* @returns
|
|
44
|
+
*/
|
|
45
|
+
static fromQueue(data: any, service: Service): AsyncEvent;
|
|
46
|
+
/**
|
|
47
|
+
* Mapper name
|
|
48
|
+
* @returns
|
|
49
|
+
*/
|
|
50
|
+
getMapper(): string;
|
|
51
|
+
}
|
|
3
52
|
interface QueueMap {
|
|
4
53
|
[key: string]: Queue;
|
|
5
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* @inheritdoc
|
|
57
|
+
*/
|
|
6
58
|
export declare class EventServiceParameters extends ServiceParameters {
|
|
7
59
|
/**
|
|
8
60
|
* Queues to post async events to
|
|
@@ -14,6 +66,10 @@ export declare class EventServiceParameters extends ServiceParameters {
|
|
|
14
66
|
* Make the event sending asynchronous
|
|
15
67
|
*/
|
|
16
68
|
sync?: boolean;
|
|
69
|
+
/**
|
|
70
|
+
* @inheritdoc
|
|
71
|
+
*/
|
|
72
|
+
constructor(params: any);
|
|
17
73
|
}
|
|
18
74
|
/**
|
|
19
75
|
* @category CoreServices
|
|
@@ -35,10 +91,59 @@ declare class EventService<T extends EventServiceParameters = EventServiceParame
|
|
|
35
91
|
* Setup the default routes
|
|
36
92
|
*/
|
|
37
93
|
computeParameters(): Promise<void>;
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
94
|
+
/**
|
|
95
|
+
* Bind a asynchronous event
|
|
96
|
+
*
|
|
97
|
+
* ```mermaid
|
|
98
|
+
* sequenceDiagram
|
|
99
|
+
* participant S as Service
|
|
100
|
+
* participant As as AsyncEventService
|
|
101
|
+
* participant Q as Queue
|
|
102
|
+
* participant Aw as AsyncEventService Worker
|
|
103
|
+
*
|
|
104
|
+
* As->>S: Bind event to a sendQueue listener
|
|
105
|
+
* activate As
|
|
106
|
+
* S->>As: Emit event
|
|
107
|
+
* As->>Q: Push the event to the queue
|
|
108
|
+
* deactivate As
|
|
109
|
+
* Aw->>Q: Consume queue
|
|
110
|
+
* Aw->>Aw: Call the original listener
|
|
111
|
+
* ```
|
|
112
|
+
*
|
|
113
|
+
* @param service
|
|
114
|
+
* @param event
|
|
115
|
+
* @param callback
|
|
116
|
+
* @param queue
|
|
117
|
+
*/
|
|
118
|
+
bindAsyncListener(service: Service, event: string, callback: any, queue: string): void;
|
|
119
|
+
/**
|
|
120
|
+
* Synchronous Listener to proxy to async
|
|
121
|
+
*
|
|
122
|
+
* @param service
|
|
123
|
+
* @param type
|
|
124
|
+
* @param queue
|
|
125
|
+
* @param payload
|
|
126
|
+
* @returns
|
|
127
|
+
*/
|
|
128
|
+
pushEvent(service: Service, type: string, queue: string, payload: any): Promise<void>;
|
|
129
|
+
/**
|
|
130
|
+
* Process one event
|
|
131
|
+
*
|
|
132
|
+
* @param event
|
|
133
|
+
* @returns
|
|
134
|
+
*/
|
|
135
|
+
protected handleEvent(event: AsyncEvent): Promise<void>;
|
|
136
|
+
/**
|
|
137
|
+
*
|
|
138
|
+
* @param eventBody serialized event
|
|
139
|
+
* @returns
|
|
140
|
+
*/
|
|
141
|
+
protected handleRawEvent(event: AsyncEvent): Promise<void>;
|
|
142
|
+
/**
|
|
143
|
+
* Process asynchronous event on queue
|
|
144
|
+
* @param queue
|
|
145
|
+
* @returns
|
|
146
|
+
*/
|
|
147
|
+
worker(queue?: string): Promise<void>;
|
|
43
148
|
}
|
|
44
149
|
export { EventService, QueueMap };
|