runtry 0.7.0 → 0.8.0
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/dist/error/builder.d.ts +12 -0
- package/dist/error/builder.d.ts.map +1 -0
- package/dist/error/builder.js +21 -0
- package/dist/error/builder.js.map +1 -0
- package/dist/error/core.d.ts +41 -0
- package/dist/error/core.d.ts.map +1 -0
- package/dist/error/core.js +101 -0
- package/dist/error/core.js.map +1 -0
- package/dist/error/rules.d.ts +9 -7
- package/dist/error/rules.d.ts.map +1 -1
- package/dist/error/rules.js.map +1 -1
- package/dist/error/types.d.ts +7 -3
- package/dist/error/types.d.ts.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/runner/runner.d.ts +11 -5
- package/dist/runner/runner.d.ts.map +1 -1
- package/dist/runner/runner.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { AppError, Rule } from "./types";
|
|
2
|
+
declare class ErrorRuleBuilder<E> {
|
|
3
|
+
private readonly matcher;
|
|
4
|
+
constructor(matcher: (err: unknown) => err is E);
|
|
5
|
+
toError<const Out extends AppError>(mapper: (err: E) => Out): Rule<Out>;
|
|
6
|
+
}
|
|
7
|
+
export declare const errorRule: {
|
|
8
|
+
instance<E extends new (...args: any[]) => any>(ctor: E): ErrorRuleBuilder<InstanceType<E>>;
|
|
9
|
+
when<E = unknown>(predicate: (err: unknown) => err is E): ErrorRuleBuilder<E>;
|
|
10
|
+
};
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/error/builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE9C,cAAM,gBAAgB,CAAC,CAAC;IACV,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,GAAG,IAAI,CAAC;IAEhE,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS,QAAQ,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;CAMxE;AAED,eAAO,MAAM,SAAS;aACX,CAAC,SAAS,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,QAAQ,CAAC;SAMlD,CAAC,uBAAuB,CAAC,GAAG,EAAE,OAAO,KAAK,GAAG,IAAI,CAAC;CAGxD,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
class ErrorRuleBuilder {
|
|
2
|
+
constructor(matcher) {
|
|
3
|
+
this.matcher = matcher;
|
|
4
|
+
}
|
|
5
|
+
toError(mapper) {
|
|
6
|
+
return (err) => {
|
|
7
|
+
if (!this.matcher(err))
|
|
8
|
+
return null;
|
|
9
|
+
return mapper(err);
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export const errorRule = {
|
|
14
|
+
instance(ctor) {
|
|
15
|
+
return new ErrorRuleBuilder((err) => err instanceof ctor);
|
|
16
|
+
},
|
|
17
|
+
when(predicate) {
|
|
18
|
+
return new ErrorRuleBuilder(predicate);
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/error/builder.ts"],"names":[],"mappings":"AAEA,MAAM,gBAAgB;IACpB,YAA6B,OAAmC;QAAnC,YAAO,GAAP,OAAO,CAA4B;IAAG,CAAC;IAEpE,OAAO,CAA6B,MAAuB;QACzD,OAAO,CAAC,GAAY,EAAE,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC;YACpC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC,CAAC;IACJ,CAAC;CACF;AAED,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,QAAQ,CAAwC,IAAO;QACrD,OAAO,IAAI,gBAAgB,CACzB,CAAC,GAAG,EAA0B,EAAE,CAAC,GAAG,YAAY,IAAI,CACrD,CAAC;IACJ,CAAC;IAED,IAAI,CAAc,SAAqC;QACrD,OAAO,IAAI,gBAAgB,CAAI,SAAS,CAAC,CAAC;IAC5C,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { AppError, Rule } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* AbortError (AbortController, fetch abort, etc)
|
|
4
|
+
*/
|
|
5
|
+
export declare const abort: () => Rule<AppError<"ABORTED">>;
|
|
6
|
+
/**
|
|
7
|
+
* Timeout errors (AbortSignal.timeout, libs, etc)
|
|
8
|
+
*/
|
|
9
|
+
export declare const timeout: () => Rule<AppError<"TIMEOUT">>;
|
|
10
|
+
/**
|
|
11
|
+
* HTTP-like errors (status / statusCode)
|
|
12
|
+
*/
|
|
13
|
+
export declare const httpStatus: () => Rule<AppError<"HTTP">>;
|
|
14
|
+
/**
|
|
15
|
+
* AggregateError (Promise.any, etc)
|
|
16
|
+
*/
|
|
17
|
+
export declare const aggregate: () => Rule<AppError<"UNKNOWN", {
|
|
18
|
+
errors: unknown[];
|
|
19
|
+
}>>;
|
|
20
|
+
/**
|
|
21
|
+
* String thrown errors
|
|
22
|
+
*/
|
|
23
|
+
export declare const string: () => Rule<AppError<"UNKNOWN">>;
|
|
24
|
+
/**
|
|
25
|
+
* Message-like objects (final fallback)
|
|
26
|
+
*/
|
|
27
|
+
export declare const message: () => Rule<AppError<"UNKNOWN">>;
|
|
28
|
+
/**
|
|
29
|
+
* Namespace export
|
|
30
|
+
*/
|
|
31
|
+
export declare const rules: {
|
|
32
|
+
abort: () => Rule<AppError<"ABORTED">>;
|
|
33
|
+
timeout: () => Rule<AppError<"TIMEOUT">>;
|
|
34
|
+
httpStatus: () => Rule<AppError<"HTTP">>;
|
|
35
|
+
aggregate: () => Rule<AppError<"UNKNOWN", {
|
|
36
|
+
errors: unknown[];
|
|
37
|
+
}>>;
|
|
38
|
+
string: () => Rule<AppError<"UNKNOWN">>;
|
|
39
|
+
message: () => Rule<AppError<"UNKNOWN">>;
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/error/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE9C;;GAEG;AACH,eAAO,MAAM,KAAK,QAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAchD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,OAAO,QAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAclD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,QAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAclD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,QAChB,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;IAAE,MAAM,EAAE,OAAO,EAAE,CAAA;CAAE,CAAC,CAalD,CAAC;AAEJ;;GAEG;AACH,eAAO,MAAM,MAAM,QAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAKjD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,OAAO,QAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAclD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,KAAK;iBAzGO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;mBAmBvB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;sBAmBtB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;qBAoB9C,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;QAAE,MAAM,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC,CAAC;kBAkB5B,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;mBAUxB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;CA0BnD,CAAC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AbortError (AbortController, fetch abort, etc)
|
|
3
|
+
*/
|
|
4
|
+
export const abort = () => (err) => {
|
|
5
|
+
if (err instanceof DOMException && err.name === "AbortError") {
|
|
6
|
+
return { code: "ABORTED", message: "Request cancelled", cause: err };
|
|
7
|
+
}
|
|
8
|
+
if (err instanceof Error && err.name === "AbortError") {
|
|
9
|
+
return {
|
|
10
|
+
code: "ABORTED",
|
|
11
|
+
message: err.message || "Request cancelled",
|
|
12
|
+
cause: err,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
return null;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Timeout errors (AbortSignal.timeout, libs, etc)
|
|
19
|
+
*/
|
|
20
|
+
export const timeout = () => (err) => {
|
|
21
|
+
if (err instanceof DOMException && err.name === "TimeoutError") {
|
|
22
|
+
return { code: "TIMEOUT", message: "Request timed out", cause: err };
|
|
23
|
+
}
|
|
24
|
+
if (err instanceof Error && err.name === "TimeoutError") {
|
|
25
|
+
return {
|
|
26
|
+
code: "TIMEOUT",
|
|
27
|
+
message: err.message || "Request timed out",
|
|
28
|
+
cause: err,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
return null;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* HTTP-like errors (status / statusCode)
|
|
35
|
+
*/
|
|
36
|
+
export const httpStatus = () => (err) => {
|
|
37
|
+
if (typeof err === "object" && err !== null) {
|
|
38
|
+
const status = err.status ?? err.statusCode;
|
|
39
|
+
if (typeof status === "number") {
|
|
40
|
+
return {
|
|
41
|
+
code: "HTTP",
|
|
42
|
+
message: err.message || `HTTP Error ${status}`,
|
|
43
|
+
status,
|
|
44
|
+
cause: err,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return null;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* AggregateError (Promise.any, etc)
|
|
52
|
+
*/
|
|
53
|
+
export const aggregate = () => (err) => {
|
|
54
|
+
if (typeof AggregateError !== "undefined" &&
|
|
55
|
+
err instanceof AggregateError) {
|
|
56
|
+
return {
|
|
57
|
+
code: "UNKNOWN",
|
|
58
|
+
message: err.message || "Multiple errors occurred",
|
|
59
|
+
cause: err,
|
|
60
|
+
meta: { errors: err.errors },
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
return null;
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* String thrown errors
|
|
67
|
+
*/
|
|
68
|
+
export const string = () => (err) => {
|
|
69
|
+
if (typeof err === "string") {
|
|
70
|
+
return { code: "UNKNOWN", message: err, cause: err };
|
|
71
|
+
}
|
|
72
|
+
return null;
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* Message-like objects (final fallback)
|
|
76
|
+
*/
|
|
77
|
+
export const message = () => (err) => {
|
|
78
|
+
if (typeof err === "object" &&
|
|
79
|
+
err !== null &&
|
|
80
|
+
"message" in err &&
|
|
81
|
+
typeof err.message === "string") {
|
|
82
|
+
return {
|
|
83
|
+
code: "UNKNOWN",
|
|
84
|
+
message: err.message,
|
|
85
|
+
cause: err,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
return null;
|
|
89
|
+
};
|
|
90
|
+
/**
|
|
91
|
+
* Namespace export
|
|
92
|
+
*/
|
|
93
|
+
export const rules = {
|
|
94
|
+
abort,
|
|
95
|
+
timeout,
|
|
96
|
+
httpStatus,
|
|
97
|
+
aggregate,
|
|
98
|
+
string,
|
|
99
|
+
message,
|
|
100
|
+
};
|
|
101
|
+
//# sourceMappingURL=core.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/error/core.ts"],"names":[],"mappings":"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"}
|
package/dist/error/rules.d.ts
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import type { AppError, Rule } from "./types";
|
|
2
|
-
export declare const abortRule: Rule
|
|
3
|
-
export declare const timeoutRule: Rule
|
|
4
|
-
export declare const messageRule: Rule
|
|
5
|
-
export declare const stringRule: Rule
|
|
6
|
-
export declare const statusRule: Rule
|
|
7
|
-
export declare const aggregateRule: Rule
|
|
2
|
+
export declare const abortRule: Rule<AppError<"ABORTED">>;
|
|
3
|
+
export declare const timeoutRule: Rule<AppError<"TIMEOUT">>;
|
|
4
|
+
export declare const messageRule: Rule<AppError<"UNKNOWN">>;
|
|
5
|
+
export declare const stringRule: Rule<AppError<"UNKNOWN">>;
|
|
6
|
+
export declare const statusRule: Rule<AppError<"HTTP">>;
|
|
7
|
+
export declare const aggregateRule: Rule<AppError<"UNKNOWN", {
|
|
8
|
+
errors: any[];
|
|
9
|
+
}>>;
|
|
8
10
|
declare class ErrorRuleBuilder<E> {
|
|
9
11
|
private readonly matcher;
|
|
10
12
|
constructor(matcher: (err: unknown) => err is E);
|
|
11
|
-
toError<Out extends AppError>(mapper: (err: E) => Out): Rule<Out>;
|
|
13
|
+
toError<const Out extends AppError>(mapper: (err: E) => Out): Rule<Out>;
|
|
12
14
|
}
|
|
13
15
|
export declare const errorRule: {
|
|
14
16
|
instance<E extends new (...args: any[]) => any>(ctor: E): ErrorRuleBuilder<InstanceType<E>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/error/rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG9C,eAAO,MAAM,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/error/rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG9C,eAAO,MAAM,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAK/C,CAAC;AAGF,eAAO,MAAM,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAajD,CAAC;AAGF,eAAO,MAAM,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAcjD,CAAC;AAGF,eAAO,MAAM,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAShD,CAAC;AAGF,eAAO,MAAM,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAe7C,CAAC;AAGF,eAAO,MAAM,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;IAAE,MAAM,EAAE,GAAG,EAAE,CAAA;CAAE,CAAC,CAYtE,CAAC;AAEF,cAAM,gBAAgB,CAAC,CAAC;IACV,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,GAAG,IAAI,CAAC;IAEhE,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS,QAAQ,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;CAMxE;AAED,eAAO,MAAM,SAAS;aACX,CAAC,SAAS,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,QAAQ,CAAC;SAMlD,CAAC,uBAAuB,CAAC,GAAG,EAAE,OAAO,KAAK,GAAG,IAAI,CAAC;CAGxD,CAAC"}
|
package/dist/error/rules.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/error/rules.ts"],"names":[],"mappings":"AAEA,uEAAuE;AACvE,MAAM,CAAC,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/error/rules.ts"],"names":[],"mappings":"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"}
|
package/dist/error/types.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
export type AppErrorCode = "ABORTED" | "NETWORK" | "TIMEOUT" | "VALIDATION" | "HTTP" | "UNKNOWN";
|
|
2
|
-
export type Rule<E extends AppError = AppError> = (err: unknown) => E | null;
|
|
3
2
|
/**
|
|
4
3
|
* A normalized error shape returned by `run()`.
|
|
5
4
|
*
|
|
@@ -9,11 +8,16 @@ export type Rule<E extends AppError = AppError> = (err: unknown) => E | null;
|
|
|
9
8
|
* - `meta`: Optional payload with extra context (response body, validation fields, etc.).
|
|
10
9
|
* - `cause`: The original thrown value for debugging.
|
|
11
10
|
*/
|
|
12
|
-
export type AppError<Meta = unknown> = {
|
|
13
|
-
code:
|
|
11
|
+
export type AppError<Code extends string = AppErrorCode | (string & {}), Meta = unknown> = {
|
|
12
|
+
code: Code;
|
|
14
13
|
message: string;
|
|
15
14
|
status?: number;
|
|
16
15
|
meta?: Meta;
|
|
17
16
|
cause?: unknown;
|
|
18
17
|
};
|
|
18
|
+
type NonNull<T> = T extends null ? never : T;
|
|
19
|
+
type RuleReturn<R> = R extends (err: unknown) => infer Out ? NonNull<Out> : never;
|
|
20
|
+
export type InferErrorFromRules<TRules extends readonly Rule<any>[]> = TRules extends readonly [] ? AppError : RuleReturn<TRules[number]>;
|
|
21
|
+
export type Rule<E extends AppError = AppError> = (err: unknown) => E | null;
|
|
22
|
+
export {};
|
|
19
23
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/error/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,SAAS,GACT,SAAS,GACT,YAAY,GACZ,MAAM,GACN,SAAS,CAAC;AAEd,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/error/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,SAAS,GACT,SAAS,GACT,YAAY,GACZ,MAAM,GACN,SAAS,CAAC;AAEd;;;;;;;;GAQG;AACH,MAAM,MAAM,QAAQ,CAClB,IAAI,SAAS,MAAM,GAAG,YAAY,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,EAClD,IAAI,GAAG,OAAO,IACZ;IACF,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,KAAK,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC;AAC7C,KAAK,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,GAAG,GACtD,OAAO,CAAC,GAAG,CAAC,GACZ,KAAK,CAAC;AACV,MAAM,MAAM,mBAAmB,CAAC,MAAM,SAAS,SAAS,IAAI,CAAC,GAAG,CAAC,EAAE,IACjE,MAAM,SAAS,SAAS,EAAE,GAAG,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AACrE,MAAM,MAAM,IAAI,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,IAAI,CAAC,GAAG,EAAE,OAAO,KAAK,CAAC,GAAG,IAAI,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,7 +4,8 @@ export type { RunAllOptions } from "./runner/runAll";
|
|
|
4
4
|
export type { RunOptions, RunResult, RetryOptions } from "./types";
|
|
5
5
|
export type { AppError, AppErrorCode } from "./error/types";
|
|
6
6
|
export { toAppError, defaultFallback, createNormalizer, } from "./error/normalize";
|
|
7
|
-
export {
|
|
7
|
+
export { rules } from "./error/core";
|
|
8
|
+
export { errorRule } from "./error/builder";
|
|
8
9
|
export { createRunner } from "./runner/runner";
|
|
9
10
|
export type { CreateRunnerOptions } from "./runner/runner";
|
|
10
11
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEnE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EACL,UAAU,EACV,eAAe,EACf,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEnE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EACL,UAAU,EACV,eAAe,EACf,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAErC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { run } from "./runner/run";
|
|
2
2
|
export { runAll } from "./runner/runAll";
|
|
3
3
|
export { toAppError, defaultFallback, createNormalizer, } from "./error/normalize";
|
|
4
|
-
export {
|
|
4
|
+
export { rules } from "./error/core";
|
|
5
|
+
export { errorRule } from "./error/builder";
|
|
5
6
|
export { createRunner } from "./runner/runner";
|
|
6
7
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAKzC,OAAO,EACL,UAAU,EACV,eAAe,EACf,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAKzC,OAAO,EACL,UAAU,EACV,eAAe,EACf,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAErC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/runner/runner.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AppError, Rule } from "../error/types";
|
|
1
|
+
import type { AppError, Rule, InferErrorFromRules } from "../error/types";
|
|
2
2
|
import type { RunOptions, RunResult } from "../types";
|
|
3
3
|
import { type RunAllItemResult, type RunAllOptions } from "./runAll";
|
|
4
4
|
export type CreateRunnerOptions<E extends AppError = AppError> = {
|
|
@@ -22,9 +22,15 @@ export type CreateRunnerOptions<E extends AppError = AppError> = {
|
|
|
22
22
|
/** Optional default mapper for all runs */
|
|
23
23
|
mapError?: (error: E) => E;
|
|
24
24
|
};
|
|
25
|
-
export declare function createRunner<
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
export declare function createRunner<const TRules extends readonly Rule<any>[] = []>(opts?: {
|
|
26
|
+
rules?: TRules;
|
|
27
|
+
fallback?: (err: unknown) => InferErrorFromRules<TRules>;
|
|
28
|
+
toError?: (err: unknown) => InferErrorFromRules<TRules>;
|
|
29
|
+
ignoreAbort?: boolean;
|
|
30
|
+
mapError?: (error: InferErrorFromRules<TRules>) => InferErrorFromRules<TRules>;
|
|
31
|
+
}): {
|
|
32
|
+
run<T>(fn: () => Promise<T>, options?: RunOptions<T, InferErrorFromRules<TRules>>): Promise<RunResult<T, InferErrorFromRules<TRules>>>;
|
|
33
|
+
all<T>(fns: Array<() => Promise<T>>, options?: RunAllOptions<T, InferErrorFromRules<TRules>>): Promise<RunAllItemResult<T, InferErrorFromRules<TRules>>[]>;
|
|
34
|
+
allOrThrow<T>(fns: (() => Promise<T>)[], options?: RunOptions<T, InferErrorFromRules<TRules>>): Promise<T[]>;
|
|
29
35
|
};
|
|
30
36
|
//# sourceMappingURL=runner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/runner/runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/runner/runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAO1E,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEtD,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,aAAa,EACnB,MAAM,UAAU,CAAC;AAElB,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,IAAI;IAC/D;;;OAGG;IACH,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAElB;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,CAAC,CAAC;IAE/B;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,CAAC,CAAC;IAE9B,8BAA8B;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC;CAC5B,CAAC;AAOF,wBAAgB,YAAY,CAAC,KAAK,CAAC,MAAM,SAAS,SAAS,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,EACzE,IAAI,GAAE;IACJ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACzD,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACxD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,CACT,KAAK,EAAE,mBAAmB,CAAC,MAAM,CAAC,KAC/B,mBAAmB,CAAC,MAAM,CAAC,CAAC;CAC7B;QAmBA,CAAC,MACC,MAAM,OAAO,CAAC,CAAC,CAAC,YACX,UAAU,CAAC,CAAC,8BAAI,GACxB,OAAO,CAAC,SAAS,CAAC,CAAC,8BAAI,CAAC;QAMvB,CAAC,OACE,KAAK,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,YACnB,aAAa,CAAC,CAAC,8BAAI,GAC3B,OAAO,CAAC,gBAAgB,CAAC,CAAC,8BAAI,EAAE,CAAC;eAMzB,CAAC,OACL,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,YAChB,UAAU,CAAC,CAAC,8BAAI,GACxB,OAAO,CAAC,CAAC,EAAE,CAAC;EAOlB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/runner/runner.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,UAAU,GACX,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,GAAG,IAAI,OAAO,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EACL,MAAM,IAAI,UAAU,GAGrB,MAAM,UAAU,CAAC;AA4BlB,MAAM,eAAe,GACnB,CAAI,IAAkB,EAAE,KAAmB,EAAE,EAAE,CAC/C,CAAC,CAAI,EAAE,EAAE,CACP,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE3D,MAAM,UAAU,YAAY,CAC1B,
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/runner/runner.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,UAAU,GACX,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,GAAG,IAAI,OAAO,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EACL,MAAM,IAAI,UAAU,GAGrB,MAAM,UAAU,CAAC;AA4BlB,MAAM,eAAe,GACnB,CAAI,IAAkB,EAAE,KAAmB,EAAE,EAAE,CAC/C,CAAC,CAAI,EAAE,EAAE,CACP,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE3D,MAAM,UAAU,YAAY,CAC1B,OAQI,EAAE;IAIN,MAAM,EACJ,KAAK,GAAG,EAAE,EACV,QAAQ,GAAG,CAAC,CAAU,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAiB,EAC7D,OAAO,EAAE,aAAa,EACtB,WAAW,GAAG,IAAI,EAClB,QAAQ,EAAE,eAAe,GAC1B,GAAG,IAA8B,CAAC;IAEnC,MAAM,OAAO,GACX,aAAa;QACb,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;YACf,CAAC,CAAC,gBAAgB,CAAI,KAA6B,EAAE,QAAQ,CAAC;YAC9D,CAAC,CAAE,UAA2C,CAAC,CAAC;IAEpD,OAAO;QACL,GAAG,CACD,EAAoB,EACpB,UAA4B,EAAE;YAE9B,OAAO,OAAO,CAAC,EAAE,EAAE;gBACjB,GAAG,OAAO;gBACV,QAAQ,EAAE,eAAe,CAAC,eAAe,EAAE,OAAO,CAAC,QAAQ,CAAC;aAC7D,CAAC,CAAC;QACL,CAAC;QACD,GAAG,CACD,GAA4B,EAC5B,UAA+B,EAAE;YAEjC,OAAO,UAAU,CAAC,GAAG,EAAE;gBACrB,GAAG,OAAO;gBACV,QAAQ,EAAE,eAAe,CAAC,eAAe,EAAE,OAAO,CAAC,QAAQ,CAAC;aAC7D,CAAC,CAAC;QACL,CAAC;QACD,UAAU,CACR,GAAyB,EACzB,UAA4B,EAAE;YAE9B,OAAO,iBAAiB,CAAC,GAAG,EAAE;gBAC5B,GAAG,OAAO;gBACV,QAAQ,EAAE,eAAe,CAAC,eAAe,EAAE,OAAO,CAAC,QAAQ,CAAC;aAC7D,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
|