@adviser/cement 0.5.11 → 0.5.13
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/cjs/evento.cjs +138 -22
- package/cjs/evento.cjs.map +1 -1
- package/cjs/evento.d.ts +53 -7
- package/cjs/evento.d.ts.map +1 -1
- package/cjs/evento.test.cjs +505 -18
- package/cjs/evento.test.cjs.map +1 -1
- package/cjs/version.cjs +1 -1
- package/deno.json +1 -1
- package/esm/evento.d.ts +53 -7
- package/esm/evento.d.ts.map +1 -1
- package/esm/evento.js +135 -21
- package/esm/evento.js.map +1 -1
- package/esm/evento.test.js +506 -19
- package/esm/evento.test.js.map +1 -1
- package/esm/version.js +1 -1
- package/package.json +1 -1
- package/src/evento.ts +200 -41
- package/ts/cjs/evento.d.ts +53 -7
- package/ts/cjs/evento.d.ts.map +1 -1
- package/ts/cjs/evento.js +138 -22
- package/ts/cjs/evento.js.map +1 -1
- package/ts/cjs/evento.test.js +505 -18
- package/ts/cjs/evento.test.js.map +1 -1
- package/ts/cjs/version.js +1 -1
- package/ts/esm/evento.d.ts +53 -7
- package/ts/esm/evento.d.ts.map +1 -1
- package/ts/esm/evento.js +135 -21
- package/ts/esm/evento.js.map +1 -1
- package/ts/esm/evento.test.js +506 -19
- package/ts/esm/evento.test.js.map +1 -1
- package/ts/esm/version.js +1 -1
package/ts/cjs/evento.js
CHANGED
|
@@ -1,10 +1,51 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Evento = exports.EventoType = exports.EventoOp = exports.EventoResult = void 0;
|
|
3
|
+
exports.Evento = exports.EventoType = exports.EventoOp = exports.EventoResult = exports.TriggerResultError = exports.EventoSend = void 0;
|
|
4
4
|
const app_context_js_1 = require("./app-context.js");
|
|
5
5
|
const option_js_1 = require("./option.js");
|
|
6
6
|
const resolve_once_js_1 = require("./resolve-once.js");
|
|
7
7
|
const result_js_1 = require("./result.js");
|
|
8
|
+
class EventoSend {
|
|
9
|
+
provider;
|
|
10
|
+
constructor(provider) {
|
|
11
|
+
this.provider = provider;
|
|
12
|
+
}
|
|
13
|
+
start(trigger) {
|
|
14
|
+
trigger.stats.send.startTime = new Date();
|
|
15
|
+
if (this.provider.start) {
|
|
16
|
+
return this.provider.start(trigger);
|
|
17
|
+
}
|
|
18
|
+
return Promise.resolve(result_js_1.Result.Ok());
|
|
19
|
+
}
|
|
20
|
+
done(trigger) {
|
|
21
|
+
trigger.stats.send.doneTime = new Date();
|
|
22
|
+
if (this.provider.done) {
|
|
23
|
+
return this.provider.done(trigger);
|
|
24
|
+
}
|
|
25
|
+
return Promise.resolve(result_js_1.Result.Ok());
|
|
26
|
+
}
|
|
27
|
+
async send(trigger, data) {
|
|
28
|
+
const start = new Date();
|
|
29
|
+
const rSend = await this.provider.send(trigger, data);
|
|
30
|
+
const done = new Date();
|
|
31
|
+
const item = {
|
|
32
|
+
startTime: start,
|
|
33
|
+
doneTime: done,
|
|
34
|
+
item: rSend,
|
|
35
|
+
};
|
|
36
|
+
trigger.stats.send.items.push(item);
|
|
37
|
+
return result_js_1.Result.Ok(item);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.EventoSend = EventoSend;
|
|
41
|
+
class TriggerResultError extends Error {
|
|
42
|
+
ctx;
|
|
43
|
+
constructor(message, ctx) {
|
|
44
|
+
super(message);
|
|
45
|
+
this.ctx = ctx;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.TriggerResultError = TriggerResultError;
|
|
8
49
|
exports.EventoResult = {
|
|
9
50
|
Continue: "continue",
|
|
10
51
|
Stop: "stop",
|
|
@@ -19,6 +60,7 @@ var EventoType;
|
|
|
19
60
|
(function (EventoType) {
|
|
20
61
|
EventoType["WildCard"] = "wildcard";
|
|
21
62
|
EventoType["Regular"] = "regular";
|
|
63
|
+
EventoType["Error"] = "error";
|
|
22
64
|
})(EventoType || (exports.EventoType = EventoType = {}));
|
|
23
65
|
function unregFunc(item, actions) {
|
|
24
66
|
return () => {
|
|
@@ -31,6 +73,7 @@ function unregFunc(item, actions) {
|
|
|
31
73
|
class Evento {
|
|
32
74
|
actions = [];
|
|
33
75
|
wildcards = [];
|
|
76
|
+
errors = [];
|
|
34
77
|
encoder;
|
|
35
78
|
constructor(encoder) {
|
|
36
79
|
this.encoder = encoder;
|
|
@@ -61,7 +104,19 @@ class Evento {
|
|
|
61
104
|
}
|
|
62
105
|
register(...hdls) {
|
|
63
106
|
return hdls.map((item) => {
|
|
64
|
-
|
|
107
|
+
let handlers;
|
|
108
|
+
switch (item.type) {
|
|
109
|
+
case EventoType.WildCard:
|
|
110
|
+
handlers = this.wildcards;
|
|
111
|
+
break;
|
|
112
|
+
case EventoType.Error:
|
|
113
|
+
handlers = this.errors;
|
|
114
|
+
break;
|
|
115
|
+
case EventoType.Regular:
|
|
116
|
+
default:
|
|
117
|
+
handlers = this.actions;
|
|
118
|
+
break;
|
|
119
|
+
}
|
|
65
120
|
const hasHandler = handlers.find((h) => h.hash === item.handler.hash);
|
|
66
121
|
if (hasHandler) {
|
|
67
122
|
return unregFunc(hasHandler, handlers);
|
|
@@ -82,27 +137,50 @@ class Evento {
|
|
|
82
137
|
});
|
|
83
138
|
}
|
|
84
139
|
async trigger(ictx) {
|
|
85
|
-
|
|
140
|
+
let stepCtx = null;
|
|
141
|
+
const toPost = [];
|
|
142
|
+
const startOnce = new resolve_once_js_1.ResolveOnce();
|
|
143
|
+
const res = await (0, result_js_1.exception2Result)(async () => {
|
|
144
|
+
const nullDate = new Date(0);
|
|
86
145
|
const ctx = {
|
|
87
146
|
...ictx,
|
|
88
147
|
encoder: ictx.encoder ?? this.encoder,
|
|
148
|
+
stats: ictx.stats ?? {
|
|
149
|
+
request: {
|
|
150
|
+
startTime: new Date(),
|
|
151
|
+
doneTime: nullDate,
|
|
152
|
+
},
|
|
153
|
+
encode: {
|
|
154
|
+
startTime: nullDate,
|
|
155
|
+
doneTime: nullDate,
|
|
156
|
+
},
|
|
157
|
+
handlers: [],
|
|
158
|
+
send: {
|
|
159
|
+
startTime: nullDate,
|
|
160
|
+
doneTime: nullDate,
|
|
161
|
+
items: [],
|
|
162
|
+
},
|
|
163
|
+
},
|
|
164
|
+
send: new EventoSend(ictx.send),
|
|
89
165
|
ctx: ictx.ctx ?? new app_context_js_1.AppContext(),
|
|
90
166
|
};
|
|
167
|
+
stepCtx = ctx;
|
|
91
168
|
const results = [];
|
|
92
169
|
if (!ctx.enRequest) {
|
|
170
|
+
ctx.stats.encode.startTime = new Date();
|
|
93
171
|
const rUnk = await this.encoder.encode(ctx.request);
|
|
172
|
+
ctx.stats.encode.doneTime = new Date();
|
|
94
173
|
if (rUnk.isErr()) {
|
|
95
174
|
return result_js_1.Result.Err(rUnk);
|
|
96
175
|
}
|
|
97
176
|
const unk = rUnk.unwrap();
|
|
98
177
|
ctx.enRequest = unk;
|
|
99
178
|
}
|
|
100
|
-
const validateCtx = {
|
|
179
|
+
const validateCtx = (stepCtx = {
|
|
101
180
|
...ctx,
|
|
102
181
|
enRequest: ctx.enRequest,
|
|
103
182
|
request: ctx.request,
|
|
104
|
-
};
|
|
105
|
-
const startOnce = new resolve_once_js_1.ResolveOnce();
|
|
183
|
+
});
|
|
106
184
|
for (const hdl of [...this.actions, "breakpoint", ...this.wildcards]) {
|
|
107
185
|
if (typeof hdl === "string") {
|
|
108
186
|
if (results.length > 0) {
|
|
@@ -110,33 +188,58 @@ class Evento {
|
|
|
110
188
|
}
|
|
111
189
|
continue;
|
|
112
190
|
}
|
|
191
|
+
if (hdl.post) {
|
|
192
|
+
toPost.push(hdl);
|
|
193
|
+
}
|
|
194
|
+
const stat = {
|
|
195
|
+
handler: hdl,
|
|
196
|
+
total: {
|
|
197
|
+
startTime: new Date(),
|
|
198
|
+
doneTime: nullDate,
|
|
199
|
+
},
|
|
200
|
+
validated: {
|
|
201
|
+
startTime: nullDate,
|
|
202
|
+
doneTime: nullDate,
|
|
203
|
+
},
|
|
204
|
+
handled: {
|
|
205
|
+
startTime: nullDate,
|
|
206
|
+
doneTime: nullDate,
|
|
207
|
+
},
|
|
208
|
+
};
|
|
209
|
+
ctx.stats.handlers.push(stat);
|
|
210
|
+
stat.validated.startTime = new Date();
|
|
113
211
|
const rData = await Promise.resolve(hdl.validate ? hdl.validate(validateCtx) : result_js_1.Result.Ok(option_js_1.Option.Some(ctx.enRequest)));
|
|
212
|
+
stat.validated.doneTime = new Date();
|
|
114
213
|
if (rData.isErr()) {
|
|
214
|
+
stat.total.doneTime = new Date();
|
|
115
215
|
return result_js_1.Result.Err(rData);
|
|
116
216
|
}
|
|
117
217
|
const data = rData.Ok();
|
|
118
218
|
if (data.IsNone()) {
|
|
119
219
|
continue;
|
|
120
220
|
}
|
|
121
|
-
const hdlCtx = {
|
|
221
|
+
const hdlCtx = (stepCtx = {
|
|
122
222
|
...ctx,
|
|
123
223
|
validated: data.Unwrap(),
|
|
124
224
|
request: ctx.request,
|
|
125
225
|
enRequest: ctx.enRequest,
|
|
126
|
-
};
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
return result_js_1.Result.Err(rv);
|
|
131
|
-
}
|
|
132
|
-
return result_js_1.Result.Ok(hdlCtx);
|
|
133
|
-
}));
|
|
134
|
-
if (rStart.isErr()) {
|
|
135
|
-
return result_js_1.Result.Err(rStart);
|
|
226
|
+
});
|
|
227
|
+
const rStart = await startOnce.once(() => ctx.send.start(hdlCtx).then((rv) => {
|
|
228
|
+
if (rv.isErr()) {
|
|
229
|
+
return result_js_1.Result.Err(rv);
|
|
136
230
|
}
|
|
231
|
+
return result_js_1.Result.Ok(hdlCtx);
|
|
232
|
+
}));
|
|
233
|
+
if (rStart.isErr()) {
|
|
234
|
+
stat.total.doneTime = new Date();
|
|
235
|
+
return result_js_1.Result.Err(rStart);
|
|
137
236
|
}
|
|
237
|
+
stat.handled.startTime = new Date();
|
|
138
238
|
const rHandle = await hdl.handle(hdlCtx);
|
|
239
|
+
stat.handled.doneTime = new Date();
|
|
240
|
+
stat.total.doneTime = new Date();
|
|
139
241
|
if (rHandle.isErr()) {
|
|
242
|
+
stat.total.doneTime = new Date();
|
|
140
243
|
return result_js_1.Result.Err(rHandle);
|
|
141
244
|
}
|
|
142
245
|
results.push(hdl.hash);
|
|
@@ -144,13 +247,26 @@ class Evento {
|
|
|
144
247
|
break;
|
|
145
248
|
}
|
|
146
249
|
}
|
|
147
|
-
if (ctx.send.done && startOnce.state === "processed" && startOnce.value) {
|
|
148
|
-
if (startOnce.value.isOk()) {
|
|
149
|
-
await ctx.send.done(startOnce.value.Ok());
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
250
|
return result_js_1.Result.Ok(results);
|
|
153
251
|
});
|
|
252
|
+
if (!stepCtx) {
|
|
253
|
+
throw new Error("Internal error: stepCtx is null");
|
|
254
|
+
}
|
|
255
|
+
for (const hdl of toPost) {
|
|
256
|
+
await (0, result_js_1.exception2Result)(() => hdl.post(stepCtx));
|
|
257
|
+
}
|
|
258
|
+
if (res.isErr()) {
|
|
259
|
+
stepCtx.error = res.Err();
|
|
260
|
+
for (const hdl of this.errors) {
|
|
261
|
+
await (0, result_js_1.exception2Result)(() => hdl.handle(stepCtx));
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
if (startOnce.value?.isOk()) {
|
|
265
|
+
const ctx = startOnce.value.Ok();
|
|
266
|
+
ctx.stats.request.doneTime = new Date();
|
|
267
|
+
await startOnce.value.Ok().send.done(ctx);
|
|
268
|
+
}
|
|
269
|
+
return result_js_1.Result.Ok(stepCtx);
|
|
154
270
|
}
|
|
155
271
|
}
|
|
156
272
|
exports.Evento = Evento;
|
package/ts/cjs/evento.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evento.js","sourceRoot":"","sources":["../../../src/evento.ts"],"names":[],"mappings":";;;AAAA,qDAA8C;AAC9C,2CAAqC;AACrC,uDAAgD;AAChD,2CAAuD;
|
|
1
|
+
{"version":3,"file":"evento.js","sourceRoot":"","sources":["../../../src/evento.ts"],"names":[],"mappings":"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"}
|