@adviser/cement 0.5.12 → 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 +102 -20
- package/cjs/evento.cjs.map +1 -1
- package/cjs/evento.d.ts +48 -7
- package/cjs/evento.d.ts.map +1 -1
- package/cjs/evento.test.cjs +139 -24
- package/cjs/evento.test.cjs.map +1 -1
- package/cjs/version.cjs +1 -1
- package/deno.json +1 -1
- package/esm/evento.d.ts +48 -7
- package/esm/evento.d.ts.map +1 -1
- package/esm/evento.js +99 -19
- package/esm/evento.js.map +1 -1
- package/esm/evento.test.js +140 -25
- package/esm/evento.test.js.map +1 -1
- package/esm/version.js +1 -1
- package/package.json +1 -1
- package/src/evento.ts +154 -45
- package/ts/cjs/evento.d.ts +48 -7
- package/ts/cjs/evento.d.ts.map +1 -1
- package/ts/cjs/evento.js +102 -20
- package/ts/cjs/evento.js.map +1 -1
- package/ts/cjs/evento.test.js +139 -24
- package/ts/cjs/evento.test.js.map +1 -1
- package/ts/cjs/version.js +1 -1
- package/ts/esm/evento.d.ts +48 -7
- package/ts/esm/evento.d.ts.map +1 -1
- package/ts/esm/evento.js +99 -19
- package/ts/esm/evento.js.map +1 -1
- package/ts/esm/evento.test.js +140 -25
- package/ts/esm/evento.test.js.map +1 -1
- package/ts/esm/version.js +1 -1
package/src/evento.ts
CHANGED
|
@@ -36,7 +36,7 @@ export interface EventoEnDecoder<REQ, RES> {
|
|
|
36
36
|
* @typeParam REQ - The validated request type
|
|
37
37
|
* @typeParam RES - The response type
|
|
38
38
|
*/
|
|
39
|
-
export interface
|
|
39
|
+
export interface EventoSendProvider<INREQ, REQ, RES> {
|
|
40
40
|
/**
|
|
41
41
|
* Optional hook called once before the first handler processes the event.
|
|
42
42
|
*
|
|
@@ -65,14 +65,67 @@ export interface EventoSend<INREQ, REQ, RES> {
|
|
|
65
65
|
done?(trigger: HandleTriggerCtx<INREQ, REQ, RES>): Promise<Result<void>>;
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
68
|
+
export interface ActionStat {
|
|
69
|
+
startTime: Date;
|
|
70
|
+
doneTime: Date;
|
|
71
|
+
}
|
|
72
|
+
export interface SendStatItem<T> extends ActionStat {
|
|
73
|
+
readonly item: Result<T>;
|
|
74
|
+
}
|
|
75
|
+
export interface SendStat extends ActionStat {
|
|
76
|
+
items: SendStatItem<unknown>[];
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export type RequestStat = ActionStat;
|
|
80
|
+
|
|
81
|
+
export interface TriggerStats {
|
|
82
|
+
readonly request: RequestStat;
|
|
83
|
+
readonly encode: ActionStat;
|
|
84
|
+
readonly handlers: {
|
|
85
|
+
readonly handler: EventoHandler;
|
|
86
|
+
readonly total: ActionStat;
|
|
87
|
+
readonly validated: ActionStat;
|
|
88
|
+
readonly handled: ActionStat;
|
|
89
|
+
}[];
|
|
90
|
+
readonly send: SendStat;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export class EventoSend<INREQ, REQ, RES> {
|
|
94
|
+
readonly provider: EventoSendProvider<INREQ, REQ, RES>;
|
|
95
|
+
|
|
96
|
+
constructor(provider: EventoSendProvider<INREQ, REQ, RES>) {
|
|
97
|
+
this.provider = provider;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
start(trigger: HandleTriggerCtx<INREQ, REQ, RES>): Promise<Result<void>> {
|
|
101
|
+
trigger.stats.send.startTime = new Date();
|
|
102
|
+
if (this.provider.start) {
|
|
103
|
+
return this.provider.start(trigger);
|
|
104
|
+
}
|
|
105
|
+
return Promise.resolve(Result.Ok());
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
done(trigger: HandleTriggerCtx<INREQ, REQ, RES>): Promise<Result<void>> {
|
|
109
|
+
trigger.stats.send.doneTime = new Date();
|
|
110
|
+
if (this.provider.done) {
|
|
111
|
+
return this.provider.done(trigger);
|
|
112
|
+
}
|
|
113
|
+
return Promise.resolve(Result.Ok());
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
async send<IS, OS>(trigger: HandleTriggerCtx<INREQ, REQ, RES>, data: IS): Promise<Result<SendStatItem<OS>>> {
|
|
117
|
+
const start = new Date();
|
|
118
|
+
const rSend = await this.provider.send<IS, OS>(trigger, data);
|
|
119
|
+
const done = new Date();
|
|
120
|
+
const item: SendStatItem<OS> = {
|
|
121
|
+
startTime: start,
|
|
122
|
+
doneTime: done,
|
|
123
|
+
item: rSend,
|
|
124
|
+
};
|
|
125
|
+
trigger.stats.send.items.push(item);
|
|
126
|
+
return Result.Ok(item);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
76
129
|
|
|
77
130
|
/**
|
|
78
131
|
* Base interface for trigger context containing core dependencies.
|
|
@@ -81,8 +134,7 @@ export interface EventoSend<INREQ, REQ, RES> {
|
|
|
81
134
|
* @typeParam REQ - The validated request type
|
|
82
135
|
* @typeParam RES - The response type
|
|
83
136
|
*/
|
|
84
|
-
export interface TriggerCtxBase<INREQ,
|
|
85
|
-
send: EventoSend<INREQ, REQ, RES>;
|
|
137
|
+
export interface TriggerCtxBase<INREQ, RES> {
|
|
86
138
|
ctx: AppContext;
|
|
87
139
|
encoder: EventoEnDecoder<INREQ, RES>;
|
|
88
140
|
}
|
|
@@ -90,14 +142,20 @@ export interface TriggerCtxBase<INREQ, REQ, RES> {
|
|
|
90
142
|
/**
|
|
91
143
|
* Readonly version of the base trigger context.
|
|
92
144
|
*/
|
|
93
|
-
export type ReadonlyTriggerCtxBase<INREQ, REQ, RES> = Readonly<TriggerCtxBase<INREQ,
|
|
145
|
+
export type ReadonlyTriggerCtxBase<INREQ, REQ, RES> = Readonly<TriggerCtxBase<INREQ, RES>> & {
|
|
146
|
+
readonly send: EventoSend<INREQ, REQ, RES>;
|
|
147
|
+
readonly stats: TriggerStats;
|
|
148
|
+
};
|
|
94
149
|
|
|
95
150
|
/**
|
|
96
151
|
* Parameters for creating a trigger context.
|
|
97
152
|
* Requires send, but ctx and encoder are optional and will use defaults.
|
|
98
153
|
*/
|
|
99
|
-
export type TriggerCtxBaseParams<INREQ, REQ, RES> =
|
|
100
|
-
Partial<Pick<ReadonlyTriggerCtxBase<INREQ, REQ, RES>, "ctx" | "encoder"
|
|
154
|
+
export type TriggerCtxBaseParams<INREQ, REQ, RES> = Partial<Omit<ReadonlyTriggerCtxBase<INREQ, REQ, RES>, "send">> &
|
|
155
|
+
Partial<Pick<ReadonlyTriggerCtxBase<INREQ, REQ, RES>, "ctx" | "encoder">> & {
|
|
156
|
+
send: EventoSendProvider<INREQ, REQ, RES>;
|
|
157
|
+
stats?: TriggerStats;
|
|
158
|
+
};
|
|
101
159
|
|
|
102
160
|
/**
|
|
103
161
|
* Complete parameters for triggering an event, including optional request data.
|
|
@@ -113,6 +171,19 @@ export type TriggerCtx<INREQ, REQ, RES> =
|
|
|
113
171
|
| (ReadonlyTriggerCtxBase<INREQ, REQ, RES> & { enRequest: unknown })
|
|
114
172
|
| (ReadonlyTriggerCtxBase<INREQ, REQ, RES> & { enRequest: unknown; request: INREQ });
|
|
115
173
|
|
|
174
|
+
export type TriggerResult<INREQ, REQ, RES> = Omit<ReadonlyTriggerCtxBase<INREQ, REQ, RES>, "send"> & {
|
|
175
|
+
readonly send: EventoSend<INREQ, REQ, RES>;
|
|
176
|
+
readonly stats: TriggerStats;
|
|
177
|
+
} & Partial<MutableHandleTriggerCtx<INREQ, REQ>>;
|
|
178
|
+
|
|
179
|
+
export class TriggerResultError<INREQ, REQ, RES> extends Error {
|
|
180
|
+
readonly ctx: TriggerResult<INREQ, REQ, RES>;
|
|
181
|
+
constructor(message: string, ctx: TriggerResult<INREQ, REQ, RES>) {
|
|
182
|
+
super(message);
|
|
183
|
+
this.ctx = ctx;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
|
|
116
187
|
/**
|
|
117
188
|
* Context provided to validation handlers.
|
|
118
189
|
* Contains the encoded request data for validation.
|
|
@@ -131,7 +202,6 @@ export interface MutableHandleTriggerCtx<INREQ, REQ> {
|
|
|
131
202
|
enRequest: unknown;
|
|
132
203
|
validated: REQ;
|
|
133
204
|
error?: Error;
|
|
134
|
-
triggerResult?: string[];
|
|
135
205
|
}
|
|
136
206
|
|
|
137
207
|
/**
|
|
@@ -458,25 +528,45 @@ export class Evento {
|
|
|
458
528
|
* @param ictx - The trigger context parameters
|
|
459
529
|
* @returns A Result containing an array of handler hashes that processed the event
|
|
460
530
|
*/
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
| ValidateTriggerCtx<INREQ, REQ, RES>
|
|
465
|
-
| (ReadonlyTriggerCtxBase<INREQ, REQ, RES> & Partial<MutableHandleTriggerCtx<INREQ, REQ>>)
|
|
466
|
-
| object = {};
|
|
531
|
+
|
|
532
|
+
async trigger<INREQ, REQ, RES>(ictx: TriggerCtxParams<INREQ, REQ, RES>): Promise<Result<TriggerResult<INREQ, REQ, RES>>> {
|
|
533
|
+
let stepCtx: TriggerResult<INREQ, REQ, RES> | null = null;
|
|
467
534
|
const toPost: EventoHandler[] = [];
|
|
468
535
|
const startOnce = new ResolveOnce<Result<HandleTriggerCtx<INREQ, REQ, RES>>>();
|
|
469
536
|
const res = await exception2Result(async (): Promise<Result<string[]>> => {
|
|
470
|
-
const
|
|
537
|
+
const nullDate = new Date(0);
|
|
538
|
+
const ctx: Omit<ReadonlyTriggerCtxBase<INREQ, REQ, RES>, "send"> & {
|
|
539
|
+
readonly send: EventoSend<INREQ, REQ, RES>;
|
|
540
|
+
readonly stats: TriggerStats;
|
|
541
|
+
} & Partial<MutableHandleTriggerCtx<INREQ, REQ>> = {
|
|
471
542
|
...ictx,
|
|
472
543
|
encoder: ictx.encoder ?? (this.encoder as EventoEnDecoder<INREQ, RES>),
|
|
544
|
+
stats: ictx.stats ?? {
|
|
545
|
+
request: {
|
|
546
|
+
startTime: new Date(),
|
|
547
|
+
doneTime: nullDate,
|
|
548
|
+
},
|
|
549
|
+
encode: {
|
|
550
|
+
startTime: nullDate,
|
|
551
|
+
doneTime: nullDate,
|
|
552
|
+
},
|
|
553
|
+
handlers: [],
|
|
554
|
+
send: {
|
|
555
|
+
startTime: nullDate,
|
|
556
|
+
doneTime: nullDate,
|
|
557
|
+
items: [],
|
|
558
|
+
},
|
|
559
|
+
},
|
|
560
|
+
send: new EventoSend(ictx.send),
|
|
473
561
|
ctx: ictx.ctx ?? new AppContext(),
|
|
474
562
|
};
|
|
475
563
|
stepCtx = ctx;
|
|
476
564
|
const results: string[] = [];
|
|
477
565
|
// this skips encoding if already encoded
|
|
478
566
|
if (!ctx.enRequest) {
|
|
567
|
+
ctx.stats.encode.startTime = new Date();
|
|
479
568
|
const rUnk = await this.encoder.encode(ctx.request as never);
|
|
569
|
+
ctx.stats.encode.doneTime = new Date();
|
|
480
570
|
if (rUnk.isErr()) {
|
|
481
571
|
return Result.Err(rUnk);
|
|
482
572
|
}
|
|
@@ -499,8 +589,27 @@ export class Evento {
|
|
|
499
589
|
if (hdl.post) {
|
|
500
590
|
toPost.push(hdl);
|
|
501
591
|
}
|
|
592
|
+
const stat = {
|
|
593
|
+
handler: hdl,
|
|
594
|
+
total: {
|
|
595
|
+
startTime: new Date(),
|
|
596
|
+
doneTime: nullDate,
|
|
597
|
+
},
|
|
598
|
+
validated: {
|
|
599
|
+
startTime: nullDate,
|
|
600
|
+
doneTime: nullDate,
|
|
601
|
+
},
|
|
602
|
+
handled: {
|
|
603
|
+
startTime: nullDate,
|
|
604
|
+
doneTime: nullDate,
|
|
605
|
+
},
|
|
606
|
+
};
|
|
607
|
+
ctx.stats.handlers.push(stat);
|
|
608
|
+
stat.validated.startTime = new Date();
|
|
502
609
|
const rData = await Promise.resolve(hdl.validate ? hdl.validate(validateCtx) : Result.Ok(Option.Some(ctx.enRequest)));
|
|
610
|
+
stat.validated.doneTime = new Date();
|
|
503
611
|
if (rData.isErr()) {
|
|
612
|
+
stat.total.doneTime = new Date();
|
|
504
613
|
return Result.Err(rData);
|
|
505
614
|
}
|
|
506
615
|
const data = rData.Ok();
|
|
@@ -513,22 +622,24 @@ export class Evento {
|
|
|
513
622
|
request: ctx.request as INREQ,
|
|
514
623
|
enRequest: ctx.enRequest,
|
|
515
624
|
}); // satisfies HandleTriggerCtx<INREQ, REQ, RES>;
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
);
|
|
526
|
-
|
|
527
|
-
return Result.Err(rStart);
|
|
528
|
-
}
|
|
625
|
+
const rStart = await startOnce.once(() =>
|
|
626
|
+
ctx.send.start(hdlCtx).then((rv): Result<HandleTriggerCtx<INREQ, REQ, RES>> => {
|
|
627
|
+
if (rv.isErr()) {
|
|
628
|
+
return Result.Err(rv);
|
|
629
|
+
}
|
|
630
|
+
return Result.Ok(hdlCtx);
|
|
631
|
+
}),
|
|
632
|
+
);
|
|
633
|
+
if (rStart.isErr()) {
|
|
634
|
+
stat.total.doneTime = new Date();
|
|
635
|
+
return Result.Err(rStart);
|
|
529
636
|
}
|
|
637
|
+
stat.handled.startTime = new Date();
|
|
530
638
|
const rHandle = await hdl.handle(hdlCtx);
|
|
639
|
+
stat.handled.doneTime = new Date();
|
|
640
|
+
stat.total.doneTime = new Date();
|
|
531
641
|
if (rHandle.isErr()) {
|
|
642
|
+
stat.total.doneTime = new Date();
|
|
532
643
|
return Result.Err(rHandle);
|
|
533
644
|
}
|
|
534
645
|
results.push(hdl.hash);
|
|
@@ -536,13 +647,12 @@ export class Evento {
|
|
|
536
647
|
break;
|
|
537
648
|
}
|
|
538
649
|
}
|
|
539
|
-
|
|
540
650
|
return Result.Ok(results);
|
|
541
651
|
});
|
|
652
|
+
if (!stepCtx) {
|
|
653
|
+
throw new Error("Internal error: stepCtx is null");
|
|
654
|
+
}
|
|
542
655
|
for (const hdl of toPost) {
|
|
543
|
-
if (res.isOk()) {
|
|
544
|
-
(stepCtx as MutableHandleTriggerCtx<INREQ, REQ>).triggerResult = res.Ok();
|
|
545
|
-
}
|
|
546
656
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
547
657
|
await exception2Result(() => hdl.post!(stepCtx as HandleTriggerCtx<INREQ, REQ, RES>));
|
|
548
658
|
}
|
|
@@ -552,12 +662,11 @@ export class Evento {
|
|
|
552
662
|
await exception2Result(() => hdl.handle(stepCtx as HandleTriggerCtx<INREQ, REQ, RES>));
|
|
553
663
|
}
|
|
554
664
|
}
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
}
|
|
665
|
+
if (startOnce.value?.isOk()) {
|
|
666
|
+
const ctx = startOnce.value.Ok();
|
|
667
|
+
ctx.stats.request.doneTime = new Date();
|
|
668
|
+
await startOnce.value.Ok().send.done(ctx);
|
|
560
669
|
}
|
|
561
|
-
return
|
|
670
|
+
return Result.Ok(stepCtx);
|
|
562
671
|
}
|
|
563
672
|
}
|
package/ts/cjs/evento.d.ts
CHANGED
|
@@ -5,18 +5,52 @@ export interface EventoEnDecoder<REQ, RES> {
|
|
|
5
5
|
encode(args: REQ): Promise<Result<unknown>>;
|
|
6
6
|
decode(data: unknown): Promise<Result<RES>>;
|
|
7
7
|
}
|
|
8
|
-
export interface
|
|
8
|
+
export interface EventoSendProvider<INREQ, REQ, RES> {
|
|
9
9
|
start?(trigger: HandleTriggerCtx<INREQ, REQ, RES>): Promise<Result<void>>;
|
|
10
10
|
send<IS, OS>(trigger: HandleTriggerCtx<INREQ, REQ, RES>, data: IS): Promise<Result<OS>>;
|
|
11
11
|
done?(trigger: HandleTriggerCtx<INREQ, REQ, RES>): Promise<Result<void>>;
|
|
12
12
|
}
|
|
13
|
-
export interface
|
|
14
|
-
|
|
13
|
+
export interface ActionStat {
|
|
14
|
+
startTime: Date;
|
|
15
|
+
doneTime: Date;
|
|
16
|
+
}
|
|
17
|
+
export interface SendStatItem<T> extends ActionStat {
|
|
18
|
+
readonly item: Result<T>;
|
|
19
|
+
}
|
|
20
|
+
export interface SendStat extends ActionStat {
|
|
21
|
+
items: SendStatItem<unknown>[];
|
|
22
|
+
}
|
|
23
|
+
export type RequestStat = ActionStat;
|
|
24
|
+
export interface TriggerStats {
|
|
25
|
+
readonly request: RequestStat;
|
|
26
|
+
readonly encode: ActionStat;
|
|
27
|
+
readonly handlers: {
|
|
28
|
+
readonly handler: EventoHandler;
|
|
29
|
+
readonly total: ActionStat;
|
|
30
|
+
readonly validated: ActionStat;
|
|
31
|
+
readonly handled: ActionStat;
|
|
32
|
+
}[];
|
|
33
|
+
readonly send: SendStat;
|
|
34
|
+
}
|
|
35
|
+
export declare class EventoSend<INREQ, REQ, RES> {
|
|
36
|
+
readonly provider: EventoSendProvider<INREQ, REQ, RES>;
|
|
37
|
+
constructor(provider: EventoSendProvider<INREQ, REQ, RES>);
|
|
38
|
+
start(trigger: HandleTriggerCtx<INREQ, REQ, RES>): Promise<Result<void>>;
|
|
39
|
+
done(trigger: HandleTriggerCtx<INREQ, REQ, RES>): Promise<Result<void>>;
|
|
40
|
+
send<IS, OS>(trigger: HandleTriggerCtx<INREQ, REQ, RES>, data: IS): Promise<Result<SendStatItem<OS>>>;
|
|
41
|
+
}
|
|
42
|
+
export interface TriggerCtxBase<INREQ, RES> {
|
|
15
43
|
ctx: AppContext;
|
|
16
44
|
encoder: EventoEnDecoder<INREQ, RES>;
|
|
17
45
|
}
|
|
18
|
-
export type ReadonlyTriggerCtxBase<INREQ, REQ, RES> = Readonly<TriggerCtxBase<INREQ,
|
|
19
|
-
|
|
46
|
+
export type ReadonlyTriggerCtxBase<INREQ, REQ, RES> = Readonly<TriggerCtxBase<INREQ, RES>> & {
|
|
47
|
+
readonly send: EventoSend<INREQ, REQ, RES>;
|
|
48
|
+
readonly stats: TriggerStats;
|
|
49
|
+
};
|
|
50
|
+
export type TriggerCtxBaseParams<INREQ, REQ, RES> = Partial<Omit<ReadonlyTriggerCtxBase<INREQ, REQ, RES>, "send">> & Partial<Pick<ReadonlyTriggerCtxBase<INREQ, REQ, RES>, "ctx" | "encoder">> & {
|
|
51
|
+
send: EventoSendProvider<INREQ, REQ, RES>;
|
|
52
|
+
stats?: TriggerStats;
|
|
53
|
+
};
|
|
20
54
|
export type TriggerCtxParams<INREQ, REQ, RES> = TriggerCtxBaseParams<INREQ, REQ, RES> & {
|
|
21
55
|
request?: INREQ;
|
|
22
56
|
enRequest?: unknown;
|
|
@@ -29,6 +63,14 @@ export type TriggerCtx<INREQ, REQ, RES> = (ReadonlyTriggerCtxBase<INREQ, REQ, RE
|
|
|
29
63
|
enRequest: unknown;
|
|
30
64
|
request: INREQ;
|
|
31
65
|
});
|
|
66
|
+
export type TriggerResult<INREQ, REQ, RES> = Omit<ReadonlyTriggerCtxBase<INREQ, REQ, RES>, "send"> & {
|
|
67
|
+
readonly send: EventoSend<INREQ, REQ, RES>;
|
|
68
|
+
readonly stats: TriggerStats;
|
|
69
|
+
} & Partial<MutableHandleTriggerCtx<INREQ, REQ>>;
|
|
70
|
+
export declare class TriggerResultError<INREQ, REQ, RES> extends Error {
|
|
71
|
+
readonly ctx: TriggerResult<INREQ, REQ, RES>;
|
|
72
|
+
constructor(message: string, ctx: TriggerResult<INREQ, REQ, RES>);
|
|
73
|
+
}
|
|
32
74
|
export interface ValidateTriggerCtx<INREQ, REQ, RES> extends ReadonlyTriggerCtxBase<INREQ, REQ, RES> {
|
|
33
75
|
readonly request?: INREQ;
|
|
34
76
|
readonly enRequest: unknown;
|
|
@@ -38,7 +80,6 @@ export interface MutableHandleTriggerCtx<INREQ, REQ> {
|
|
|
38
80
|
enRequest: unknown;
|
|
39
81
|
validated: REQ;
|
|
40
82
|
error?: Error;
|
|
41
|
-
triggerResult?: string[];
|
|
42
83
|
}
|
|
43
84
|
export type HandleTriggerCtx<INREQ, REQ, RES> = Readonly<MutableHandleTriggerCtx<INREQ, REQ>> & ReadonlyTriggerCtxBase<INREQ, REQ, RES>;
|
|
44
85
|
export declare const EventoResult: {
|
|
@@ -88,6 +129,6 @@ export declare class Evento {
|
|
|
88
129
|
push(...hdls: (EventoHandler | EventoHandler[])[]): (() => void)[];
|
|
89
130
|
unshift(...hdls: (EventoHandler | EventoHandler[])[]): (() => void)[];
|
|
90
131
|
register(...hdls: EventoHandlerOp[]): (() => void)[];
|
|
91
|
-
trigger<INREQ, REQ, RES>(ictx: TriggerCtxParams<INREQ, REQ, RES>): Promise<Result<
|
|
132
|
+
trigger<INREQ, REQ, RES>(ictx: TriggerCtxParams<INREQ, REQ, RES>): Promise<Result<TriggerResult<INREQ, REQ, RES>>>;
|
|
92
133
|
}
|
|
93
134
|
//# sourceMappingURL=evento.d.ts.map
|
package/ts/cjs/evento.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evento.d.ts","sourceRoot":"","sources":["../../../src/evento.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAoB,MAAM,EAAE,MAAM,aAAa,CAAC;AASvD,MAAM,WAAW,eAAe,CAAC,GAAG,EAAE,GAAG;IAOvC,MAAM,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAQ5C,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;CAC7C;AAUD,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"evento.d.ts","sourceRoot":"","sources":["../../../src/evento.ts"],"names":[],"mappings":"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"}
|
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",
|
|
@@ -96,19 +137,39 @@ class Evento {
|
|
|
96
137
|
});
|
|
97
138
|
}
|
|
98
139
|
async trigger(ictx) {
|
|
99
|
-
let stepCtx =
|
|
140
|
+
let stepCtx = null;
|
|
100
141
|
const toPost = [];
|
|
101
142
|
const startOnce = new resolve_once_js_1.ResolveOnce();
|
|
102
143
|
const res = await (0, result_js_1.exception2Result)(async () => {
|
|
144
|
+
const nullDate = new Date(0);
|
|
103
145
|
const ctx = {
|
|
104
146
|
...ictx,
|
|
105
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),
|
|
106
165
|
ctx: ictx.ctx ?? new app_context_js_1.AppContext(),
|
|
107
166
|
};
|
|
108
167
|
stepCtx = ctx;
|
|
109
168
|
const results = [];
|
|
110
169
|
if (!ctx.enRequest) {
|
|
170
|
+
ctx.stats.encode.startTime = new Date();
|
|
111
171
|
const rUnk = await this.encoder.encode(ctx.request);
|
|
172
|
+
ctx.stats.encode.doneTime = new Date();
|
|
112
173
|
if (rUnk.isErr()) {
|
|
113
174
|
return result_js_1.Result.Err(rUnk);
|
|
114
175
|
}
|
|
@@ -130,8 +191,27 @@ class Evento {
|
|
|
130
191
|
if (hdl.post) {
|
|
131
192
|
toPost.push(hdl);
|
|
132
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();
|
|
133
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();
|
|
134
213
|
if (rData.isErr()) {
|
|
214
|
+
stat.total.doneTime = new Date();
|
|
135
215
|
return result_js_1.Result.Err(rData);
|
|
136
216
|
}
|
|
137
217
|
const data = rData.Ok();
|
|
@@ -144,19 +224,22 @@ class Evento {
|
|
|
144
224
|
request: ctx.request,
|
|
145
225
|
enRequest: ctx.enRequest,
|
|
146
226
|
});
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
return result_js_1.Result.Err(rv);
|
|
151
|
-
}
|
|
152
|
-
return result_js_1.Result.Ok(hdlCtx);
|
|
153
|
-
}));
|
|
154
|
-
if (rStart.isErr()) {
|
|
155
|
-
return result_js_1.Result.Err(rStart);
|
|
227
|
+
const rStart = await startOnce.once(() => ctx.send.start(hdlCtx).then((rv) => {
|
|
228
|
+
if (rv.isErr()) {
|
|
229
|
+
return result_js_1.Result.Err(rv);
|
|
156
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);
|
|
157
236
|
}
|
|
237
|
+
stat.handled.startTime = new Date();
|
|
158
238
|
const rHandle = await hdl.handle(hdlCtx);
|
|
239
|
+
stat.handled.doneTime = new Date();
|
|
240
|
+
stat.total.doneTime = new Date();
|
|
159
241
|
if (rHandle.isErr()) {
|
|
242
|
+
stat.total.doneTime = new Date();
|
|
160
243
|
return result_js_1.Result.Err(rHandle);
|
|
161
244
|
}
|
|
162
245
|
results.push(hdl.hash);
|
|
@@ -166,10 +249,10 @@ class Evento {
|
|
|
166
249
|
}
|
|
167
250
|
return result_js_1.Result.Ok(results);
|
|
168
251
|
});
|
|
252
|
+
if (!stepCtx) {
|
|
253
|
+
throw new Error("Internal error: stepCtx is null");
|
|
254
|
+
}
|
|
169
255
|
for (const hdl of toPost) {
|
|
170
|
-
if (res.isOk()) {
|
|
171
|
-
stepCtx.triggerResult = res.Ok();
|
|
172
|
-
}
|
|
173
256
|
await (0, result_js_1.exception2Result)(() => hdl.post(stepCtx));
|
|
174
257
|
}
|
|
175
258
|
if (res.isErr()) {
|
|
@@ -178,13 +261,12 @@ class Evento {
|
|
|
178
261
|
await (0, result_js_1.exception2Result)(() => hdl.handle(stepCtx));
|
|
179
262
|
}
|
|
180
263
|
}
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
}
|
|
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);
|
|
186
268
|
}
|
|
187
|
-
return
|
|
269
|
+
return result_js_1.Result.Ok(stepCtx);
|
|
188
270
|
}
|
|
189
271
|
}
|
|
190
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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"}
|