@betterinternship/core 2.5.1 → 2.5.2
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/lib/broker/base.task.d.ts +16 -0
- package/dist/lib/broker/base.task.js +41 -0
- package/dist/lib/broker/base.task.js.map +1 -0
- package/dist/lib/broker/broker.d.ts +1 -5
- package/dist/lib/broker/broker.js +6 -21
- package/dist/lib/broker/broker.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
type BaseTaskResponseHandler<Response> = (response: Response) => Promise<void>;
|
|
2
|
+
export declare class BaseTaskInitiator<Request, Response> {
|
|
3
|
+
private requestQueueId;
|
|
4
|
+
private responseQueueId;
|
|
5
|
+
constructor(queueId: string, handler: BaseTaskResponseHandler<Response>);
|
|
6
|
+
init(handler: BaseTaskResponseHandler<Response>): Promise<void>;
|
|
7
|
+
sendRequest(content: Request): Promise<boolean>;
|
|
8
|
+
}
|
|
9
|
+
type BaseTaskRequestHandler<Request, Response> = (request: Request) => Promise<Response>;
|
|
10
|
+
export declare class BaseTaskRunner<Request, Response> {
|
|
11
|
+
private requestQueueId;
|
|
12
|
+
private responseQueueId;
|
|
13
|
+
constructor(queueId: string, handler: BaseTaskRequestHandler<Request, Response>);
|
|
14
|
+
private init;
|
|
15
|
+
}
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { BrokerAPI } from './broker.js';
|
|
2
|
+
export class BaseTaskInitiator {
|
|
3
|
+
requestQueueId;
|
|
4
|
+
responseQueueId;
|
|
5
|
+
constructor(queueId, handler) {
|
|
6
|
+
this.requestQueueId = `request.${queueId}`;
|
|
7
|
+
this.responseQueueId = `response.${queueId}`;
|
|
8
|
+
void this.init(handler);
|
|
9
|
+
}
|
|
10
|
+
async init(handler) {
|
|
11
|
+
const brokerAPI = await BrokerAPI.instance();
|
|
12
|
+
return await brokerAPI.addQueueHandler(this.responseQueueId, async (message) => {
|
|
13
|
+
const content = message?.content?.toString?.();
|
|
14
|
+
const response = JSON.parse(content);
|
|
15
|
+
await handler(response);
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
async sendRequest(content) {
|
|
19
|
+
const brokerAPI = await BrokerAPI.instance();
|
|
20
|
+
return brokerAPI.sendToQueue(this.requestQueueId, content);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export class BaseTaskRunner {
|
|
24
|
+
requestQueueId;
|
|
25
|
+
responseQueueId;
|
|
26
|
+
constructor(queueId, handler) {
|
|
27
|
+
this.requestQueueId = `request.${queueId}`;
|
|
28
|
+
this.responseQueueId = `response.${queueId}`;
|
|
29
|
+
void this.init(handler);
|
|
30
|
+
}
|
|
31
|
+
async init(handler) {
|
|
32
|
+
const brokerAPI = await BrokerAPI.instance();
|
|
33
|
+
await brokerAPI.addQueueHandler(this.requestQueueId, async (message) => {
|
|
34
|
+
const content = message?.content?.toString?.();
|
|
35
|
+
const request = JSON.parse(content);
|
|
36
|
+
const response = await handler(request);
|
|
37
|
+
await brokerAPI.sendToQueue(this.responseQueueId, response);
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=base.task.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.task.js","sourceRoot":"","sources":["../../../lib/broker/base.task.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAQxC,MAAM,OAAO,iBAAiB;IACpB,cAAc,CAAS;IACvB,eAAe,CAAS;IAQhC,YAAY,OAAe,EAAE,OAA0C;QACrE,IAAI,CAAC,cAAc,GAAG,WAAW,OAAO,EAAE,CAAC;QAC3C,IAAI,CAAC,eAAe,GAAG,YAAY,OAAO,EAAE,CAAC;QAC7C,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAA0C;QACnD,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC7C,OAAO,MAAM,SAAS,CAAC,eAAe,CACpC,IAAI,CAAC,eAAe,EACpB,KAAK,EAAE,OAA4B,EAAE,EAAE;YACrC,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC;YAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAa,CAAC;YACjD,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC,CACF,CAAC;IACJ,CAAC;IAQD,KAAK,CAAC,WAAW,CAAC,OAAgB;QAChC,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC7C,OAAO,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;CACF;AASD,MAAM,OAAO,cAAc;IACjB,cAAc,CAAS;IACvB,eAAe,CAAS;IAQhC,YACE,OAAe,EACf,OAAkD;QAElD,IAAI,CAAC,cAAc,GAAG,WAAW,OAAO,EAAE,CAAC;QAC3C,IAAI,CAAC,eAAe,GAAG,YAAY,OAAO,EAAE,CAAC;QAC7C,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;IAEO,KAAK,CAAC,IAAI,CAAC,OAAkD;QACnE,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC7C,MAAM,SAAS,CAAC,eAAe,CAC7B,IAAI,CAAC,cAAc,EACnB,KAAK,EAAE,OAA4B,EAAE,EAAE;YACrC,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC;YAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAY,CAAC;YAC/C,MAAM,QAAQ,GAAa,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAC9D,CAAC,CACF,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -8,9 +8,5 @@ export declare class BrokerAPI {
|
|
|
8
8
|
static instance(): Promise<BrokerAPI>;
|
|
9
9
|
assertQueue(queueId: string, options?: amqp.Options.AssertQueue): Promise<amqp.Replies.AssertQueue>;
|
|
10
10
|
sendToQueue(queueId: string, content: any): Promise<boolean>;
|
|
11
|
-
|
|
12
|
-
content: T | null;
|
|
13
|
-
resolve: () => void;
|
|
14
|
-
reject: () => void;
|
|
15
|
-
}>;
|
|
11
|
+
addQueueHandler<T>(queueId: string, handler: (message: amqp.ConsumeMessage) => Promise<T>): Promise<void>;
|
|
16
12
|
}
|
|
@@ -36,35 +36,20 @@ export class BrokerAPI {
|
|
|
36
36
|
return result;
|
|
37
37
|
}
|
|
38
38
|
async sendToQueue(queueId, content) {
|
|
39
|
-
const
|
|
39
|
+
const contentStr = JSON.stringify(content);
|
|
40
|
+
const result = this.channels.writer.sendToQueue(queueId, Buffer.from(contentStr));
|
|
40
41
|
if (result) {
|
|
41
|
-
console.log(`[BROKER] Message sent to queue "${queueId}": ${
|
|
42
|
+
console.log(`[BROKER] Message sent to queue "${queueId}": ${contentStr}.`);
|
|
42
43
|
}
|
|
43
44
|
else {
|
|
44
|
-
console.log(`[BROKER] Message could not sent to queue "${queueId}": ${
|
|
45
|
+
console.log(`[BROKER] Message could not sent to queue "${queueId}": ${contentStr}.`);
|
|
45
46
|
}
|
|
46
47
|
return Promise.resolve(result);
|
|
47
48
|
}
|
|
48
|
-
async
|
|
49
|
-
const resolveFromQueue = (message) => {
|
|
50
|
-
this.channels.writer.ack(message);
|
|
51
|
-
console.log(`[BROKER] Message "${message.properties.messageId}" resolved from queue "${queueId}".`);
|
|
52
|
-
};
|
|
53
|
-
const rejectFromQueue = (message) => {
|
|
54
|
-
this.channels.writer.nack(message);
|
|
55
|
-
console.log(`[BROKER] Message "${message.properties.messageId}" rejected from queue "${queueId}".`);
|
|
56
|
-
};
|
|
57
|
-
let resolveResultPromise;
|
|
58
|
-
const resultPromise = new Promise((r) => (resolveResultPromise = r));
|
|
49
|
+
async addQueueHandler(queueId, handler) {
|
|
59
50
|
await this.channels.reader.consume(queueId, (message) => {
|
|
60
|
-
|
|
61
|
-
resolveResultPromise({
|
|
62
|
-
content: content ? JSON.parse(content) : null,
|
|
63
|
-
resolve: () => message && resolveFromQueue(message),
|
|
64
|
-
reject: () => message && rejectFromQueue(message),
|
|
65
|
-
});
|
|
51
|
+
void handler(message);
|
|
66
52
|
});
|
|
67
|
-
return resultPromise;
|
|
68
53
|
}
|
|
69
54
|
}
|
|
70
55
|
//# sourceMappingURL=broker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broker.js","sourceRoot":"","sources":["../../../lib/broker/broker.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"broker.js","sourceRoot":"","sources":["../../../lib/broker/broker.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAGhC,MAAM,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,CAAC;AAC9C,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;AACtC,IAAI,CAAC,YAAY,IAAI,gBAAgB;IACnC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;AAKjE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAG,IAAc,EAAU,EAAE;IACrD,IAAI,GAAG,CAAC,WAAW,KAAK,YAAY;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;QACvD,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC,CAAC;AAKF,MAAM,OAAO,SAAS;IAEpB,UAAU,CAAoB;IAC9B,QAAQ,CAA+B;IAG/B,MAAM,CAAC,UAAU,CAAY;IAGrC,gBAAuB,CAAC;IAExB,MAAM,CAAC,KAAK,CAAC,QAAQ;QACnB,IAAI,SAAS,CAAC,UAAU,IAAI,CAAC,gBAAgB;YAAE,OAAO,SAAS,CAAC,UAAU,CAAC;QAI3E,SAAS,CAAC,UAAU,GAAG,IAAI,SAAS,EAAE,CAAC;QACvC,SAAS,CAAC,UAAU,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAa,CAAC,CAAC;QAIpE,SAAS,CAAC,UAAU,CAAC,QAAQ,GAAG;YAC9B,QAAQ,EAAE,MAAM,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,aAAa,EAAE;YAC/D,MAAM,EAAE,MAAM,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,aAAa,EAAE;YAC7D,MAAM,EAAE,MAAM,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,aAAa,EAAE;SAC9D,CAAC;QAEF,OAAO,SAAS,CAAC,UAAU,CAAC;IAC9B,CAAC;IASD,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,OAAkC;QACnE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE;YAC/D,OAAO,EAAE,IAAI;YACb,GAAG,OAAO;SACX,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,mBAAmB,OAAO,sBAAsB,CAAC,CAAC;QAC9D,OAAO,MAAM,CAAC;IAChB,CAAC;IASD,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,OAAY;QAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAC7C,OAAO,EACP,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CACxB,CAAC;QAEF,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CACT,mCAAmC,OAAO,MAAM,UAAU,GAAG,CAC9D,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CACT,6CAA6C,OAAO,MAAM,UAAU,GAAG,CACxE,CAAC;QACJ,CAAC;QAED,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IASD,KAAK,CAAC,eAAe,CACnB,OAAe,EACf,OAAqD;QAErD,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAChC,OAAO,EACP,CAAC,OAA4B,EAAE,EAAE;YAC/B,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC,CACF,CAAC;IACJ,CAAC;CACF"}
|