@artstesh/postboy 2.1.9 → 2.1.10
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/i-postboy-depending.service.d.ts +3 -3
- package/lib/i-postboy-depending.service.js +2 -2
- package/lib/index.d.ts +10 -10
- package/lib/index.js +29 -29
- package/lib/locker.store.d.ts +8 -8
- package/lib/locker.store.js +26 -26
- package/lib/mocks/message-history-item-mock.d.ts +9 -9
- package/lib/mocks/message-history-item-mock.js +25 -25
- package/lib/mocks/message-history-mock.d.ts +8 -8
- package/lib/mocks/message-history-mock.js +23 -23
- package/lib/mocks/postboy-service-mock.d.ts +21 -21
- package/lib/mocks/postboy-service-mock.js +50 -50
- package/lib/models/message-queue.model.d.ts +43 -43
- package/lib/models/message-queue.model.js +65 -65
- package/lib/models/postboy-callback.message.d.ts +8 -8
- package/lib/models/postboy-callback.message.js +18 -18
- package/lib/models/postboy-execution.handler.d.ts +14 -14
- package/lib/models/postboy-execution.handler.js +16 -16
- package/lib/models/postboy-executor.d.ts +3 -3
- package/lib/models/postboy-executor.js +7 -7
- package/lib/models/postboy-generic-message.d.ts +7 -7
- package/lib/models/postboy-generic-message.js +18 -18
- package/lib/models/postboy-subscription.d.ts +6 -6
- package/lib/models/postboy-subscription.js +10 -10
- package/lib/models/postboy.locker.d.ts +5 -5
- package/lib/models/postboy.locker.js +2 -2
- package/lib/postboy-abstract.registrator.d.ts +113 -113
- package/lib/postboy-abstract.registrator.d.ts.map +1 -1
- package/lib/postboy-abstract.registrator.js +141 -141
- package/lib/postboy.service.d.ts +108 -105
- package/lib/postboy.service.d.ts.map +1 -1
- package/lib/postboy.service.js +161 -161
- package/lib/postboy.service.js.map +1 -1
- package/package.json +1 -1
package/lib/postboy.service.js
CHANGED
|
@@ -1,162 +1,162 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PostboyService = void 0;
|
|
4
|
-
const postboy_generic_message_1 = require("./models/postboy-generic-message");
|
|
5
|
-
const locker_store_1 = require("./locker.store");
|
|
6
|
-
const postboy_subscription_1 = require("./models/postboy-subscription");
|
|
7
|
-
const collections_1 = require("@artstesh/collections");
|
|
8
|
-
class PostboyService {
|
|
9
|
-
constructor() {
|
|
10
|
-
this.applications = new collections_1.Dictionary();
|
|
11
|
-
this.locker = new locker_store_1.LockerStore();
|
|
12
|
-
this.executors = new collections_1.Dictionary();
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Adds a locker to the current list of lockers.
|
|
16
|
-
*
|
|
17
|
-
* @param {PostboyLocker} locker - The locker object to be added.
|
|
18
|
-
* @return {void} This method does not return a value.
|
|
19
|
-
*/
|
|
20
|
-
addLocker(locker) {
|
|
21
|
-
this.locker.addLocker(locker);
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* @deprecated The method should be replaced with recordExecutor<T>
|
|
25
|
-
*/
|
|
26
|
-
registerExecutor(id, exec) {
|
|
27
|
-
this.executors.put(id, exec);
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* @deprecated The method should be replaced with exec<T>
|
|
31
|
-
*/
|
|
32
|
-
execute(executor) {
|
|
33
|
-
if (!this.executors.has(executor.id))
|
|
34
|
-
throw new Error(`There is no registered executor ${executor.constructor.name}`);
|
|
35
|
-
return this.executors.take(executor.id)(executor);
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* @deprecated The method should be replaced with record<T>
|
|
39
|
-
*/
|
|
40
|
-
register(id, sub) {
|
|
41
|
-
this.applications.put(id, new postboy_subscription_1.PostboySubscription(sub, (s) => s.asObservable()));
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* @deprecated The method should be replaced with recordWithPipe<T>
|
|
45
|
-
*/
|
|
46
|
-
registerWithPipe(id, sub, pipe) {
|
|
47
|
-
this.applications.put(id, new postboy_subscription_1.PostboySubscription(sub, pipe));
|
|
48
|
-
}
|
|
49
|
-
unregister(id) {
|
|
50
|
-
var _a, _b;
|
|
51
|
-
(_b = (_a = this.applications.take(id)) === null || _a === void 0 ? void 0 : _a.sub) === null || _b === void 0 ? void 0 : _b.complete();
|
|
52
|
-
this.applications.rmv(id);
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* @deprecated The method should be replaced with sub<T>
|
|
56
|
-
*/
|
|
57
|
-
subscribe(id) {
|
|
58
|
-
const application = this.applications.take(id);
|
|
59
|
-
if (!application)
|
|
60
|
-
throw new Error(`There is no event with id ${id}`);
|
|
61
|
-
return application.pipe(application.sub);
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Fires a registered event and passes the message to its subscribers.
|
|
65
|
-
*
|
|
66
|
-
* @param {PostboyGenericMessage} message - The message object containing the event data.
|
|
67
|
-
* @return {void} This method does not return a value.
|
|
68
|
-
* @throws {Error} Throws an error if no registered event is found for the provided message ID.
|
|
69
|
-
*/
|
|
70
|
-
fire(message) {
|
|
71
|
-
var _a, _b;
|
|
72
|
-
if (!((_a = this.applications.take(message.id)) === null || _a === void 0 ? void 0 : _a.sub))
|
|
73
|
-
throw new Error(`There is no registered event ${message.constructor.name}`);
|
|
74
|
-
if (this.locker.check(message.id))
|
|
75
|
-
(_b = this.applications.take(message.id)) === null || _b === void 0 ? void 0 : _b.sub.next(message);
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Triggers a callback function associated with a given message.
|
|
79
|
-
*
|
|
80
|
-
* @param {PostboyCallbackMessage<T>} message - The message object used to trigger the callback.
|
|
81
|
-
* It contains details about the event and result subscription.
|
|
82
|
-
* @param {(e: T) => void} [action] - Optional callback function to execute when the result of the message is emitted.
|
|
83
|
-
* @return {void} This method does not return any value.
|
|
84
|
-
*/
|
|
85
|
-
fireCallback(message, action) {
|
|
86
|
-
var _a;
|
|
87
|
-
if (!((_a = this.applications.take(message.id)) === null || _a === void 0 ? void 0 : _a.sub))
|
|
88
|
-
throw new Error(`There is no registered event ${message.constructor.name}`);
|
|
89
|
-
message.result.subscribe(action);
|
|
90
|
-
if (this.locker.check(message.id))
|
|
91
|
-
setTimeout(() => { var _a; return (_a = this.applications.take(message.id)) === null || _a === void 0 ? void 0 : _a.sub.next(message); }, 0);
|
|
92
|
-
return message.result;
|
|
93
|
-
}
|
|
94
|
-
// future
|
|
95
|
-
/**
|
|
96
|
-
* Subscribes to a specific message type and returns an observable of that type.
|
|
97
|
-
*
|
|
98
|
-
* @param type The constructor function of the type that extends PostboyGenericMessage.
|
|
99
|
-
* @return An Observable of the specified generic message type.
|
|
100
|
-
*/
|
|
101
|
-
sub(type) {
|
|
102
|
-
const application = this.applications.take((0, postboy_generic_message_1.checkId)(type));
|
|
103
|
-
if (!application)
|
|
104
|
-
throw new Error(`There is no registered event ${type.name}`);
|
|
105
|
-
return application.pipe(application.sub);
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Registers a given message type and its associated subject subscription with the system.
|
|
109
|
-
*
|
|
110
|
-
* @param type The constructor function of the message type that extends the PostboyGenericMessage.
|
|
111
|
-
* @param sub The Subject instance for the provided message type, used for managing subscriptions.
|
|
112
|
-
* @return {void} No return value.
|
|
113
|
-
*/
|
|
114
|
-
record(type, sub) {
|
|
115
|
-
this.applications.put((0, postboy_generic_message_1.checkId)(type), new postboy_subscription_1.PostboySubscription(sub, (s) => s.asObservable()));
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Registers a generic message type with a Subject and a transformation pipe.
|
|
119
|
-
*
|
|
120
|
-
* @param {MessageType<T>} type - The constructor of the message type being registered.
|
|
121
|
-
* @param {Subject<T>} sub - The Subject instance used to handle incoming messages of the specified type.
|
|
122
|
-
* @param {(s: Subject<T>) => Observable<T>} pipe - A function that applies a transformation or processing logic to the Subject and returns an Observable.
|
|
123
|
-
* @return {void} No return value.
|
|
124
|
-
*/
|
|
125
|
-
recordWithPipe(type, sub, pipe) {
|
|
126
|
-
this.applications.put((0, postboy_generic_message_1.checkId)(type), new postboy_subscription_1.PostboySubscription(sub, pipe));
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Records an executor instance and its corresponding execution function.
|
|
130
|
-
*
|
|
131
|
-
* @param {new (...args: any[]) => E} type - The constructor type of the executor.
|
|
132
|
-
* @param {(e: E) => T} exec - The function to execute with the provided executor instance.
|
|
133
|
-
* @return {void} No return value.
|
|
134
|
-
*/
|
|
135
|
-
recordExecutor(type, exec) {
|
|
136
|
-
this.executors.put((0, postboy_generic_message_1.checkId)(type), exec);
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Executes the provided executor function and returns its result.
|
|
140
|
-
*
|
|
141
|
-
* @param {PostboyExecutor<T>} executor The executor to be executed, which includes its identifier and logic.
|
|
142
|
-
* @return {T} The resulting output from the executed executor function.
|
|
143
|
-
* @throws {Error} If the specified executor is not registered.
|
|
144
|
-
*/
|
|
145
|
-
exec(executor) {
|
|
146
|
-
if (!this.executors.has(executor.id))
|
|
147
|
-
throw new Error(`There is no registered executor with id ${executor.id}`);
|
|
148
|
-
return this.executors.take(executor.id)(executor);
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* Manages the recording of an executor and its corresponding handler into internal storage.
|
|
152
|
-
*
|
|
153
|
-
* @param {new (...args: any[]) => E} executor - The constructor for a class extending PostboyExecutor, used to register the executor type.
|
|
154
|
-
* @param {PostboyExecutionHandler<R, E>} handler - The handler responsible for processing the specific executor.
|
|
155
|
-
* @return {void} No return value.
|
|
156
|
-
*/
|
|
157
|
-
recordHandler(executor, handler) {
|
|
158
|
-
this.executors.put((0, postboy_generic_message_1.checkId)(executor), (e) => handler.handle(e));
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
exports.PostboyService = PostboyService;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PostboyService = void 0;
|
|
4
|
+
const postboy_generic_message_1 = require("./models/postboy-generic-message");
|
|
5
|
+
const locker_store_1 = require("./locker.store");
|
|
6
|
+
const postboy_subscription_1 = require("./models/postboy-subscription");
|
|
7
|
+
const collections_1 = require("@artstesh/collections");
|
|
8
|
+
class PostboyService {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.applications = new collections_1.Dictionary();
|
|
11
|
+
this.locker = new locker_store_1.LockerStore();
|
|
12
|
+
this.executors = new collections_1.Dictionary();
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Adds a locker to the current list of lockers.
|
|
16
|
+
*
|
|
17
|
+
* @param {PostboyLocker} locker - The locker object to be added.
|
|
18
|
+
* @return {void} This method does not return a value.
|
|
19
|
+
*/
|
|
20
|
+
addLocker(locker) {
|
|
21
|
+
this.locker.addLocker(locker);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* @deprecated The method should be replaced with recordExecutor<T>
|
|
25
|
+
*/
|
|
26
|
+
registerExecutor(id, exec) {
|
|
27
|
+
this.executors.put(id, exec);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* @deprecated The method should be replaced with exec<T>
|
|
31
|
+
*/
|
|
32
|
+
execute(executor) {
|
|
33
|
+
if (!this.executors.has(executor.id))
|
|
34
|
+
throw new Error(`There is no registered executor ${executor.constructor.name}`);
|
|
35
|
+
return this.executors.take(executor.id)(executor);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* @deprecated The method should be replaced with record<T>
|
|
39
|
+
*/
|
|
40
|
+
register(id, sub) {
|
|
41
|
+
this.applications.put(id, new postboy_subscription_1.PostboySubscription(sub, (s) => s.asObservable()));
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* @deprecated The method should be replaced with recordWithPipe<T>
|
|
45
|
+
*/
|
|
46
|
+
registerWithPipe(id, sub, pipe) {
|
|
47
|
+
this.applications.put(id, new postboy_subscription_1.PostboySubscription(sub, pipe));
|
|
48
|
+
}
|
|
49
|
+
unregister(id) {
|
|
50
|
+
var _a, _b;
|
|
51
|
+
(_b = (_a = this.applications.take(id)) === null || _a === void 0 ? void 0 : _a.sub) === null || _b === void 0 ? void 0 : _b.complete();
|
|
52
|
+
this.applications.rmv(id);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* @deprecated The method should be replaced with sub<T>
|
|
56
|
+
*/
|
|
57
|
+
subscribe(id) {
|
|
58
|
+
const application = this.applications.take(id);
|
|
59
|
+
if (!application)
|
|
60
|
+
throw new Error(`There is no event with id ${id}`);
|
|
61
|
+
return application.pipe(application.sub);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Fires a registered event and passes the message to its subscribers.
|
|
65
|
+
*
|
|
66
|
+
* @param {PostboyGenericMessage} message - The message object containing the event data.
|
|
67
|
+
* @return {void} This method does not return a value.
|
|
68
|
+
* @throws {Error} Throws an error if no registered event is found for the provided message ID.
|
|
69
|
+
*/
|
|
70
|
+
fire(message) {
|
|
71
|
+
var _a, _b;
|
|
72
|
+
if (!((_a = this.applications.take(message.id)) === null || _a === void 0 ? void 0 : _a.sub))
|
|
73
|
+
throw new Error(`There is no registered event ${message.constructor.name}`);
|
|
74
|
+
if (this.locker.check(message.id))
|
|
75
|
+
(_b = this.applications.take(message.id)) === null || _b === void 0 ? void 0 : _b.sub.next(message);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Triggers a callback function associated with a given message.
|
|
79
|
+
*
|
|
80
|
+
* @param {PostboyCallbackMessage<T>} message - The message object used to trigger the callback.
|
|
81
|
+
* It contains details about the event and result subscription.
|
|
82
|
+
* @param {(e: T) => void} [action] - Optional callback function to execute when the result of the message is emitted.
|
|
83
|
+
* @return {void} This method does not return any value.
|
|
84
|
+
*/
|
|
85
|
+
fireCallback(message, action) {
|
|
86
|
+
var _a;
|
|
87
|
+
if (!((_a = this.applications.take(message.id)) === null || _a === void 0 ? void 0 : _a.sub))
|
|
88
|
+
throw new Error(`There is no registered event ${message.constructor.name}`);
|
|
89
|
+
message.result.subscribe(action);
|
|
90
|
+
if (this.locker.check(message.id))
|
|
91
|
+
setTimeout(() => { var _a; return (_a = this.applications.take(message.id)) === null || _a === void 0 ? void 0 : _a.sub.next(message); }, 0);
|
|
92
|
+
return message.result;
|
|
93
|
+
}
|
|
94
|
+
// future
|
|
95
|
+
/**
|
|
96
|
+
* Subscribes to a specific message type and returns an observable of that type.
|
|
97
|
+
*
|
|
98
|
+
* @param type The constructor function of the type that extends PostboyGenericMessage.
|
|
99
|
+
* @return An Observable of the specified generic message type.
|
|
100
|
+
*/
|
|
101
|
+
sub(type) {
|
|
102
|
+
const application = this.applications.take((0, postboy_generic_message_1.checkId)(type));
|
|
103
|
+
if (!application)
|
|
104
|
+
throw new Error(`There is no registered event ${type.name}`);
|
|
105
|
+
return application.pipe(application.sub);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Registers a given message type and its associated subject subscription with the system.
|
|
109
|
+
*
|
|
110
|
+
* @param type The constructor function of the message type that extends the PostboyGenericMessage.
|
|
111
|
+
* @param sub The Subject instance for the provided message type, used for managing subscriptions.
|
|
112
|
+
* @return {void} No return value.
|
|
113
|
+
*/
|
|
114
|
+
record(type, sub) {
|
|
115
|
+
this.applications.put((0, postboy_generic_message_1.checkId)(type), new postboy_subscription_1.PostboySubscription(sub, (s) => s.asObservable()));
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Registers a generic message type with a Subject and a transformation pipe.
|
|
119
|
+
*
|
|
120
|
+
* @param {MessageType<T>} type - The constructor of the message type being registered.
|
|
121
|
+
* @param {Subject<T>} sub - The Subject instance used to handle incoming messages of the specified type.
|
|
122
|
+
* @param {(s: Subject<T>) => Observable<T>} pipe - A function that applies a transformation or processing logic to the Subject and returns an Observable.
|
|
123
|
+
* @return {void} No return value.
|
|
124
|
+
*/
|
|
125
|
+
recordWithPipe(type, sub, pipe) {
|
|
126
|
+
this.applications.put((0, postboy_generic_message_1.checkId)(type), new postboy_subscription_1.PostboySubscription(sub, pipe));
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Records an executor instance and its corresponding execution function.
|
|
130
|
+
*
|
|
131
|
+
* @param {new (...args: any[]) => E} type - The constructor type of the executor.
|
|
132
|
+
* @param {(e: E) => T} exec - The function to execute with the provided executor instance.
|
|
133
|
+
* @return {void} No return value.
|
|
134
|
+
*/
|
|
135
|
+
recordExecutor(type, exec) {
|
|
136
|
+
this.executors.put((0, postboy_generic_message_1.checkId)(type), exec);
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Executes the provided executor function and returns its result.
|
|
140
|
+
*
|
|
141
|
+
* @param {PostboyExecutor<T>} executor The executor to be executed, which includes its identifier and logic.
|
|
142
|
+
* @return {T} The resulting output from the executed executor function.
|
|
143
|
+
* @throws {Error} If the specified executor is not registered.
|
|
144
|
+
*/
|
|
145
|
+
exec(executor) {
|
|
146
|
+
if (!this.executors.has(executor.id))
|
|
147
|
+
throw new Error(`There is no registered executor with id ${executor.id}`);
|
|
148
|
+
return this.executors.take(executor.id)(executor);
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Manages the recording of an executor and its corresponding handler into internal storage.
|
|
152
|
+
*
|
|
153
|
+
* @param {new (...args: any[]) => E} executor - The constructor for a class extending PostboyExecutor, used to register the executor type.
|
|
154
|
+
* @param {PostboyExecutionHandler<R, E>} handler - The handler responsible for processing the specific executor.
|
|
155
|
+
* @return {void} No return value.
|
|
156
|
+
*/
|
|
157
|
+
recordHandler(executor, handler) {
|
|
158
|
+
this.executors.put((0, postboy_generic_message_1.checkId)(executor), (e) => handler.handle(e));
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
exports.PostboyService = PostboyService;
|
|
162
162
|
//# sourceMappingURL=postboy.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postboy.service.js","sourceRoot":"","sources":["../src/postboy.service.ts"],"names":[],"mappings":";;;AACA,8EAAkF;AAClF,iDAA6C;AAE7C,wEAAoE;AAGpE,uDAAmD;AAInD,MAAa,cAAc;IAA3B;
|
|
1
|
+
{"version":3,"file":"postboy.service.js","sourceRoot":"","sources":["../src/postboy.service.ts"],"names":[],"mappings":"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"}
|