@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/ts/esm/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/esm/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":"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,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG;IAOjD,KAAK,CAAC,CAAC,OAAO,EAAE,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAW1E,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAQxF,IAAI,CAAC,CAAC,OAAO,EAAE,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;CAC1E;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,IAAI,CAAC;IAChB,QAAQ,EAAE,IAAI,CAAC;CAChB;AACD,MAAM,WAAW,YAAY,CAAC,CAAC,CAAE,SAAQ,UAAU;IACjD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;CAC1B;AACD,MAAM,WAAW,QAAS,SAAQ,UAAU;IAC1C,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;CAChC;AAED,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC;AAErC,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;QAChC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;QAC3B,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;QAC/B,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;KAC9B,EAAE,CAAC;IACJ,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;CACzB;AAED,qBAAa,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG;IACrC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAEvD,YAAY,QAAQ,EAAE,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAExD;IAED,KAAK,CAAC,OAAO,EAAE,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAMvE;IAED,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAMtE;IAEK,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAW1G;CACF;AASD,MAAM,WAAW,cAAc,CAAC,KAAK,EAAE,GAAG;IACxC,GAAG,EAAE,UAAU,CAAC;IAChB,OAAO,EAAE,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;CACtC;AAKD,MAAM,MAAM,sBAAsB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG;IAC3F,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;CAC9B,CAAC;AAMF,MAAM,MAAM,oBAAoB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,GAChH,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC,CAAC,GAAG;IAC1E,IAAI,EAAE,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1C,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB,CAAC;AAKJ,MAAM,MAAM,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,oBAAoB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,KAAK,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAMjI,MAAM,MAAM,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,IAClC,CAAC,sBAAsB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG;IAAE,OAAO,EAAE,KAAK,CAAA;CAAE,CAAC,GAC9D,CAAC,sBAAsB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG;IAAE,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC,GAClE,CAAC,sBAAsB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,KAAK,CAAA;CAAE,CAAC,CAAC;AAEvF,MAAM,MAAM,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG;IACnG,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;CAC9B,GAAG,OAAO,CAAC,uBAAuB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;AAEjD,qBAAa,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAE,SAAQ,KAAK;IAC5D,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7C,YAAY,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAG/D;CACF;AAMD,MAAM,WAAW,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAE,SAAQ,sBAAsB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC;IAClG,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAMD,MAAM,WAAW,uBAAuB,CAAC,KAAK,EAAE,GAAG;IACjD,OAAO,EAAE,KAAK,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,GAAG,CAAC;IACf,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAMD,MAAM,MAAM,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,QAAQ,CAAC,uBAAuB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,GAC3F,sBAAsB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAK1C,eAAO,MAAM,YAAY;;;CAKf,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;AAKhF,oBAAY,QAAQ;IAElB,IAAI,SAAS;IAEb,OAAO,YAAY;IAEnB,QAAQ,aAAa;CACtB;AAKD,oBAAY,UAAU;IAEpB,QAAQ,aAAa;IAErB,OAAO,YAAY;IAEnB,KAAK,UAAU;CAChB;AAWD,MAAM,WAAW,aAAa,CAAC,KAAK,GAAG,OAAO,EAAE,GAAG,GAAG,OAAO,EAAE,GAAG,GAAG,OAAO;IAE1E,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC;IAE3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAQtB,MAAM,CAAC,OAAO,EAAE,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAStF,QAAQ,CAAC,CAAC,OAAO,EAAE,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAOtF,IAAI,CAAC,CAAC,OAAO,EAAE,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClE;AAKD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC;IAC9C,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;CACjC;AAKD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAKD,MAAM,MAAM,eAAe,GAAG,qBAAqB,GAAG,uBAAuB,CAAC;AA4F9E,qBAAa,MAAM;IACjB,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,MAAM,CAAuB;IAErC,OAAO,CAAC,OAAO,CAAoC;IAOnD,YAAY,OAAO,EAAE,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,EAErD;IAOD,QAAQ,IAAI;QACV,OAAO,EAAE,aAAa,EAAE,CAAC;QACzB,SAAS,EAAE,aAAa,EAAE,CAAC;KAC5B,CAKA;IAQD,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,aAAa,GAAG,aAAa,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,CAUjE;IAQD,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC,aAAa,GAAG,aAAa,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,CAUpE;IAWD,QAAQ,CAAC,GAAG,IAAI,EAAE,eAAe,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,CAiCnD;IAmBK,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CA2IvH;CACF"}
|
package/ts/esm/evento.js
CHANGED
|
@@ -2,6 +2,45 @@ import { AppContext } from "./app-context.js";
|
|
|
2
2
|
import { Option } from "./option.js";
|
|
3
3
|
import { ResolveOnce } from "./resolve-once.js";
|
|
4
4
|
import { exception2Result, Result } from "./result.js";
|
|
5
|
+
export class EventoSend {
|
|
6
|
+
provider;
|
|
7
|
+
constructor(provider) {
|
|
8
|
+
this.provider = provider;
|
|
9
|
+
}
|
|
10
|
+
start(trigger) {
|
|
11
|
+
trigger.stats.send.startTime = new Date();
|
|
12
|
+
if (this.provider.start) {
|
|
13
|
+
return this.provider.start(trigger);
|
|
14
|
+
}
|
|
15
|
+
return Promise.resolve(Result.Ok());
|
|
16
|
+
}
|
|
17
|
+
done(trigger) {
|
|
18
|
+
trigger.stats.send.doneTime = new Date();
|
|
19
|
+
if (this.provider.done) {
|
|
20
|
+
return this.provider.done(trigger);
|
|
21
|
+
}
|
|
22
|
+
return Promise.resolve(Result.Ok());
|
|
23
|
+
}
|
|
24
|
+
async send(trigger, data) {
|
|
25
|
+
const start = new Date();
|
|
26
|
+
const rSend = await this.provider.send(trigger, data);
|
|
27
|
+
const done = new Date();
|
|
28
|
+
const item = {
|
|
29
|
+
startTime: start,
|
|
30
|
+
doneTime: done,
|
|
31
|
+
item: rSend,
|
|
32
|
+
};
|
|
33
|
+
trigger.stats.send.items.push(item);
|
|
34
|
+
return Result.Ok(item);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export class TriggerResultError extends Error {
|
|
38
|
+
ctx;
|
|
39
|
+
constructor(message, ctx) {
|
|
40
|
+
super(message);
|
|
41
|
+
this.ctx = ctx;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
5
44
|
export const EventoResult = {
|
|
6
45
|
Continue: "continue",
|
|
7
46
|
Stop: "stop",
|
|
@@ -95,19 +134,39 @@ export class Evento {
|
|
|
95
134
|
});
|
|
96
135
|
}
|
|
97
136
|
async trigger(ictx) {
|
|
98
|
-
let stepCtx =
|
|
137
|
+
let stepCtx = null;
|
|
99
138
|
const toPost = [];
|
|
100
139
|
const startOnce = new ResolveOnce();
|
|
101
140
|
const res = await exception2Result(async () => {
|
|
141
|
+
const nullDate = new Date(0);
|
|
102
142
|
const ctx = {
|
|
103
143
|
...ictx,
|
|
104
144
|
encoder: ictx.encoder ?? this.encoder,
|
|
145
|
+
stats: ictx.stats ?? {
|
|
146
|
+
request: {
|
|
147
|
+
startTime: new Date(),
|
|
148
|
+
doneTime: nullDate,
|
|
149
|
+
},
|
|
150
|
+
encode: {
|
|
151
|
+
startTime: nullDate,
|
|
152
|
+
doneTime: nullDate,
|
|
153
|
+
},
|
|
154
|
+
handlers: [],
|
|
155
|
+
send: {
|
|
156
|
+
startTime: nullDate,
|
|
157
|
+
doneTime: nullDate,
|
|
158
|
+
items: [],
|
|
159
|
+
},
|
|
160
|
+
},
|
|
161
|
+
send: new EventoSend(ictx.send),
|
|
105
162
|
ctx: ictx.ctx ?? new AppContext(),
|
|
106
163
|
};
|
|
107
164
|
stepCtx = ctx;
|
|
108
165
|
const results = [];
|
|
109
166
|
if (!ctx.enRequest) {
|
|
167
|
+
ctx.stats.encode.startTime = new Date();
|
|
110
168
|
const rUnk = await this.encoder.encode(ctx.request);
|
|
169
|
+
ctx.stats.encode.doneTime = new Date();
|
|
111
170
|
if (rUnk.isErr()) {
|
|
112
171
|
return Result.Err(rUnk);
|
|
113
172
|
}
|
|
@@ -129,8 +188,27 @@ export class Evento {
|
|
|
129
188
|
if (hdl.post) {
|
|
130
189
|
toPost.push(hdl);
|
|
131
190
|
}
|
|
191
|
+
const stat = {
|
|
192
|
+
handler: hdl,
|
|
193
|
+
total: {
|
|
194
|
+
startTime: new Date(),
|
|
195
|
+
doneTime: nullDate,
|
|
196
|
+
},
|
|
197
|
+
validated: {
|
|
198
|
+
startTime: nullDate,
|
|
199
|
+
doneTime: nullDate,
|
|
200
|
+
},
|
|
201
|
+
handled: {
|
|
202
|
+
startTime: nullDate,
|
|
203
|
+
doneTime: nullDate,
|
|
204
|
+
},
|
|
205
|
+
};
|
|
206
|
+
ctx.stats.handlers.push(stat);
|
|
207
|
+
stat.validated.startTime = new Date();
|
|
132
208
|
const rData = await Promise.resolve(hdl.validate ? hdl.validate(validateCtx) : Result.Ok(Option.Some(ctx.enRequest)));
|
|
209
|
+
stat.validated.doneTime = new Date();
|
|
133
210
|
if (rData.isErr()) {
|
|
211
|
+
stat.total.doneTime = new Date();
|
|
134
212
|
return Result.Err(rData);
|
|
135
213
|
}
|
|
136
214
|
const data = rData.Ok();
|
|
@@ -143,19 +221,22 @@ export class Evento {
|
|
|
143
221
|
request: ctx.request,
|
|
144
222
|
enRequest: ctx.enRequest,
|
|
145
223
|
});
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
return Result.Err(rv);
|
|
150
|
-
}
|
|
151
|
-
return Result.Ok(hdlCtx);
|
|
152
|
-
}));
|
|
153
|
-
if (rStart.isErr()) {
|
|
154
|
-
return Result.Err(rStart);
|
|
224
|
+
const rStart = await startOnce.once(() => ctx.send.start(hdlCtx).then((rv) => {
|
|
225
|
+
if (rv.isErr()) {
|
|
226
|
+
return Result.Err(rv);
|
|
155
227
|
}
|
|
228
|
+
return Result.Ok(hdlCtx);
|
|
229
|
+
}));
|
|
230
|
+
if (rStart.isErr()) {
|
|
231
|
+
stat.total.doneTime = new Date();
|
|
232
|
+
return Result.Err(rStart);
|
|
156
233
|
}
|
|
234
|
+
stat.handled.startTime = new Date();
|
|
157
235
|
const rHandle = await hdl.handle(hdlCtx);
|
|
236
|
+
stat.handled.doneTime = new Date();
|
|
237
|
+
stat.total.doneTime = new Date();
|
|
158
238
|
if (rHandle.isErr()) {
|
|
239
|
+
stat.total.doneTime = new Date();
|
|
159
240
|
return Result.Err(rHandle);
|
|
160
241
|
}
|
|
161
242
|
results.push(hdl.hash);
|
|
@@ -165,10 +246,10 @@ export class Evento {
|
|
|
165
246
|
}
|
|
166
247
|
return Result.Ok(results);
|
|
167
248
|
});
|
|
249
|
+
if (!stepCtx) {
|
|
250
|
+
throw new Error("Internal error: stepCtx is null");
|
|
251
|
+
}
|
|
168
252
|
for (const hdl of toPost) {
|
|
169
|
-
if (res.isOk()) {
|
|
170
|
-
stepCtx.triggerResult = res.Ok();
|
|
171
|
-
}
|
|
172
253
|
await exception2Result(() => hdl.post(stepCtx));
|
|
173
254
|
}
|
|
174
255
|
if (res.isErr()) {
|
|
@@ -177,13 +258,12 @@ export class Evento {
|
|
|
177
258
|
await exception2Result(() => hdl.handle(stepCtx));
|
|
178
259
|
}
|
|
179
260
|
}
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
}
|
|
261
|
+
if (startOnce.value?.isOk()) {
|
|
262
|
+
const ctx = startOnce.value.Ok();
|
|
263
|
+
ctx.stats.request.doneTime = new Date();
|
|
264
|
+
await startOnce.value.Ok().send.done(ctx);
|
|
185
265
|
}
|
|
186
|
-
return
|
|
266
|
+
return Result.Ok(stepCtx);
|
|
187
267
|
}
|
|
188
268
|
}
|
|
189
269
|
//# sourceMappingURL=evento.js.map
|
package/ts/esm/evento.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evento.js","sourceRoot":"","sources":["../../../src/evento.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"evento.js","sourceRoot":"","sources":["../../../src/evento.ts"],"names":[],"mappings":"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"}
|