@adviser/cement 0.5.12 → 0.5.14

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.
Files changed (107) hide show
  1. package/cjs/base-basic-sys-abstraction.test.cjs +1 -2
  2. package/cjs/base-basic-sys-abstraction.test.cjs.map +1 -1
  3. package/cjs/base-service.cjs +67 -0
  4. package/cjs/base-service.cjs.map +1 -0
  5. package/cjs/base-service.d.ts +27 -0
  6. package/cjs/base-service.d.ts.map +1 -0
  7. package/cjs/base-sys-abstraction.cjs +6 -49
  8. package/cjs/base-sys-abstraction.cjs.map +1 -1
  9. package/cjs/base-sys-abstraction.d.ts +2 -14
  10. package/cjs/base-sys-abstraction.d.ts.map +1 -1
  11. package/cjs/evento.cjs +104 -20
  12. package/cjs/evento.cjs.map +1 -1
  13. package/cjs/evento.d.ts +51 -7
  14. package/cjs/evento.d.ts.map +1 -1
  15. package/cjs/evento.test.cjs +139 -24
  16. package/cjs/evento.test.cjs.map +1 -1
  17. package/cjs/index.cjs +1 -0
  18. package/cjs/index.cjs.map +1 -1
  19. package/cjs/index.d.ts +1 -0
  20. package/cjs/index.d.ts.map +1 -1
  21. package/cjs/sys-abstraction.cjs +1 -11
  22. package/cjs/sys-abstraction.cjs.map +1 -1
  23. package/cjs/sys-abstraction.d.ts +0 -12
  24. package/cjs/sys-abstraction.d.ts.map +1 -1
  25. package/cjs/version.cjs +1 -1
  26. package/deno.json +1 -1
  27. package/esm/base-basic-sys-abstraction.test.js +2 -3
  28. package/esm/base-basic-sys-abstraction.test.js.map +1 -1
  29. package/esm/base-service.d.ts +27 -0
  30. package/esm/base-service.d.ts.map +1 -0
  31. package/esm/base-service.js +62 -0
  32. package/esm/base-service.js.map +1 -0
  33. package/esm/base-sys-abstraction.d.ts +2 -14
  34. package/esm/base-sys-abstraction.d.ts.map +1 -1
  35. package/esm/base-sys-abstraction.js +6 -47
  36. package/esm/base-sys-abstraction.js.map +1 -1
  37. package/esm/evento.d.ts +51 -7
  38. package/esm/evento.d.ts.map +1 -1
  39. package/esm/evento.js +101 -19
  40. package/esm/evento.js.map +1 -1
  41. package/esm/evento.test.js +140 -25
  42. package/esm/evento.test.js.map +1 -1
  43. package/esm/index.d.ts +1 -0
  44. package/esm/index.d.ts.map +1 -1
  45. package/esm/index.js +1 -0
  46. package/esm/index.js.map +1 -1
  47. package/esm/sys-abstraction.d.ts +0 -12
  48. package/esm/sys-abstraction.d.ts.map +1 -1
  49. package/esm/sys-abstraction.js +0 -10
  50. package/esm/sys-abstraction.js.map +1 -1
  51. package/esm/version.js +1 -1
  52. package/package.json +1 -1
  53. package/src/base-service.ts +129 -0
  54. package/src/base-sys-abstraction.ts +6 -118
  55. package/src/evento.ts +159 -45
  56. package/src/index.ts +1 -0
  57. package/src/sys-abstraction.ts +0 -14
  58. package/ts/cjs/base-basic-sys-abstraction.test.js +1 -2
  59. package/ts/cjs/base-basic-sys-abstraction.test.js.map +1 -1
  60. package/ts/cjs/base-service.d.ts +27 -0
  61. package/ts/cjs/base-service.d.ts.map +1 -0
  62. package/ts/cjs/base-service.js +67 -0
  63. package/ts/cjs/base-service.js.map +1 -0
  64. package/ts/cjs/base-sys-abstraction.d.ts +2 -14
  65. package/ts/cjs/base-sys-abstraction.d.ts.map +1 -1
  66. package/ts/cjs/base-sys-abstraction.js +6 -49
  67. package/ts/cjs/base-sys-abstraction.js.map +1 -1
  68. package/ts/cjs/evento.d.ts +51 -7
  69. package/ts/cjs/evento.d.ts.map +1 -1
  70. package/ts/cjs/evento.js +104 -20
  71. package/ts/cjs/evento.js.map +1 -1
  72. package/ts/cjs/evento.test.js +139 -24
  73. package/ts/cjs/evento.test.js.map +1 -1
  74. package/ts/cjs/index.d.ts +1 -0
  75. package/ts/cjs/index.d.ts.map +1 -1
  76. package/ts/cjs/index.js +1 -0
  77. package/ts/cjs/index.js.map +1 -1
  78. package/ts/cjs/sys-abstraction.d.ts +0 -12
  79. package/ts/cjs/sys-abstraction.d.ts.map +1 -1
  80. package/ts/cjs/sys-abstraction.js +1 -11
  81. package/ts/cjs/sys-abstraction.js.map +1 -1
  82. package/ts/cjs/version.js +1 -1
  83. package/ts/esm/base-basic-sys-abstraction.test.js +2 -3
  84. package/ts/esm/base-basic-sys-abstraction.test.js.map +1 -1
  85. package/ts/esm/base-service.d.ts +27 -0
  86. package/ts/esm/base-service.d.ts.map +1 -0
  87. package/ts/esm/base-service.js +62 -0
  88. package/ts/esm/base-service.js.map +1 -0
  89. package/ts/esm/base-sys-abstraction.d.ts +2 -14
  90. package/ts/esm/base-sys-abstraction.d.ts.map +1 -1
  91. package/ts/esm/base-sys-abstraction.js +6 -47
  92. package/ts/esm/base-sys-abstraction.js.map +1 -1
  93. package/ts/esm/evento.d.ts +51 -7
  94. package/ts/esm/evento.d.ts.map +1 -1
  95. package/ts/esm/evento.js +101 -19
  96. package/ts/esm/evento.js.map +1 -1
  97. package/ts/esm/evento.test.js +140 -25
  98. package/ts/esm/evento.test.js.map +1 -1
  99. package/ts/esm/index.d.ts +1 -0
  100. package/ts/esm/index.d.ts.map +1 -1
  101. package/ts/esm/index.js +1 -0
  102. package/ts/esm/index.js.map +1 -1
  103. package/ts/esm/sys-abstraction.d.ts +0 -12
  104. package/ts/esm/sys-abstraction.d.ts.map +1 -1
  105. package/ts/esm/sys-abstraction.js +0 -10
  106. package/ts/esm/sys-abstraction.js.map +1 -1
  107. package/ts/esm/version.js +1 -1
package/ts/esm/evento.js CHANGED
@@ -1,7 +1,47 @@
1
1
  import { AppContext } from "./app-context.js";
2
+ import { IdService } from "./base-service.js";
2
3
  import { Option } from "./option.js";
3
4
  import { ResolveOnce } from "./resolve-once.js";
4
5
  import { exception2Result, Result } from "./result.js";
6
+ export class EventoSend {
7
+ provider;
8
+ constructor(provider) {
9
+ this.provider = provider;
10
+ }
11
+ start(trigger) {
12
+ trigger.stats.send.startTime = new Date();
13
+ if (this.provider.start) {
14
+ return this.provider.start(trigger);
15
+ }
16
+ return Promise.resolve(Result.Ok());
17
+ }
18
+ done(trigger) {
19
+ trigger.stats.send.doneTime = new Date();
20
+ if (this.provider.done) {
21
+ return this.provider.done(trigger);
22
+ }
23
+ return Promise.resolve(Result.Ok());
24
+ }
25
+ async send(trigger, data) {
26
+ const start = new Date();
27
+ const rSend = await this.provider.send(trigger, data);
28
+ const done = new Date();
29
+ const item = {
30
+ startTime: start,
31
+ doneTime: done,
32
+ item: rSend,
33
+ };
34
+ trigger.stats.send.items.push(item);
35
+ return Result.Ok(item);
36
+ }
37
+ }
38
+ export class TriggerResultError extends Error {
39
+ ctx;
40
+ constructor(message, ctx) {
41
+ super(message);
42
+ this.ctx = ctx;
43
+ }
44
+ }
5
45
  export const EventoResult = {
6
46
  Continue: "continue",
7
47
  Stop: "stop",
@@ -95,19 +135,40 @@ export class Evento {
95
135
  });
96
136
  }
97
137
  async trigger(ictx) {
98
- let stepCtx = {};
138
+ let stepCtx = null;
99
139
  const toPost = [];
100
140
  const startOnce = new ResolveOnce();
101
141
  const res = await exception2Result(async () => {
142
+ const nullDate = new Date(0);
102
143
  const ctx = {
103
144
  ...ictx,
104
145
  encoder: ictx.encoder ?? this.encoder,
146
+ stats: ictx.stats ?? {
147
+ request: {
148
+ startTime: new Date(),
149
+ doneTime: nullDate,
150
+ },
151
+ encode: {
152
+ startTime: nullDate,
153
+ doneTime: nullDate,
154
+ },
155
+ handlers: [],
156
+ send: {
157
+ startTime: nullDate,
158
+ doneTime: nullDate,
159
+ items: [],
160
+ },
161
+ },
162
+ send: new EventoSend(ictx.send),
105
163
  ctx: ictx.ctx ?? new AppContext(),
164
+ id: (ictx.idService ?? IdService.create()).NextId(),
106
165
  };
107
166
  stepCtx = ctx;
108
167
  const results = [];
109
168
  if (!ctx.enRequest) {
169
+ ctx.stats.encode.startTime = new Date();
110
170
  const rUnk = await this.encoder.encode(ctx.request);
171
+ ctx.stats.encode.doneTime = new Date();
111
172
  if (rUnk.isErr()) {
112
173
  return Result.Err(rUnk);
113
174
  }
@@ -129,8 +190,27 @@ export class Evento {
129
190
  if (hdl.post) {
130
191
  toPost.push(hdl);
131
192
  }
193
+ const stat = {
194
+ handler: hdl,
195
+ total: {
196
+ startTime: new Date(),
197
+ doneTime: nullDate,
198
+ },
199
+ validated: {
200
+ startTime: nullDate,
201
+ doneTime: nullDate,
202
+ },
203
+ handled: {
204
+ startTime: nullDate,
205
+ doneTime: nullDate,
206
+ },
207
+ };
208
+ ctx.stats.handlers.push(stat);
209
+ stat.validated.startTime = new Date();
132
210
  const rData = await Promise.resolve(hdl.validate ? hdl.validate(validateCtx) : Result.Ok(Option.Some(ctx.enRequest)));
211
+ stat.validated.doneTime = new Date();
133
212
  if (rData.isErr()) {
213
+ stat.total.doneTime = new Date();
134
214
  return Result.Err(rData);
135
215
  }
136
216
  const data = rData.Ok();
@@ -143,19 +223,22 @@ export class Evento {
143
223
  request: ctx.request,
144
224
  enRequest: ctx.enRequest,
145
225
  });
146
- if (ctx.send.start) {
147
- const rStart = await startOnce.once(() => ctx.send.start(hdlCtx).then((rv) => {
148
- if (rv.isErr()) {
149
- return Result.Err(rv);
150
- }
151
- return Result.Ok(hdlCtx);
152
- }));
153
- if (rStart.isErr()) {
154
- return Result.Err(rStart);
226
+ const rStart = await startOnce.once(() => ctx.send.start(hdlCtx).then((rv) => {
227
+ if (rv.isErr()) {
228
+ return Result.Err(rv);
155
229
  }
230
+ return Result.Ok(hdlCtx);
231
+ }));
232
+ if (rStart.isErr()) {
233
+ stat.total.doneTime = new Date();
234
+ return Result.Err(rStart);
156
235
  }
236
+ stat.handled.startTime = new Date();
157
237
  const rHandle = await hdl.handle(hdlCtx);
238
+ stat.handled.doneTime = new Date();
239
+ stat.total.doneTime = new Date();
158
240
  if (rHandle.isErr()) {
241
+ stat.total.doneTime = new Date();
159
242
  return Result.Err(rHandle);
160
243
  }
161
244
  results.push(hdl.hash);
@@ -165,10 +248,10 @@ export class Evento {
165
248
  }
166
249
  return Result.Ok(results);
167
250
  });
251
+ if (!stepCtx) {
252
+ throw new Error("Internal error: stepCtx is null");
253
+ }
168
254
  for (const hdl of toPost) {
169
- if (res.isOk()) {
170
- stepCtx.triggerResult = res.Ok();
171
- }
172
255
  await exception2Result(() => hdl.post(stepCtx));
173
256
  }
174
257
  if (res.isErr()) {
@@ -177,13 +260,12 @@ export class Evento {
177
260
  await exception2Result(() => hdl.handle(stepCtx));
178
261
  }
179
262
  }
180
- const send = stepCtx && "send" in stepCtx ? stepCtx.send : undefined;
181
- if (send && send.done && startOnce.state === "processed" && startOnce.value) {
182
- if (startOnce.value.isOk()) {
183
- await send.done(startOnce.value.Ok());
184
- }
263
+ if (startOnce.value?.isOk()) {
264
+ const ctx = startOnce.value.Ok();
265
+ ctx.stats.request.doneTime = new Date();
266
+ await startOnce.value.Ok().send.done(ctx);
185
267
  }
186
- return res;
268
+ return Result.Ok(stepCtx);
187
269
  }
188
270
  }
189
271
  //# sourceMappingURL=evento.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"evento.js","sourceRoot":"","sources":["../../../src/evento.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evento.js","sourceRoot":"","sources":["../../../src/evento.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import { describe, it, expect, vi, beforeEach } from "vitest";
2
- import { Evento, EventoResult, EventoOp, EventoType, } from "./evento.js";
2
+ import { Evento, EventoResult, EventoOp, EventoType, EventoSend, } from "./evento.js";
3
3
  import { Result } from "./result.js";
4
4
  import { Option } from "./option.js";
5
+ import { sleep } from "./promise-sleep.js";
5
6
  class ReqResEventoEnDecoder {
6
7
  async encode(args) {
7
8
  const body = (await args.json());
@@ -136,6 +137,7 @@ describe("Evento", () => {
136
137
  const reqRes = new ReqResEventoEnDecoder();
137
138
  const evo = new Evento(reqRes);
138
139
  const send = new TestSend();
140
+ const sendEvent = new EventoSend(send);
139
141
  evo.push({
140
142
  type: EventoType.WildCard,
141
143
  hash: "wildcard-handler-first",
@@ -157,7 +159,8 @@ describe("Evento", () => {
157
159
  req: ctx.validated,
158
160
  })
159
161
  .then((rv) => {
160
- const v = rv.Ok();
162
+ const { item } = rv.Ok();
163
+ const v = item.Ok();
161
164
  let ret = Result.Ok(EventoResult.Continue);
162
165
  if (v.req.stop) {
163
166
  ret = Result.Ok(EventoResult.Stop);
@@ -188,7 +191,7 @@ describe("Evento", () => {
188
191
  req: ctx.validated,
189
192
  })
190
193
  .then((rv) => {
191
- const v = rv.Ok();
194
+ const { item: v } = rv.Ok();
192
195
  const ret = Result.Ok(EventoResult.Continue);
193
196
  send.fn("wildcard-second-handle", ctx, v, ret);
194
197
  return ret;
@@ -215,7 +218,8 @@ describe("Evento", () => {
215
218
  req: ctx.validated,
216
219
  })
217
220
  .then((rv) => {
218
- const v = rv.Ok();
221
+ const { item } = rv.Ok();
222
+ const v = item.Ok();
219
223
  let ret = Result.Ok(EventoResult.Continue);
220
224
  if (v.req.stop) {
221
225
  ret = Result.Ok(EventoResult.Stop);
@@ -245,7 +249,8 @@ describe("Evento", () => {
245
249
  req: ctx.validated,
246
250
  })
247
251
  .then((rv) => {
248
- const v = rv.Ok();
252
+ const { item } = rv.Ok();
253
+ const v = item.Ok();
249
254
  const ret = Result.Ok(EventoResult.Continue);
250
255
  send.fn("regular-second-handle", ctx, v, ret);
251
256
  return ret;
@@ -278,10 +283,11 @@ describe("Evento", () => {
278
283
  "wildcard-first-validate",
279
284
  expect.objectContaining({
280
285
  ctx: expect.anything(),
286
+ stats: expect.anything(),
281
287
  enRequest: { x: 1 },
282
288
  encoder: reqRes,
283
289
  request,
284
- send,
290
+ send: sendEvent,
285
291
  }),
286
292
  Result.Ok(Option.Some({ validated: true, x: 1, step: "wildcard-first" })),
287
293
  ]);
@@ -289,10 +295,11 @@ describe("Evento", () => {
289
295
  "wildcard-first-handle",
290
296
  expect.objectContaining({
291
297
  ctx: expect.anything(),
298
+ stats: expect.anything(),
292
299
  enRequest: { x: 1 },
293
300
  encoder: reqRes,
294
301
  request,
295
- send,
302
+ send: sendEvent,
296
303
  validated: { validated: true, x: 1, step: "wildcard-first" },
297
304
  }),
298
305
  {
@@ -310,10 +317,11 @@ describe("Evento", () => {
310
317
  "wildcard-second-validate",
311
318
  expect.objectContaining({
312
319
  ctx: expect.anything(),
320
+ stats: expect.anything(),
313
321
  enRequest: { x: 1 },
314
322
  encoder: reqRes,
315
323
  request,
316
- send,
324
+ send: sendEvent,
317
325
  }),
318
326
  Result.Ok(Option.Some({ validated: true, x: 1, step: "wildcard-second" })),
319
327
  ]);
@@ -321,13 +329,14 @@ describe("Evento", () => {
321
329
  "wildcard-second-handle",
322
330
  expect.objectContaining({
323
331
  ctx: expect.anything(),
332
+ stats: expect.anything(),
324
333
  enRequest: { x: 1 },
325
334
  encoder: reqRes,
326
335
  request,
327
- send,
336
+ send: sendEvent,
328
337
  validated: { validated: true, x: 1, step: "wildcard-second" },
329
338
  }),
330
- {
339
+ Result.Ok({
331
340
  encoderInfo: "test-encoder",
332
341
  req: {
333
342
  step: "wildcard-second",
@@ -335,7 +344,7 @@ describe("Evento", () => {
335
344
  x: 1,
336
345
  },
337
346
  response: "ok",
338
- },
347
+ }),
339
348
  Result.Ok(EventoResult.Continue),
340
349
  ]);
341
350
  });
@@ -358,10 +367,11 @@ describe("Evento", () => {
358
367
  "wildcard-first-validate",
359
368
  expect.objectContaining({
360
369
  ctx: expect.anything(),
370
+ stats: expect.anything(),
361
371
  enRequest: { x: 1, stop: true },
362
372
  encoder: reqRes,
363
373
  request,
364
- send,
374
+ send: sendEvent,
365
375
  }),
366
376
  Result.Ok(Option.Some({ validated: true, x: 1, stop: true, step: "wildcard-first" })),
367
377
  ]);
@@ -369,10 +379,11 @@ describe("Evento", () => {
369
379
  "wildcard-first-handle",
370
380
  expect.objectContaining({
371
381
  ctx: expect.anything(),
382
+ stats: expect.anything(),
372
383
  enRequest: { x: 1, stop: true },
373
384
  encoder: reqRes,
374
385
  request,
375
- send,
386
+ send: sendEvent,
376
387
  validated: { validated: true, x: 1, stop: true, step: "wildcard-first" },
377
388
  }),
378
389
  {
@@ -408,10 +419,11 @@ describe("Evento", () => {
408
419
  "regular-first-validate",
409
420
  expect.objectContaining({
410
421
  ctx: expect.anything(),
422
+ stats: expect.anything(),
411
423
  enRequest: { x: 2 },
412
424
  encoder: reqRes,
413
425
  request,
414
- send,
426
+ send: sendEvent,
415
427
  }),
416
428
  Result.Ok(Option.Some({ validated: true, x: 2, step: "regular-first" })),
417
429
  ]);
@@ -419,10 +431,11 @@ describe("Evento", () => {
419
431
  "regular-first-handle",
420
432
  expect.objectContaining({
421
433
  ctx: expect.anything(),
434
+ stats: expect.anything(),
422
435
  enRequest: { x: 2 },
423
436
  encoder: reqRes,
424
437
  request,
425
- send,
438
+ send: sendEvent,
426
439
  validated: { validated: true, x: 2, step: "regular-first" },
427
440
  }),
428
441
  {
@@ -440,10 +453,11 @@ describe("Evento", () => {
440
453
  "regular-second-validate",
441
454
  expect.objectContaining({
442
455
  ctx: expect.anything(),
456
+ stats: expect.anything(),
443
457
  enRequest: { x: 2 },
444
458
  encoder: reqRes,
445
459
  request,
446
- send,
460
+ send: sendEvent,
447
461
  }),
448
462
  Result.Ok(Option.Some({ validated: true, x: 2, step: "regular-second" })),
449
463
  ]);
@@ -451,10 +465,11 @@ describe("Evento", () => {
451
465
  "regular-second-handle",
452
466
  expect.objectContaining({
453
467
  ctx: expect.anything(),
468
+ stats: expect.anything(),
454
469
  enRequest: { x: 2 },
455
470
  encoder: reqRes,
456
471
  request,
457
- send,
472
+ send: sendEvent,
458
473
  validated: { validated: true, x: 2, step: "regular-second" },
459
474
  }),
460
475
  {
@@ -486,10 +501,11 @@ describe("Evento", () => {
486
501
  "regular-first-validate",
487
502
  expect.objectContaining({
488
503
  ctx: expect.anything(),
504
+ stats: expect.anything(),
489
505
  enRequest: { x: 2, stop: true },
490
506
  encoder: reqRes,
491
507
  request,
492
- send,
508
+ send: sendEvent,
493
509
  }),
494
510
  Result.Ok(Option.Some({ validated: true, x: 2, stop: true, step: "regular-first" })),
495
511
  ]);
@@ -497,10 +513,11 @@ describe("Evento", () => {
497
513
  "regular-first-handle",
498
514
  expect.objectContaining({
499
515
  ctx: expect.anything(),
516
+ stats: expect.anything(),
500
517
  enRequest: { x: 2, stop: true },
501
518
  encoder: reqRes,
502
519
  request,
503
- send,
520
+ send: sendEvent,
504
521
  validated: { validated: true, x: 2, stop: true, step: "regular-first" },
505
522
  }),
506
523
  {
@@ -527,6 +544,7 @@ describe("Evento", () => {
527
544
  }
528
545
  const evo = new Evento(new ErrorEncoder());
529
546
  const send = new TestSend();
547
+ const sendEvent = new EventoSend(send);
530
548
  evo.push({
531
549
  type: EventoType.Error,
532
550
  hash: "error-handler-0",
@@ -561,10 +579,11 @@ describe("Evento", () => {
561
579
  "error-handler-0-handle",
562
580
  expect.objectContaining({
563
581
  ctx: expect.anything(),
582
+ stats: expect.anything(),
564
583
  encoder: reqRes,
565
584
  request,
566
585
  error: send.fn.mock.calls[0][1].error,
567
- send,
586
+ send: sendEvent,
568
587
  }),
569
588
  ]);
570
589
  });
@@ -579,6 +598,7 @@ describe("Evento", () => {
579
598
  }
580
599
  const evo = new Evento(new ErrorEncoder());
581
600
  const send = new TestSend();
601
+ const sendEvent = new EventoSend(send);
582
602
  evo.push({
583
603
  type: EventoType.Error,
584
604
  hash: "error-handler-0",
@@ -613,16 +633,18 @@ describe("Evento", () => {
613
633
  "error-handler-0-handle",
614
634
  expect.objectContaining({
615
635
  ctx: expect.anything(),
636
+ stats: expect.anything(),
616
637
  encoder: reqRes,
617
638
  request,
618
639
  error: send.fn.mock.calls[0][1].error,
619
- send,
640
+ send: sendEvent,
620
641
  }),
621
642
  ]);
622
643
  });
623
644
  it("validate throw error trigger", async () => {
624
645
  const evo = new Evento(reqRes);
625
646
  const send = new TestSend();
647
+ const sendEvent = new EventoSend(send);
626
648
  evo.push({
627
649
  type: EventoType.Error,
628
650
  hash: "error-handler-0",
@@ -665,17 +687,19 @@ describe("Evento", () => {
665
687
  "error-handler-0-handle",
666
688
  expect.objectContaining({
667
689
  ctx: expect.anything(),
690
+ stats: expect.anything(),
668
691
  encoder: reqRes,
669
692
  enRequest: { x: 2, stop: true },
670
693
  request,
671
694
  error,
672
- send,
695
+ send: sendEvent,
673
696
  }),
674
697
  ]);
675
698
  });
676
699
  it("validate result error trigger", async () => {
677
700
  const evo = new Evento(reqRes);
678
701
  const send = new TestSend();
702
+ const sendEvent = new EventoSend(send);
679
703
  evo.push({
680
704
  type: EventoType.Error,
681
705
  hash: "error-handler-0",
@@ -718,17 +742,19 @@ describe("Evento", () => {
718
742
  "error-handler-0-handle",
719
743
  expect.objectContaining({
720
744
  ctx: expect.anything(),
745
+ stats: expect.anything(),
721
746
  encoder: reqRes,
722
747
  enRequest: { x: 2, stop: true },
723
748
  request,
724
749
  error,
725
- send,
750
+ send: sendEvent,
726
751
  }),
727
752
  ]);
728
753
  });
729
754
  it("handle throw error trigger", async () => {
730
755
  const evo = new Evento(reqRes);
731
756
  const send = new TestSend();
757
+ const sendEvent = new EventoSend(send);
732
758
  evo.push({
733
759
  type: EventoType.Error,
734
760
  hash: "error-handler-0",
@@ -769,11 +795,12 @@ describe("Evento", () => {
769
795
  "error-handler-0-handle",
770
796
  expect.objectContaining({
771
797
  ctx: expect.anything(),
798
+ stats: expect.anything(),
772
799
  encoder: reqRes,
773
800
  enRequest: { x: 2, stop: true },
774
801
  request,
775
802
  error,
776
- send,
803
+ send: sendEvent,
777
804
  validated: {
778
805
  stop: true,
779
806
  x: 2,
@@ -784,6 +811,7 @@ describe("Evento", () => {
784
811
  it("handle result error trigger", async () => {
785
812
  const evo = new Evento(reqRes);
786
813
  const send = new TestSend();
814
+ const sendEvent = new EventoSend(send);
787
815
  evo.push({
788
816
  type: EventoType.Error,
789
817
  hash: "error-handler-0",
@@ -829,11 +857,12 @@ describe("Evento", () => {
829
857
  "error-handler-0-handle",
830
858
  expect.objectContaining({
831
859
  ctx: expect.anything(),
860
+ stats: expect.anything(),
832
861
  encoder: reqRes,
833
862
  enRequest: { x: 2, stop: true },
834
863
  request,
835
864
  error,
836
- send,
865
+ send: sendEvent,
837
866
  validated: {
838
867
  stop: true,
839
868
  x: 2,
@@ -888,5 +917,91 @@ describe("Evento", () => {
888
917
  "done",
889
918
  ]);
890
919
  });
920
+ it("check stat", async () => {
921
+ const evo = new Evento(reqRes);
922
+ const send = new TestSend();
923
+ evo.push({
924
+ hash: "regular-handler-0",
925
+ validate: async (ctx) => {
926
+ send.fn("regular-handler-0-validate", ctx);
927
+ return sleep(10).then(() => Result.Ok(Option.Some({ x: 2, stop: true })));
928
+ },
929
+ handle: async (ctx) => {
930
+ send.fn("regular-handler-0-handle", ctx);
931
+ for (let i = 0; i < 3; i++) {
932
+ await ctx.send.send(ctx, {
933
+ response: "ok0",
934
+ req: ctx.validated,
935
+ cnt: i,
936
+ });
937
+ }
938
+ return Promise.resolve(Result.Ok(EventoResult.Continue));
939
+ },
940
+ post: async (ctx) => {
941
+ send.fn("regular-handler-0-post", ctx);
942
+ return sleep(10).then(() => {
943
+ return;
944
+ });
945
+ },
946
+ });
947
+ evo.push({
948
+ hash: "regular-handler-1",
949
+ handle: async (ctx) => {
950
+ send.fn("regular-handler-1-handle", ctx);
951
+ for (let i = 0; i < 3; i++) {
952
+ await ctx.send.send(ctx, {
953
+ response: "ok1",
954
+ req: ctx.validated,
955
+ cnt: i,
956
+ });
957
+ }
958
+ return Promise.resolve(Result.Ok(EventoResult.Continue));
959
+ },
960
+ });
961
+ const request = new Request("http://example.com", { method: "POST", body: JSON.stringify({ x: 2, stop: true }) });
962
+ await evo.trigger({
963
+ send,
964
+ request,
965
+ });
966
+ expect(send.fn.mock.calls.map((i) => i[0])).toEqual([
967
+ "regular-handler-0-validate",
968
+ "start",
969
+ "regular-handler-0-handle",
970
+ "send",
971
+ "send",
972
+ "send",
973
+ "regular-handler-1-handle",
974
+ "send",
975
+ "send",
976
+ "send",
977
+ "regular-handler-0-post",
978
+ "done",
979
+ ]);
980
+ const stats = send.fn.mock.calls[3][1].stats;
981
+ expect(stats.request.doneTime.getTime()).toBeGreaterThanOrEqual(stats.request.startTime.getTime());
982
+ expect(stats.encode.doneTime.getTime()).toBeGreaterThanOrEqual(stats.encode.startTime.getTime());
983
+ expect(stats.handlers.length).toBe(2);
984
+ for (const hdl of stats.handlers) {
985
+ expect(hdl.handled.doneTime.getTime()).toBeGreaterThanOrEqual(hdl.handled.startTime.getTime());
986
+ expect(hdl.handler.hash).toMatch(/regular-handler/);
987
+ expect(hdl.validated.doneTime.getTime()).toBeGreaterThanOrEqual(hdl.validated.startTime.getTime());
988
+ expect(hdl.total.doneTime.getTime()).toBeGreaterThanOrEqual(hdl.total.startTime.getTime());
989
+ }
990
+ expect(stats.send.doneTime.getTime()).toBeGreaterThanOrEqual(stats.send.startTime.getTime());
991
+ expect(stats.send.items.length).toBe(6);
992
+ let sendCount = 0;
993
+ for (const item of stats.send.items) {
994
+ expect(item.doneTime.getTime()).toBeGreaterThanOrEqual(item.startTime.getTime());
995
+ expect(item.item).toEqual(Result.Ok({
996
+ cnt: sendCount++ % 3,
997
+ encoderInfo: "test-encoder",
998
+ req: {
999
+ stop: true,
1000
+ x: 2,
1001
+ },
1002
+ response: `ok${sendCount > 3 ? 1 : 0}`,
1003
+ }));
1004
+ }
1005
+ });
891
1006
  });
892
1007
  //# sourceMappingURL=evento.test.js.map