@zokugun/xtry 0.7.0 → 0.7.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/lib/cjs/async.d.cts +1 -0
- package/lib/cjs/defer.cjs +26 -6
- package/lib/cjs/defer.d.cts +9 -8
- package/lib/cjs/index.d.cts +1 -0
- package/lib/cjs/sync.d.cts +1 -0
- package/lib/cjs/to-string-failure.cjs +2 -2
- package/lib/cjs/to-string-failure.d.cts +1 -1
- package/lib/cjs/utils/types.d.cts +3 -3
- package/lib/esm/async.d.mts +1 -0
- package/lib/esm/defer.d.mts +9 -8
- package/lib/esm/defer.mjs +26 -6
- package/lib/esm/index.d.mts +1 -0
- package/lib/esm/sync.d.mts +1 -0
- package/lib/esm/to-string-failure.d.mts +1 -1
- package/lib/esm/to-string-failure.mjs +2 -2
- package/lib/esm/utils/types.d.mts +3 -3
- package/package.json +1 -1
package/lib/cjs/async.d.cts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export type { XDeferAsync, XDeferSync } from './defer.cjs';
|
|
1
2
|
export { xdefer as xdeferUnknown, xdeferAsync as xdefer, xdeferSync } from './defer.cjs';
|
|
2
3
|
export type { YResult, YSuccess, YFailure } from './partial.cjs';
|
|
3
4
|
export { yok, yerr, yres as yresUnknown, yresAsync as yres, yresSync, yep, YOK, YOK_NULL, YOK_TRUE, YOK_FALSE } from './partial.cjs';
|
package/lib/cjs/defer.cjs
CHANGED
|
@@ -5,7 +5,7 @@ exports.xdeferAsync = xdeferAsync;
|
|
|
5
5
|
exports.xdeferSync = xdeferSync;
|
|
6
6
|
const result_js_1 = require("./result.cjs");
|
|
7
7
|
const is_promise_like_js_1 = require("./utils/is-promise-like.cjs");
|
|
8
|
-
function xdefer(callback) {
|
|
8
|
+
function xdefer(callback, bind, ...args) {
|
|
9
9
|
// eslint-disable-next-line @typescript-eslint/promise-function-async
|
|
10
10
|
return ((result) => {
|
|
11
11
|
const finalize = (deferResult) => {
|
|
@@ -17,16 +17,36 @@ function xdefer(callback) {
|
|
|
17
17
|
}
|
|
18
18
|
return (result) ?? (0, result_js_1.ok)();
|
|
19
19
|
};
|
|
20
|
-
|
|
20
|
+
let deferredValue;
|
|
21
|
+
if (callback instanceof Function) {
|
|
22
|
+
if (bind) {
|
|
23
|
+
deferredValue = Reflect.apply(callback, bind, args);
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
deferredValue = callback(...args);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
deferredValue = callback;
|
|
31
|
+
}
|
|
21
32
|
if ((0, is_promise_like_js_1.isPromiseLike)(deferredValue)) {
|
|
22
33
|
return Promise.resolve(deferredValue).then(finalize);
|
|
23
34
|
}
|
|
24
35
|
return finalize(deferredValue);
|
|
25
36
|
});
|
|
26
37
|
}
|
|
27
|
-
function xdeferAsync(callback) {
|
|
38
|
+
function xdeferAsync(callback, bind, ...args) {
|
|
28
39
|
return (async (result) => {
|
|
29
|
-
|
|
40
|
+
let deferResult;
|
|
41
|
+
if (callback instanceof Promise) {
|
|
42
|
+
deferResult = await callback;
|
|
43
|
+
}
|
|
44
|
+
else if (bind) {
|
|
45
|
+
deferResult = await callback.apply(bind, args);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
deferResult = await callback(...args);
|
|
49
|
+
}
|
|
30
50
|
if (deferResult.fails) {
|
|
31
51
|
if (result?.fails) {
|
|
32
52
|
return result;
|
|
@@ -36,9 +56,9 @@ function xdeferAsync(callback) {
|
|
|
36
56
|
return result ?? (0, result_js_1.ok)();
|
|
37
57
|
});
|
|
38
58
|
}
|
|
39
|
-
function xdeferSync(callback) {
|
|
59
|
+
function xdeferSync(callback, bind, ...args) {
|
|
40
60
|
return ((result) => {
|
|
41
|
-
const deferResult = callback();
|
|
61
|
+
const deferResult = bind ? callback.apply(bind, args) : callback(...args);
|
|
42
62
|
if (deferResult.fails) {
|
|
43
63
|
if (result?.fails) {
|
|
44
64
|
return result;
|
package/lib/cjs/defer.d.cts
CHANGED
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
import { type Failure, type Result, type Success } from './result.cjs';
|
|
2
|
-
import { type NonPromiseCallback
|
|
3
|
-
type
|
|
2
|
+
import { type NonPromiseCallback } from './utils/types.cjs';
|
|
3
|
+
export type XDeferAsync<E> = {
|
|
4
4
|
(): Promise<Success<void>>;
|
|
5
5
|
<T>(result: Success<T>): Promise<Result<T, E>>;
|
|
6
6
|
<F>(result: Failure<F>): Promise<Failure<F>>;
|
|
7
7
|
<T, F>(result: Result<T, F>): Promise<Result<T, E | F>>;
|
|
8
8
|
};
|
|
9
|
-
type
|
|
9
|
+
export type XDeferSync<E> = {
|
|
10
10
|
(): Success<void>;
|
|
11
11
|
<T>(result: Success<T>): Result<T, E>;
|
|
12
12
|
<F>(result: Failure<F>): Failure<F>;
|
|
13
13
|
<T, F>(result: Result<T, F>): Result<T, E | F>;
|
|
14
14
|
};
|
|
15
|
-
export declare function xdefer<E>(callback: NonPromiseCallback<Result<unknown, E
|
|
16
|
-
export declare function xdefer<E>(callback:
|
|
17
|
-
export declare function
|
|
18
|
-
export declare function
|
|
19
|
-
export
|
|
15
|
+
export declare function xdefer<E, Args extends unknown[]>(callback: NonPromiseCallback<Result<unknown, E>, Args>, bind?: object, ...args: Args): XDeferSync<E>;
|
|
16
|
+
export declare function xdefer<E>(callback: Promise<Result<unknown, E>>): XDeferAsync<E>;
|
|
17
|
+
export declare function xdefer<E, Args extends unknown[]>(callback: (...args: Args) => Promise<Result<unknown, E>>, bind?: object, ...args: Args): XDeferAsync<E>;
|
|
18
|
+
export declare function xdeferAsync<E>(callback: Promise<Result<unknown, E>>): XDeferAsync<E>;
|
|
19
|
+
export declare function xdeferAsync<E, Args extends unknown[]>(callback: (...args: Args) => Promise<Result<unknown, E>>, bind?: object, ...args: Args): XDeferAsync<E>;
|
|
20
|
+
export declare function xdeferSync<E, Args extends unknown[]>(callback: NonPromiseCallback<Result<unknown, E>, Args>, bind?: object, ...args: Args): XDeferSync<E>;
|
package/lib/cjs/index.d.cts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export type { XDeferAsync, XDeferSync } from './defer.cjs';
|
|
1
2
|
export { xdefer, xdeferAsync, xdeferSync } from './defer.cjs';
|
|
2
3
|
export type { YResult, YSuccess, YFailure } from './partial.cjs';
|
|
3
4
|
export { yok, yerr, yres, yresAsync, yresSync, yep, YOK, YOK_NULL, YOK_TRUE, YOK_FALSE } from './partial.cjs';
|
package/lib/cjs/sync.d.cts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export type { XDeferAsync, XDeferSync } from './defer.cjs';
|
|
1
2
|
export { xdefer as xdeferUnknown, xdeferAsync, xdeferSync as xdefer } from './defer.cjs';
|
|
2
3
|
export type { YResult, YSuccess, YFailure } from './partial.cjs';
|
|
3
4
|
export { yok, yerr, yres as yresUnknown, yresAsync, yresSync as yres, yep, YOK, YOK_NULL, YOK_TRUE, YOK_FALSE } from './partial.cjs';
|
|
@@ -3,6 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.toStringFailure = toStringFailure;
|
|
4
4
|
const result_js_1 = require("./result.cjs");
|
|
5
5
|
const stringify_error_js_1 = require("./stringify-error.cjs");
|
|
6
|
-
function toStringFailure(
|
|
7
|
-
return (0, result_js_1.err)((0, stringify_error_js_1.stringifyError)(error));
|
|
6
|
+
function toStringFailure(failure) {
|
|
7
|
+
return (0, result_js_1.err)((0, stringify_error_js_1.stringifyError)(failure.error));
|
|
8
8
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { type Failure } from './result.cjs';
|
|
2
|
-
export declare function toStringFailure(
|
|
2
|
+
export declare function toStringFailure(failure: Failure<unknown>): Failure<string>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export type NotPromise<T> = Exclude<T, Promise<unknown>>;
|
|
2
|
-
export type NonPromiseCallback<T> = () => NotPromise<T>;
|
|
3
|
-
export type PromiseCallback<T> = (() => Promise<T>) | Promise<T>;
|
|
4
|
-
export type Callback<T> = NonPromiseCallback<T> | PromiseCallback<T>;
|
|
2
|
+
export type NonPromiseCallback<T, Args extends unknown[] = []> = (...args: Args) => NotPromise<T>;
|
|
3
|
+
export type PromiseCallback<T, Args extends unknown[] = []> = ((...args: Args) => Promise<T>) | Promise<T>;
|
|
4
|
+
export type Callback<T, Args extends unknown[] = []> = NonPromiseCallback<T, Args> | PromiseCallback<T, Args>;
|
|
5
5
|
export type MaybePromise<T> = T | Promise<T>;
|
package/lib/esm/async.d.mts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export type { XDeferAsync, XDeferSync } from './defer.mjs';
|
|
1
2
|
export { xdefer as xdeferUnknown, xdeferAsync as xdefer, xdeferSync } from './defer.mjs';
|
|
2
3
|
export type { YResult, YSuccess, YFailure } from './partial.mjs';
|
|
3
4
|
export { yok, yerr, yres as yresUnknown, yresAsync as yres, yresSync, yep, YOK, YOK_NULL, YOK_TRUE, YOK_FALSE } from './partial.mjs';
|
package/lib/esm/defer.d.mts
CHANGED
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
import { type Failure, type Result, type Success } from './result.mjs';
|
|
2
|
-
import { type NonPromiseCallback
|
|
3
|
-
type
|
|
2
|
+
import { type NonPromiseCallback } from './utils/types.mjs';
|
|
3
|
+
export type XDeferAsync<E> = {
|
|
4
4
|
(): Promise<Success<void>>;
|
|
5
5
|
<T>(result: Success<T>): Promise<Result<T, E>>;
|
|
6
6
|
<F>(result: Failure<F>): Promise<Failure<F>>;
|
|
7
7
|
<T, F>(result: Result<T, F>): Promise<Result<T, E | F>>;
|
|
8
8
|
};
|
|
9
|
-
type
|
|
9
|
+
export type XDeferSync<E> = {
|
|
10
10
|
(): Success<void>;
|
|
11
11
|
<T>(result: Success<T>): Result<T, E>;
|
|
12
12
|
<F>(result: Failure<F>): Failure<F>;
|
|
13
13
|
<T, F>(result: Result<T, F>): Result<T, E | F>;
|
|
14
14
|
};
|
|
15
|
-
export declare function xdefer<E>(callback: NonPromiseCallback<Result<unknown, E
|
|
16
|
-
export declare function xdefer<E>(callback:
|
|
17
|
-
export declare function
|
|
18
|
-
export declare function
|
|
19
|
-
export
|
|
15
|
+
export declare function xdefer<E, Args extends unknown[]>(callback: NonPromiseCallback<Result<unknown, E>, Args>, bind?: object, ...args: Args): XDeferSync<E>;
|
|
16
|
+
export declare function xdefer<E>(callback: Promise<Result<unknown, E>>): XDeferAsync<E>;
|
|
17
|
+
export declare function xdefer<E, Args extends unknown[]>(callback: (...args: Args) => Promise<Result<unknown, E>>, bind?: object, ...args: Args): XDeferAsync<E>;
|
|
18
|
+
export declare function xdeferAsync<E>(callback: Promise<Result<unknown, E>>): XDeferAsync<E>;
|
|
19
|
+
export declare function xdeferAsync<E, Args extends unknown[]>(callback: (...args: Args) => Promise<Result<unknown, E>>, bind?: object, ...args: Args): XDeferAsync<E>;
|
|
20
|
+
export declare function xdeferSync<E, Args extends unknown[]>(callback: NonPromiseCallback<Result<unknown, E>, Args>, bind?: object, ...args: Args): XDeferSync<E>;
|
package/lib/esm/defer.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ok } from './result.mjs';
|
|
2
2
|
import { isPromiseLike } from './utils/is-promise-like.mjs';
|
|
3
|
-
export function xdefer(callback) {
|
|
3
|
+
export function xdefer(callback, bind, ...args) {
|
|
4
4
|
// eslint-disable-next-line @typescript-eslint/promise-function-async
|
|
5
5
|
return ((result) => {
|
|
6
6
|
const finalize = (deferResult) => {
|
|
@@ -12,16 +12,36 @@ export function xdefer(callback) {
|
|
|
12
12
|
}
|
|
13
13
|
return (result) ?? ok();
|
|
14
14
|
};
|
|
15
|
-
|
|
15
|
+
let deferredValue;
|
|
16
|
+
if (callback instanceof Function) {
|
|
17
|
+
if (bind) {
|
|
18
|
+
deferredValue = Reflect.apply(callback, bind, args);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
deferredValue = callback(...args);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
deferredValue = callback;
|
|
26
|
+
}
|
|
16
27
|
if (isPromiseLike(deferredValue)) {
|
|
17
28
|
return Promise.resolve(deferredValue).then(finalize);
|
|
18
29
|
}
|
|
19
30
|
return finalize(deferredValue);
|
|
20
31
|
});
|
|
21
32
|
}
|
|
22
|
-
export function xdeferAsync(callback) {
|
|
33
|
+
export function xdeferAsync(callback, bind, ...args) {
|
|
23
34
|
return (async (result) => {
|
|
24
|
-
|
|
35
|
+
let deferResult;
|
|
36
|
+
if (callback instanceof Promise) {
|
|
37
|
+
deferResult = await callback;
|
|
38
|
+
}
|
|
39
|
+
else if (bind) {
|
|
40
|
+
deferResult = await callback.apply(bind, args);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
deferResult = await callback(...args);
|
|
44
|
+
}
|
|
25
45
|
if (deferResult.fails) {
|
|
26
46
|
if (result?.fails) {
|
|
27
47
|
return result;
|
|
@@ -31,9 +51,9 @@ export function xdeferAsync(callback) {
|
|
|
31
51
|
return result ?? ok();
|
|
32
52
|
});
|
|
33
53
|
}
|
|
34
|
-
export function xdeferSync(callback) {
|
|
54
|
+
export function xdeferSync(callback, bind, ...args) {
|
|
35
55
|
return ((result) => {
|
|
36
|
-
const deferResult = callback();
|
|
56
|
+
const deferResult = bind ? callback.apply(bind, args) : callback(...args);
|
|
37
57
|
if (deferResult.fails) {
|
|
38
58
|
if (result?.fails) {
|
|
39
59
|
return result;
|
package/lib/esm/index.d.mts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export type { XDeferAsync, XDeferSync } from './defer.mjs';
|
|
1
2
|
export { xdefer, xdeferAsync, xdeferSync } from './defer.mjs';
|
|
2
3
|
export type { YResult, YSuccess, YFailure } from './partial.mjs';
|
|
3
4
|
export { yok, yerr, yres, yresAsync, yresSync, yep, YOK, YOK_NULL, YOK_TRUE, YOK_FALSE } from './partial.mjs';
|
package/lib/esm/sync.d.mts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export type { XDeferAsync, XDeferSync } from './defer.mjs';
|
|
1
2
|
export { xdefer as xdeferUnknown, xdeferAsync, xdeferSync as xdefer } from './defer.mjs';
|
|
2
3
|
export type { YResult, YSuccess, YFailure } from './partial.mjs';
|
|
3
4
|
export { yok, yerr, yres as yresUnknown, yresAsync, yresSync as yres, yep, YOK, YOK_NULL, YOK_TRUE, YOK_FALSE } from './partial.mjs';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { type Failure } from './result.mjs';
|
|
2
|
-
export declare function toStringFailure(
|
|
2
|
+
export declare function toStringFailure(failure: Failure<unknown>): Failure<string>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export type NotPromise<T> = Exclude<T, Promise<unknown>>;
|
|
2
|
-
export type NonPromiseCallback<T> = () => NotPromise<T>;
|
|
3
|
-
export type PromiseCallback<T> = (() => Promise<T>) | Promise<T>;
|
|
4
|
-
export type Callback<T> = NonPromiseCallback<T> | PromiseCallback<T>;
|
|
2
|
+
export type NonPromiseCallback<T, Args extends unknown[] = []> = (...args: Args) => NotPromise<T>;
|
|
3
|
+
export type PromiseCallback<T, Args extends unknown[] = []> = ((...args: Args) => Promise<T>) | Promise<T>;
|
|
4
|
+
export type Callback<T, Args extends unknown[] = []> = NonPromiseCallback<T, Args> | PromiseCallback<T, Args>;
|
|
5
5
|
export type MaybePromise<T> = T | Promise<T>;
|