@adviser/cement 0.5.2 → 0.5.3
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/keyed-ng.test.cjs +6 -5
- package/cjs/keyed-ng.test.cjs.map +1 -1
- package/cjs/on-func.cjs +15 -1
- package/cjs/on-func.cjs.map +1 -1
- package/cjs/on-func.d.ts +1 -0
- package/cjs/on-func.d.ts.map +1 -1
- package/cjs/on-func.test.cjs +34 -0
- package/cjs/on-func.test.cjs.map +1 -1
- package/cjs/resolve-once.cjs +58 -39
- package/cjs/resolve-once.cjs.map +1 -1
- package/cjs/resolve-once.d.ts +29 -19
- package/cjs/resolve-once.d.ts.map +1 -1
- package/cjs/resolve-once.test.cjs +50 -27
- package/cjs/resolve-once.test.cjs.map +1 -1
- package/cjs/result.cjs +6 -0
- package/cjs/result.cjs.map +1 -1
- package/cjs/result.d.ts +2 -0
- package/cjs/result.d.ts.map +1 -1
- package/cjs/timeouted.cjs +13 -18
- package/cjs/timeouted.cjs.map +1 -1
- package/cjs/timeouted.d.ts +23 -27
- package/cjs/timeouted.d.ts.map +1 -1
- package/cjs/timeouted.test.cjs +30 -0
- package/cjs/timeouted.test.cjs.map +1 -1
- package/cjs/utils/to-sorted.d.ts +1 -1
- package/cjs/utils/to-sorted.d.ts.map +1 -1
- package/cjs/version.cjs +1 -1
- package/deno.json +1 -1
- package/esm/keyed-ng.test.js +6 -5
- package/esm/keyed-ng.test.js.map +1 -1
- package/esm/on-func.d.ts +1 -0
- package/esm/on-func.d.ts.map +1 -1
- package/esm/on-func.js +15 -1
- package/esm/on-func.js.map +1 -1
- package/esm/on-func.test.js +34 -0
- package/esm/on-func.test.js.map +1 -1
- package/esm/resolve-once.d.ts +29 -19
- package/esm/resolve-once.d.ts.map +1 -1
- package/esm/resolve-once.js +58 -39
- package/esm/resolve-once.js.map +1 -1
- package/esm/resolve-once.test.js +50 -27
- package/esm/resolve-once.test.js.map +1 -1
- package/esm/result.d.ts +2 -0
- package/esm/result.d.ts.map +1 -1
- package/esm/result.js +6 -0
- package/esm/result.js.map +1 -1
- package/esm/timeouted.d.ts +23 -27
- package/esm/timeouted.d.ts.map +1 -1
- package/esm/timeouted.js +13 -18
- package/esm/timeouted.js.map +1 -1
- package/esm/timeouted.test.js +31 -1
- package/esm/timeouted.test.js.map +1 -1
- package/esm/utils/to-sorted.d.ts +1 -1
- package/esm/utils/to-sorted.d.ts.map +1 -1
- package/esm/version.js +1 -1
- package/package.json +2 -2
- package/src/on-func.ts +39 -1
- package/src/resolve-once.ts +189 -113
- package/src/result.ts +7 -0
- package/src/timeouted.ts +39 -65
- package/src/utils/to-sorted.ts +1 -1
- package/ts/cjs/keyed-ng.test.js +6 -5
- package/ts/cjs/keyed-ng.test.js.map +1 -1
- package/ts/cjs/on-func.d.ts +1 -0
- package/ts/cjs/on-func.d.ts.map +1 -1
- package/ts/cjs/on-func.js +15 -1
- package/ts/cjs/on-func.js.map +1 -1
- package/ts/cjs/on-func.test.js +34 -0
- package/ts/cjs/on-func.test.js.map +1 -1
- package/ts/cjs/resolve-once.d.ts +29 -19
- package/ts/cjs/resolve-once.d.ts.map +1 -1
- package/ts/cjs/resolve-once.js +58 -39
- package/ts/cjs/resolve-once.js.map +1 -1
- package/ts/cjs/resolve-once.test.js +50 -27
- package/ts/cjs/resolve-once.test.js.map +1 -1
- package/ts/cjs/result.d.ts +2 -0
- package/ts/cjs/result.d.ts.map +1 -1
- package/ts/cjs/result.js +6 -0
- package/ts/cjs/result.js.map +1 -1
- package/ts/cjs/timeouted.d.ts +23 -27
- package/ts/cjs/timeouted.d.ts.map +1 -1
- package/ts/cjs/timeouted.js +13 -18
- package/ts/cjs/timeouted.js.map +1 -1
- package/ts/cjs/timeouted.test.js +30 -0
- package/ts/cjs/timeouted.test.js.map +1 -1
- package/ts/cjs/utils/to-sorted.d.ts +1 -1
- package/ts/cjs/utils/to-sorted.d.ts.map +1 -1
- package/ts/cjs/version.js +1 -1
- package/ts/esm/keyed-ng.test.js +6 -5
- package/ts/esm/keyed-ng.test.js.map +1 -1
- package/ts/esm/on-func.d.ts +1 -0
- package/ts/esm/on-func.d.ts.map +1 -1
- package/ts/esm/on-func.js +15 -1
- package/ts/esm/on-func.js.map +1 -1
- package/ts/esm/on-func.test.js +34 -0
- package/ts/esm/on-func.test.js.map +1 -1
- package/ts/esm/resolve-once.d.ts +29 -19
- package/ts/esm/resolve-once.d.ts.map +1 -1
- package/ts/esm/resolve-once.js +58 -39
- package/ts/esm/resolve-once.js.map +1 -1
- package/ts/esm/resolve-once.test.js +50 -27
- package/ts/esm/resolve-once.test.js.map +1 -1
- package/ts/esm/result.d.ts +2 -0
- package/ts/esm/result.d.ts.map +1 -1
- package/ts/esm/result.js +6 -0
- package/ts/esm/result.js.map +1 -1
- package/ts/esm/timeouted.d.ts +23 -27
- package/ts/esm/timeouted.d.ts.map +1 -1
- package/ts/esm/timeouted.js +13 -18
- package/ts/esm/timeouted.js.map +1 -1
- package/ts/esm/timeouted.test.js +31 -1
- package/ts/esm/timeouted.test.js.map +1 -1
- package/ts/esm/utils/to-sorted.d.ts +1 -1
- package/ts/esm/utils/to-sorted.d.ts.map +1 -1
- package/ts/esm/version.js +1 -1
package/src/timeouted.ts
CHANGED
|
@@ -2,45 +2,39 @@ import { Future } from "./future.js";
|
|
|
2
2
|
import { isPromise } from "./is-promise.js";
|
|
3
3
|
import { sleep } from "./promise-sleep.js";
|
|
4
4
|
|
|
5
|
-
export interface IsTimeouted {
|
|
6
|
-
isSuccess(): this is TimeoutResultSuccess<
|
|
7
|
-
isTimeout(): this is TimeoutResultTimeout<
|
|
8
|
-
isAborted(): this is TimeoutResultAborted<
|
|
9
|
-
isError(): this is TimeoutResultError<
|
|
5
|
+
export interface IsTimeouted<T, CTX> {
|
|
6
|
+
isSuccess(): this is TimeoutResultSuccess<T, CTX>;
|
|
7
|
+
isTimeout(): this is TimeoutResultTimeout<CTX>;
|
|
8
|
+
isAborted(): this is TimeoutResultAborted<CTX>;
|
|
9
|
+
isError(): this is TimeoutResultError<CTX>;
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
},
|
|
19
|
-
|
|
20
|
-
return (this as TimeoutResult<unknown>).state === "aborted";
|
|
21
|
-
},
|
|
22
|
-
isError(): this is TimeoutResultError<unknown> {
|
|
23
|
-
return (this as TimeoutResult<unknown>).state === "error";
|
|
24
|
-
},
|
|
25
|
-
};
|
|
12
|
+
function isTimeoutedMixin<T, CTX, R extends PurTimeoutResult<T>>(obj: R): R & IsTimeouted<T, CTX> {
|
|
13
|
+
return Object.assign(obj, {
|
|
14
|
+
isSuccess: () => isSuccess(obj),
|
|
15
|
+
isTimeout: () => isTimeout(obj),
|
|
16
|
+
isAborted: () => isAborted(obj),
|
|
17
|
+
isError: () => isError(obj),
|
|
18
|
+
}) as R & IsTimeouted<T, CTX>;
|
|
19
|
+
}
|
|
26
20
|
|
|
27
21
|
export interface PurTimeoutState {
|
|
28
22
|
readonly state: "success" | "timeout" | "aborted" | "error";
|
|
29
23
|
}
|
|
30
24
|
|
|
31
|
-
export interface PurTimeoutResultSuccess<T> extends
|
|
25
|
+
export interface PurTimeoutResultSuccess<T> extends PurTimeoutState {
|
|
32
26
|
readonly state: "success";
|
|
33
27
|
readonly value: T;
|
|
34
28
|
}
|
|
35
29
|
|
|
36
|
-
export interface PurTimeoutResultTimeout extends
|
|
30
|
+
export interface PurTimeoutResultTimeout extends PurTimeoutState {
|
|
37
31
|
readonly state: "timeout";
|
|
38
32
|
}
|
|
39
|
-
export interface PurTimeoutResultAborted extends
|
|
33
|
+
export interface PurTimeoutResultAborted extends PurTimeoutState {
|
|
40
34
|
readonly state: "aborted";
|
|
41
35
|
readonly reason: unknown;
|
|
42
36
|
}
|
|
43
|
-
export interface PurTimeoutResultError extends
|
|
37
|
+
export interface PurTimeoutResultError extends PurTimeoutState {
|
|
44
38
|
readonly state: "error";
|
|
45
39
|
readonly error: Error;
|
|
46
40
|
}
|
|
@@ -52,42 +46,19 @@ export interface TimeoutState<CTX> {
|
|
|
52
46
|
|
|
53
47
|
type PurTimeoutResult<T> = PurTimeoutResultSuccess<T> | PurTimeoutResultTimeout | PurTimeoutResultAborted | PurTimeoutResultError;
|
|
54
48
|
|
|
55
|
-
export type TimeoutResultSuccess<T, CTX = unknown> = PurTimeoutResultSuccess<T> & TimeoutState<CTX>;
|
|
56
|
-
export type TimeoutResultTimeout<CTX = unknown> = PurTimeoutResultTimeout & TimeoutState<CTX>;
|
|
57
|
-
export type TimeoutResultAborted<CTX = unknown> = PurTimeoutResultAborted & TimeoutState<CTX>;
|
|
58
|
-
export type TimeoutResultError<CTX = unknown> = PurTimeoutResultError & TimeoutState<CTX>;
|
|
49
|
+
export type TimeoutResultSuccess<T, CTX = unknown> = PurTimeoutResultSuccess<T> & TimeoutState<CTX> & IsTimeouted<T, CTX>;
|
|
50
|
+
export type TimeoutResultTimeout<CTX = unknown> = PurTimeoutResultTimeout & TimeoutState<CTX> & IsTimeouted<unknown, CTX>;
|
|
51
|
+
export type TimeoutResultAborted<CTX = unknown> = PurTimeoutResultAborted & TimeoutState<CTX> & IsTimeouted<unknown, CTX>;
|
|
52
|
+
export type TimeoutResultError<CTX = unknown> = PurTimeoutResultError & TimeoutState<CTX> & IsTimeouted<unknown, CTX>;
|
|
59
53
|
|
|
60
|
-
export type TimeoutResult<T, CTX
|
|
54
|
+
export type TimeoutResult<T, CTX> =
|
|
61
55
|
| TimeoutResultSuccess<T, CTX>
|
|
62
56
|
| TimeoutResultTimeout<CTX>
|
|
63
57
|
| TimeoutResultAborted<CTX>
|
|
64
58
|
| TimeoutResultError<CTX>;
|
|
65
59
|
|
|
66
|
-
export
|
|
67
|
-
|
|
68
|
-
"isSuccess" | "isTimeout" | "isAborted" | "isError"
|
|
69
|
-
> &
|
|
70
|
-
Partial<IsTimeouted> &
|
|
71
|
-
Partial<TimeoutState<CTX>>;
|
|
72
|
-
export type ObjTimeoutResultTimeout<CTX> = Omit<PurTimeoutResultTimeout, "isSuccess" | "isTimeout" | "isAborted" | "isError"> &
|
|
73
|
-
Partial<IsTimeouted> &
|
|
74
|
-
Partial<TimeoutState<CTX>>;
|
|
75
|
-
export type ObjTimeoutResultAborted<CTX> = Omit<PurTimeoutResultAborted, "isSuccess" | "isTimeout" | "isAborted" | "isError"> &
|
|
76
|
-
Partial<IsTimeouted> &
|
|
77
|
-
Partial<TimeoutState<CTX>>;
|
|
78
|
-
export type ObjTimeoutResultError<CTX> = Omit<PurTimeoutResultError, "isSuccess" | "isTimeout" | "isAborted" | "isError"> &
|
|
79
|
-
Partial<IsTimeouted> &
|
|
80
|
-
Partial<TimeoutState<CTX>>;
|
|
81
|
-
type PurTimeoutResultObj<T, CTX = unknown> =
|
|
82
|
-
| ObjTimeoutResultSuccess<T, CTX>
|
|
83
|
-
| ObjTimeoutResultTimeout<CTX>
|
|
84
|
-
| ObjTimeoutResultAborted<CTX>
|
|
85
|
-
| ObjTimeoutResultError<CTX>;
|
|
86
|
-
|
|
87
|
-
export function createTimeoutResult<T, CTX = unknown, TR extends PurTimeoutResultObj<T, CTX> = PurTimeoutResultObj<T, CTX>>(
|
|
88
|
-
t: TR,
|
|
89
|
-
): TimeoutResult<T, CTX> {
|
|
90
|
-
return { ...IsTimeoutedImpl, duration: 0, ...t } as TimeoutResult<T, CTX>;
|
|
60
|
+
export function createTimeoutResult<T, CTX>(t: PurTimeoutResult<T> & TimeoutState<CTX>): TimeoutResult<T, CTX> {
|
|
61
|
+
return { ...isTimeoutedMixin(t), ...t } as TimeoutResult<T, CTX>;
|
|
91
62
|
}
|
|
92
63
|
|
|
93
64
|
export type ActionFunc<T> = (controller: AbortController) => Promise<T>;
|
|
@@ -121,7 +92,7 @@ export interface TimeoutActionOptions<CTX> {
|
|
|
121
92
|
* @param result - The TimeoutResult to check
|
|
122
93
|
* @returns True if the result state is "success"
|
|
123
94
|
*/
|
|
124
|
-
export function isSuccess<T>(result:
|
|
95
|
+
export function isSuccess<T>(result: PurTimeoutResult<T>): result is TimeoutResultSuccess<T> {
|
|
125
96
|
return result.state === "success";
|
|
126
97
|
}
|
|
127
98
|
|
|
@@ -132,7 +103,7 @@ export function isSuccess<T>(result: TimeoutResult<T>): result is TimeoutResultS
|
|
|
132
103
|
* @param result - The TimeoutResult to check
|
|
133
104
|
* @returns True if the result state is "timeout"
|
|
134
105
|
*/
|
|
135
|
-
export function isTimeout<T>(result:
|
|
106
|
+
export function isTimeout<T>(result: PurTimeoutResult<T>): result is TimeoutResultTimeout<T> {
|
|
136
107
|
return result.state === "timeout";
|
|
137
108
|
}
|
|
138
109
|
|
|
@@ -143,7 +114,7 @@ export function isTimeout<T>(result: TimeoutResult<T>): result is TimeoutResultT
|
|
|
143
114
|
* @param result - The TimeoutResult to check
|
|
144
115
|
* @returns True if the result state is "aborted"
|
|
145
116
|
*/
|
|
146
|
-
export function isAborted<T>(result:
|
|
117
|
+
export function isAborted<T>(result: PurTimeoutResult<T>): result is TimeoutResultAborted<T> {
|
|
147
118
|
return result.state === "aborted";
|
|
148
119
|
}
|
|
149
120
|
|
|
@@ -154,7 +125,7 @@ export function isAborted<T>(result: TimeoutResult<T>): result is TimeoutResultA
|
|
|
154
125
|
* @param result - The TimeoutResult to check
|
|
155
126
|
* @returns True if the result state is "error"
|
|
156
127
|
*/
|
|
157
|
-
export function isError<T>(result:
|
|
128
|
+
export function isError<T>(result: PurTimeoutResult<T>): result is TimeoutResultError<T> {
|
|
158
129
|
return result.state === "error";
|
|
159
130
|
}
|
|
160
131
|
|
|
@@ -166,7 +137,7 @@ export function isError<T>(result: TimeoutResult<T>): result is TimeoutResultErr
|
|
|
166
137
|
* @returns The success value
|
|
167
138
|
* @throws Error if the result is not in success state
|
|
168
139
|
*/
|
|
169
|
-
export function unwrap<T>(result: TimeoutResult<T>): T {
|
|
140
|
+
export function unwrap<T, CTX>(result: TimeoutResult<T, CTX>): T {
|
|
170
141
|
if (isSuccess(result)) {
|
|
171
142
|
return result.value;
|
|
172
143
|
}
|
|
@@ -181,7 +152,7 @@ export function unwrap<T>(result: TimeoutResult<T>): T {
|
|
|
181
152
|
* @param defaultValue - The value to return if result is not successful
|
|
182
153
|
* @returns The success value or the default value
|
|
183
154
|
*/
|
|
184
|
-
export function unwrapOr<T>(result: TimeoutResult<T>, defaultValue: T): T {
|
|
155
|
+
export function unwrapOr<T, CTX>(result: TimeoutResult<T, CTX>, defaultValue: T): T {
|
|
185
156
|
return isSuccess(result) ? result.value : defaultValue;
|
|
186
157
|
}
|
|
187
158
|
|
|
@@ -236,7 +207,7 @@ export function unwrapOr<T>(result: TimeoutResult<T>, defaultValue: T): T {
|
|
|
236
207
|
export async function timeouted<T, CTX = void>(
|
|
237
208
|
action: TimeoutAction<T>,
|
|
238
209
|
options: Partial<TimeoutActionOptions<CTX>> = {},
|
|
239
|
-
): Promise<TimeoutResult<T>> {
|
|
210
|
+
): Promise<TimeoutResult<T, CTX>> {
|
|
240
211
|
const { timeout = 30000, signal, controller: externalController, ctx, onTimeout, onAbort, onError } = options;
|
|
241
212
|
|
|
242
213
|
const controller = externalController || new AbortController();
|
|
@@ -277,11 +248,14 @@ export async function timeouted<T, CTX = void>(
|
|
|
277
248
|
try {
|
|
278
249
|
toAwait = action(controller);
|
|
279
250
|
} catch (error) {
|
|
280
|
-
return cleanup(
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
251
|
+
return cleanup(
|
|
252
|
+
createTimeoutResult<T, CTX>({
|
|
253
|
+
state: "error",
|
|
254
|
+
error: error instanceof Error ? error : new Error(error as string),
|
|
255
|
+
duration: Date.now() - startTime,
|
|
256
|
+
ctx: ctx as CTX,
|
|
257
|
+
}),
|
|
258
|
+
);
|
|
285
259
|
}
|
|
286
260
|
}
|
|
287
261
|
|
package/src/utils/to-sorted.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type TouchType = bigint | Date | symbol | string | boolean | number | Uint8Array | null | undefined | object
|
|
1
|
+
export type TouchType = bigint | Date | symbol | string | boolean | number | Uint8Array | null | undefined | object;
|
|
2
2
|
export type TouchFn = (value: TouchType, type: keyof typeof TouchTypes) => void;
|
|
3
3
|
|
|
4
4
|
export const TouchTypes = {
|
package/ts/cjs/keyed-ng.test.js
CHANGED
|
@@ -15,17 +15,18 @@ describe("KeyedFactory with ResolveOnce", () => {
|
|
|
15
15
|
key2string: (givenKey) => givenKey.x + "---" + givenKey.y,
|
|
16
16
|
ctx: { bla: true },
|
|
17
17
|
});
|
|
18
|
-
const once = my.get({ x: 3, y: 4 }, { bla: false }).once((
|
|
18
|
+
const once = my.get({ x: 3, y: 4 }, { bla: false }).once((ronce) => {
|
|
19
|
+
const { refKey, givenKey, ctx } = ronce.ctx;
|
|
19
20
|
return {
|
|
20
21
|
resX: givenKey.x * 2,
|
|
21
22
|
resY: givenKey.y * 3,
|
|
22
23
|
keyItem: {
|
|
23
|
-
|
|
24
|
+
refKey,
|
|
24
25
|
givenKey,
|
|
25
26
|
value: {
|
|
26
27
|
X: givenKey.x,
|
|
27
28
|
Y: givenKey.y,
|
|
28
|
-
|
|
29
|
+
refKey,
|
|
29
30
|
},
|
|
30
31
|
ctx,
|
|
31
32
|
},
|
|
@@ -35,9 +36,9 @@ describe("KeyedFactory with ResolveOnce", () => {
|
|
|
35
36
|
resX: 6,
|
|
36
37
|
resY: 12,
|
|
37
38
|
keyItem: {
|
|
38
|
-
|
|
39
|
+
refKey: "3---4",
|
|
39
40
|
givenKey: { x: 3, y: 4 },
|
|
40
|
-
value: { X: 3, Y: 4,
|
|
41
|
+
value: { X: 3, Y: 4, refKey: "3---4" },
|
|
41
42
|
ctx: { bla: false },
|
|
42
43
|
},
|
|
43
44
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyed-ng.test.js","sourceRoot":"","sources":["../../../src/keyed-ng.test.ts"],"names":[],"mappings":";;AAAA,+CAAqD;AACrD,uDAA4D;AAuB5D,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE,CAAC;IAC9C,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE,CAAC;QAClC,MAAM,EAAE,GAAG,IAAI,qBAAO,CAAC;YACrB,WAAW,EAAE,CAAC,IAAI,EAA+E,EAAE,CAAC;gBAClG,OAAO,IAAI,6BAAW,CAAiE;oBACrF,GAAG,IAAI;oBACP,KAAK,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;oBACtE,GAAG,EAAE,IAAI,CAAC,GAAG;iBACd,CAAC,CAAC;YAAA,CACJ;YACD,UAAU,EAAE,CAAC,QAAqB,EAAU,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC;YAC9E,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE;SACnB,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"keyed-ng.test.js","sourceRoot":"","sources":["../../../src/keyed-ng.test.ts"],"names":[],"mappings":"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"}
|
package/ts/cjs/on-func.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export interface ReturnOnFunc<Args extends any[], X = unknown> {
|
|
|
8
8
|
invoke(...a: Args): void;
|
|
9
9
|
invokeAsync(...a: Args): Promise<void>;
|
|
10
10
|
clear(): void;
|
|
11
|
+
once(fn: (...a: Args) => void): () => unknown;
|
|
11
12
|
}
|
|
12
13
|
type ExtractArgs<T, X> = T extends (...args: infer A) => OnFuncReturn | X ? A : never;
|
|
13
14
|
export declare function OnFunc<Fn extends (...args: any[]) => OnFuncReturn | X, X = unknown>(): ReturnOnFunc<ExtractArgs<Fn, X>>;
|
package/ts/cjs/on-func.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"on-func.d.ts","sourceRoot":"","sources":["../../../src/on-func.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"on-func.d.ts","sourceRoot":"","sources":["../../../src/on-func.ts"],"names":[],"mappings":"AA8DA,eAAO,MAAM,YAAY,EAAE;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CAId,CAAC;AACX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;AAG5E,MAAM,WAAW,YAAY,CAAC,IAAI,SAAS,GAAG,EAAE,EAAE,CAAC,GAAG,OAAO;IAC3D,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,KAAK,YAAY,GAAG,CAAC,GAAG,MAAM,OAAO,CAAC;IACtD,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACzB,WAAW,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,KAAK,IAAI,IAAI,CAAC;IACd,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,KAAK,IAAI,GAAG,MAAM,OAAO,CAAC;CAC/C;AAED,KAAK,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,YAAY,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAgEtF,wBAAgB,MAAM,CAAC,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,YAAY,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,KAAK,YAAY,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAQvH"}
|
package/ts/cjs/on-func.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.OnFuncReturn = void 0;
|
|
4
4
|
exports.OnFunc = OnFunc;
|
|
5
5
|
const is_promise_js_1 = require("./is-promise.js");
|
|
6
|
+
const result_js_1 = require("./result.js");
|
|
6
7
|
class OnFuncInstance {
|
|
7
8
|
#fns = new Set();
|
|
8
9
|
addFunction(fn) {
|
|
@@ -11,7 +12,19 @@ class OnFuncInstance {
|
|
|
11
12
|
this.unreg(exports.OnFuncReturn.UNREGISTER, fn);
|
|
12
13
|
};
|
|
13
14
|
}
|
|
15
|
+
once(fn) {
|
|
16
|
+
return this.addFunction((...a) => {
|
|
17
|
+
(0, result_js_1.exception2Result)(() => fn(...a));
|
|
18
|
+
return exports.OnFuncReturn.ONCE;
|
|
19
|
+
});
|
|
20
|
+
}
|
|
14
21
|
unreg(ret, fn) {
|
|
22
|
+
if (result_js_1.Result.Is(ret)) {
|
|
23
|
+
if (ret.isErr()) {
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
ret = ret.unwrap();
|
|
27
|
+
}
|
|
15
28
|
if (ret === exports.OnFuncReturn.UNREGISTER || ret === exports.OnFuncReturn.ONCE) {
|
|
16
29
|
this.#fns.delete(fn);
|
|
17
30
|
return undefined;
|
|
@@ -21,7 +34,7 @@ class OnFuncInstance {
|
|
|
21
34
|
invoke(...a) {
|
|
22
35
|
for (const fn of this.#fns) {
|
|
23
36
|
try {
|
|
24
|
-
const couldByPlainOrPromise = fn(...a);
|
|
37
|
+
const couldByPlainOrPromise = (0, result_js_1.exception2Result)(() => fn(...a));
|
|
25
38
|
if ((0, is_promise_js_1.isPromise)(couldByPlainOrPromise)) {
|
|
26
39
|
void couldByPlainOrPromise.then((ret) => {
|
|
27
40
|
this.unreg(ret, fn);
|
|
@@ -53,6 +66,7 @@ function OnFunc() {
|
|
|
53
66
|
ret.invoke = instance.invoke.bind(instance);
|
|
54
67
|
ret.invokeAsync = instance.invokeAsync.bind(instance);
|
|
55
68
|
ret.clear = instance.clear.bind(instance);
|
|
69
|
+
ret.once = instance.once.bind(instance);
|
|
56
70
|
return ret;
|
|
57
71
|
}
|
|
58
72
|
//# sourceMappingURL=on-func.js.map
|
package/ts/cjs/on-func.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"on-func.js","sourceRoot":"","sources":["../../../src/on-func.ts"],"names":[],"mappings":";;;;AAAA,mDAA4C;
|
|
1
|
+
{"version":3,"file":"on-func.js","sourceRoot":"","sources":["../../../src/on-func.ts"],"names":[],"mappings":"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"}
|
package/ts/cjs/on-func.test.js
CHANGED
|
@@ -94,4 +94,38 @@ it("OnFunctionTest unregister from the callback", async () => {
|
|
|
94
94
|
[2, "23"],
|
|
95
95
|
]);
|
|
96
96
|
});
|
|
97
|
+
it("OnFunctionTest exception", () => {
|
|
98
|
+
const test = new OnFunctionTest();
|
|
99
|
+
const fn1 = vi.fn(() => {
|
|
100
|
+
throw new Error("fn1 error");
|
|
101
|
+
});
|
|
102
|
+
test.onFunAction(fn1);
|
|
103
|
+
const fn2 = vi.fn();
|
|
104
|
+
test.onFunAction(fn2);
|
|
105
|
+
const fn3 = vi.fn(() => {
|
|
106
|
+
return Promise.reject(new Error("fn3 error"));
|
|
107
|
+
});
|
|
108
|
+
test.onFunAction(fn3);
|
|
109
|
+
const fn4 = vi.fn();
|
|
110
|
+
test.onFunAction(fn4);
|
|
111
|
+
test.onFunAction.invoke(1, "13");
|
|
112
|
+
expect(fn1.mock.calls).toEqual([[1, "13"]]);
|
|
113
|
+
expect(fn2.mock.calls).toEqual([[1, "13"]]);
|
|
114
|
+
expect(fn3.mock.calls).toEqual([[1, "13"]]);
|
|
115
|
+
expect(fn4.mock.calls).toEqual([[1, "13"]]);
|
|
116
|
+
});
|
|
117
|
+
it("OnFunctionTest once", () => {
|
|
118
|
+
const test = new OnFunctionTest();
|
|
119
|
+
const fn1 = vi.fn();
|
|
120
|
+
test.onFunAction.once(fn1);
|
|
121
|
+
const fn2 = vi.fn();
|
|
122
|
+
test.onFunAction(fn2);
|
|
123
|
+
test.onFunAction.invoke(1, "13");
|
|
124
|
+
test.onFunAction.invoke(2, "23");
|
|
125
|
+
expect(fn1.mock.calls).toEqual([[1, "13"]]);
|
|
126
|
+
expect(fn2.mock.calls).toEqual([
|
|
127
|
+
[1, "13"],
|
|
128
|
+
[2, "23"],
|
|
129
|
+
]);
|
|
130
|
+
});
|
|
97
131
|
//# sourceMappingURL=on-func.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"on-func.test.js","sourceRoot":"","sources":["../../../src/on-func.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"on-func.test.js","sourceRoot":"","sources":["../../../src/on-func.test.ts"],"names":[],"mappings":"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"}
|
package/ts/cjs/resolve-once.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Future } from "./future.js";
|
|
2
|
-
import { UnPromisify } from "./is-promise.js";
|
|
3
2
|
import { UnregFn } from "./lru-map-set.js";
|
|
4
3
|
import { Result } from "./result.js";
|
|
5
4
|
import { Option } from "./option.js";
|
|
@@ -20,33 +19,44 @@ export declare class ResolveSeq<T, CTX extends NonNullable<object> = object> {
|
|
|
20
19
|
add<R extends Promise<T> | T>(fn: (c: CTX) => R, id?: number): R;
|
|
21
20
|
}
|
|
22
21
|
type ResolveState = "initial" | "processed" | "waiting" | "processing";
|
|
23
|
-
export type ResultOnce<R> = R extends Promise<
|
|
24
|
-
export interface
|
|
22
|
+
export type ResultOnce<R> = R extends Promise<unknown> ? Promise<Awaited<R>> : R;
|
|
23
|
+
export interface OnceActionArg<R, CTX> {
|
|
24
|
+
readonly ctx: CTX;
|
|
25
|
+
readonly self: ResolveOnceIf<R, CTX>;
|
|
26
|
+
}
|
|
27
|
+
export interface ResolveOnceIf<R, CTX> {
|
|
25
28
|
get ready(): boolean;
|
|
26
|
-
get value():
|
|
29
|
+
get value(): R | undefined;
|
|
27
30
|
get error(): Error | undefined;
|
|
28
31
|
get state(): ResolveState;
|
|
29
|
-
|
|
30
|
-
|
|
32
|
+
setResetAfter(ms?: number): void;
|
|
33
|
+
once<RET extends R | Promise<R>>(fn: (arg: OnceActionArg<R, CTX>) => RET): ResultOnce<RET>;
|
|
34
|
+
reset<RET extends R | Promise<R>>(fn?: (arg: OnceActionArg<R, CTX>) => RET): ResultOnce<RET>;
|
|
35
|
+
setProcessed(state: StateInstance): void;
|
|
36
|
+
}
|
|
37
|
+
export interface SyncOrAsyncIf<T> {
|
|
38
|
+
get value(): T | undefined;
|
|
39
|
+
get error(): Error | undefined;
|
|
40
|
+
get queueLength(): number;
|
|
41
|
+
resolve<RET extends T | Promise<T>>(fn: () => RET): ResultOnce<RET>;
|
|
31
42
|
}
|
|
32
|
-
export
|
|
43
|
+
export type SyncOrAsync<T> = Option<SyncOrAsyncIf<T>>;
|
|
44
|
+
export declare class SyncResolveOnce<T, CTX> implements SyncOrAsyncIf<T> {
|
|
33
45
|
#private;
|
|
34
46
|
readonly queueLength: number;
|
|
35
47
|
constructor(rOnce: ResolveOnce<T, CTX>, state: StateInstance);
|
|
36
48
|
get value(): T | undefined;
|
|
37
49
|
get error(): Error | undefined;
|
|
38
50
|
get ready(): boolean;
|
|
39
|
-
resolve(fn: (
|
|
40
|
-
reset(fn?: (c?: CTX) => T): T | undefined;
|
|
51
|
+
resolve<RET extends T | Promise<T>>(fn: () => RET): ResultOnce<RET>;
|
|
41
52
|
}
|
|
42
|
-
export declare class AsyncResolveOnce<T, CTX
|
|
53
|
+
export declare class AsyncResolveOnce<T, CTX> implements SyncOrAsyncIf<T> {
|
|
43
54
|
#private;
|
|
44
|
-
constructor(rOnce:
|
|
55
|
+
constructor(rOnce: ResolveOnceIf<T, CTX>, state: StateInstance, prev: SyncOrAsync<T>);
|
|
45
56
|
get queueLength(): number;
|
|
46
|
-
get value():
|
|
57
|
+
get value(): T | undefined;
|
|
47
58
|
get error(): Error | undefined;
|
|
48
|
-
resolve(fn: (
|
|
49
|
-
reset(fn?: (c?: CTX) => T): T;
|
|
59
|
+
resolve<RET extends T | Promise<T>>(fn: () => RET): ResultOnce<RET>;
|
|
50
60
|
}
|
|
51
61
|
export interface ResolveOnceOpts {
|
|
52
62
|
readonly resetAfter?: number;
|
|
@@ -65,20 +75,20 @@ declare class StateInstance {
|
|
|
65
75
|
setWaiting(): void;
|
|
66
76
|
equals(other: StateInstance): boolean;
|
|
67
77
|
}
|
|
68
|
-
type SyncOrAsync<T, CTX> = Option<SyncResolveOnce<T, CTX> | AsyncResolveOnce<T, CTX>>;
|
|
69
78
|
export declare class ResolveOnce<T, CTX = void> implements ResolveOnceIf<T, CTX> {
|
|
70
79
|
#private;
|
|
71
80
|
resetAfterTimer?: ReturnType<typeof setTimeout>;
|
|
72
|
-
readonly
|
|
81
|
+
readonly _onceArg: OnceActionArg<T, CTX>;
|
|
73
82
|
constructor(ctx?: CTX, opts?: ResolveOnceOpts);
|
|
74
83
|
get state(): ResolveState;
|
|
75
84
|
setProcessed(state: StateInstance): void;
|
|
76
85
|
get ready(): boolean;
|
|
77
|
-
get value():
|
|
86
|
+
get value(): T | undefined;
|
|
78
87
|
get queueLength(): number;
|
|
79
88
|
get error(): Error | undefined;
|
|
80
|
-
once<
|
|
81
|
-
reset<
|
|
89
|
+
once<RET extends T | Promise<T>>(fn: (arg: OnceActionArg<T, CTX>) => RET): ResultOnce<RET>;
|
|
90
|
+
reset<RET extends T | Promise<T>>(fn?: (arg: OnceActionArg<T, CTX>) => RET): ResultOnce<RET>;
|
|
91
|
+
setResetAfter(ms?: number): void;
|
|
82
92
|
}
|
|
83
93
|
export interface KeyItem<K, V> {
|
|
84
94
|
readonly key: K;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-once.d.ts","sourceRoot":"","sources":["../../../src/resolve-once.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"resolve-once.d.ts","sourceRoot":"","sources":["../../../src/resolve-once.ts"],"names":[],"mappings":"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"}
|