@ceale/util 1.12.1 → 1.12.2
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/cjs/index.js +5 -4
- package/dist/esm/index.js +5 -4
- package/dist/types/error.d.ts +26 -2
- package/package.json +1 -1
package/dist/cjs/index.js
CHANGED
|
@@ -413,14 +413,15 @@ class CubicBezier {
|
|
|
413
413
|
// src/error.ts
|
|
414
414
|
var tryCatch = (parameter) => {
|
|
415
415
|
if (parameter instanceof Promise) {
|
|
416
|
-
return parameter.then((data) => ({ data, error: null })).catch((error) => ({ data: null, error }));
|
|
416
|
+
return parameter.then((data) => Object.assign([data, null], { data, error: null })).catch((error) => Object.assign([null, error], { data: null, error }));
|
|
417
417
|
}
|
|
418
418
|
if (typeof parameter === "function") {
|
|
419
419
|
try {
|
|
420
|
-
|
|
420
|
+
const data = parameter();
|
|
421
|
+
return Object.assign([data, null], { data, error: null });
|
|
421
422
|
} catch (error) {
|
|
422
|
-
return { data: null, error };
|
|
423
|
+
return Object.assign([null, error], { data: null, error });
|
|
423
424
|
}
|
|
424
425
|
}
|
|
425
|
-
throw new TypeError("
|
|
426
|
+
throw new TypeError("参数类型错误,应为 Promise 或函数");
|
|
426
427
|
};
|
package/dist/esm/index.js
CHANGED
|
@@ -366,16 +366,17 @@ class CubicBezier {
|
|
|
366
366
|
// src/error.ts
|
|
367
367
|
var tryCatch = (parameter) => {
|
|
368
368
|
if (parameter instanceof Promise) {
|
|
369
|
-
return parameter.then((data) => ({ data, error: null })).catch((error) => ({ data: null, error }));
|
|
369
|
+
return parameter.then((data) => Object.assign([data, null], { data, error: null })).catch((error) => Object.assign([null, error], { data: null, error }));
|
|
370
370
|
}
|
|
371
371
|
if (typeof parameter === "function") {
|
|
372
372
|
try {
|
|
373
|
-
|
|
373
|
+
const data = parameter();
|
|
374
|
+
return Object.assign([data, null], { data, error: null });
|
|
374
375
|
} catch (error) {
|
|
375
|
-
return { data: null, error };
|
|
376
|
+
return Object.assign([null, error], { data: null, error });
|
|
376
377
|
}
|
|
377
378
|
}
|
|
378
|
-
throw new TypeError("
|
|
379
|
+
throw new TypeError("参数类型错误,应为 Promise 或函数");
|
|
379
380
|
};
|
|
380
381
|
export {
|
|
381
382
|
waitSync,
|
package/dist/types/error.d.ts
CHANGED
|
@@ -1,15 +1,39 @@
|
|
|
1
1
|
type Success<T> = {
|
|
2
2
|
data: T;
|
|
3
3
|
error: null;
|
|
4
|
-
}
|
|
4
|
+
} & [
|
|
5
|
+
data: T,
|
|
6
|
+
error: null
|
|
7
|
+
];
|
|
5
8
|
type Failure<E> = {
|
|
6
9
|
data: null;
|
|
7
10
|
error: E;
|
|
8
|
-
}
|
|
11
|
+
} & [
|
|
12
|
+
data: null,
|
|
13
|
+
error: E
|
|
14
|
+
];
|
|
9
15
|
type Result<T, E extends unknown = Error> = Success<T> | Failure<E>;
|
|
10
16
|
interface tryCatch {
|
|
11
17
|
<T>(arg: Promise<T>): Promise<Result<T>>;
|
|
12
18
|
<V>(arg: (() => V)): Result<V>;
|
|
13
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* 尝试执行一个函数或Promise,返回一个包含执行结果或错误信息的复合对象
|
|
22
|
+
*
|
|
23
|
+
* 该对象同时支持对象属性访问(.data/.error)和数组索引访问([0]/[1])两种方式
|
|
24
|
+
*
|
|
25
|
+
* @param parameter 一个函数或者Promise对象
|
|
26
|
+
* @returns 返回参数中,data和[0]是函数的返回值或是Promise的解析结果,error和[1]是错误对象。两者将有一为`null`
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* tryCatch(() => func(...))
|
|
30
|
+
* // => [data, error] & {data, error}
|
|
31
|
+
* // data: func的返回值,error:函数执行过程中发生的错误
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* await tryCatch(asyncFunc(...))
|
|
35
|
+
* // => [data, error] & {data, error}
|
|
36
|
+
* // data: asyncFunc的返回值,error:asyncFunc执行过程中发生的错误
|
|
37
|
+
*/
|
|
14
38
|
export declare const tryCatch: tryCatch;
|
|
15
39
|
export {};
|