@aedge-io/grugway 0.0.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/LICENSE.md +22 -0
- package/README.md +503 -0
- package/esm/_dnt.polyfills.js +1 -0
- package/esm/adapters/web/fetch/mod.js +118 -0
- package/esm/async/_internal.js +156 -0
- package/esm/async/task.js +578 -0
- package/esm/async/tasks.js +10 -0
- package/esm/core/assert.js +20 -0
- package/esm/core/errors.js +98 -0
- package/esm/core/option.js +651 -0
- package/esm/core/result.js +514 -0
- package/esm/core/type_utils.js +31 -0
- package/esm/mod.js +7 -0
- package/esm/package.json +3 -0
- package/package.json +47 -0
- package/types/_dnt.polyfills.d.ts +7 -0
- package/types/_dnt.polyfills.d.ts.map +1 -0
- package/types/adapters/web/fetch/mod.d.ts +98 -0
- package/types/adapters/web/fetch/mod.d.ts.map +1 -0
- package/types/async/_internal.d.ts +82 -0
- package/types/async/_internal.d.ts.map +1 -0
- package/types/async/task.d.ts +500 -0
- package/types/async/task.d.ts.map +1 -0
- package/types/async/tasks.d.ts +119 -0
- package/types/async/tasks.d.ts.map +1 -0
- package/types/core/assert.d.ts +9 -0
- package/types/core/assert.d.ts.map +1 -0
- package/types/core/errors.d.ts +85 -0
- package/types/core/errors.d.ts.map +1 -0
- package/types/core/option.d.ts +1672 -0
- package/types/core/option.d.ts.map +1 -0
- package/types/core/result.d.ts +1395 -0
- package/types/core/result.d.ts.map +1 -0
- package/types/core/type_utils.d.ts +78 -0
- package/types/core/type_utils.d.ts.map +1 -0
- package/types/mod.d.ts +11 -0
- package/types/mod.d.ts.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../../src/adapters/web/fetch/mod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAE/D,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,aAAa,CAAC,CAAC,SAAS,YAAY,CAAE,SAAQ,KAAK;IACrD,IAAI,SAAmB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,CAAC,CAAC;gBACA,GAAG,EAAE,CAAC;IAOlB,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC;IAI7D,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC;IAMxE,MAAM,IAAI,iBAAiB;CAM5B;AAED,qBAAa,cAAe,SAAQ,KAAK;IAC9B,IAAI,SAAoB;IACxB,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;gBACtB,KAAK,EAAE,OAAO;IAO1B,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc;CAG5C;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,cAAc,CAGpE;AAED,wBAAgB,aAAa,CAAC,CAAC,SAAS,YAAY,EAClD,GAAG,EAAE,CAAC,GACL,MAAM,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAG7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkEG;AACH,wBAAgB,SAAS,CACvB,IAAI,SAAS,OAAO,EAAE,EACtB,CAAC,SAAS,YAAY,EACtB,CAAC,GAAG,CAAC,EACL,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,EACrB,EAAE,GAAG,cAAc,EAEnB,SAAS,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,EAChD,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAC/D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,EAAE,GAChC,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAMrC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import type { Result } from "../core/result.js";
|
|
2
|
+
/**
|
|
3
|
+
* These are only used internally to save some chars
|
|
4
|
+
* @interal
|
|
5
|
+
*/
|
|
6
|
+
type Future<T, E> = PromiseLike<Result<T, E>>;
|
|
7
|
+
type Either<T, E> = Result<T, E> | Future<T, E>;
|
|
8
|
+
export type ExecutorFn<T, E> = ConstructorParameters<typeof Promise<Result<T, E>>>[0];
|
|
9
|
+
/**
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
export declare function idTask<T, E>(task: Either<T, E>): Promise<Result<T, E>>;
|
|
13
|
+
/**
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
16
|
+
export declare function cloneTask<T, E>(task: Either<T, E>): Promise<Result<T, E>>;
|
|
17
|
+
/**
|
|
18
|
+
* @internal
|
|
19
|
+
*/
|
|
20
|
+
export declare function mapTaskSuccess<T, E, T2>(task: Either<T, E>, mapFn: (v: T) => T2 | PromiseLike<T2>): Promise<Result<T2, E>>;
|
|
21
|
+
/**
|
|
22
|
+
* @internal
|
|
23
|
+
*/
|
|
24
|
+
export declare function mapTaskSuccessOr<T, E, T2>(task: Either<T, E>, mapFn: (v: T) => T2 | PromiseLike<T2>, orValue: T2 | PromiseLike<T2>): Promise<Result<T2, never>>;
|
|
25
|
+
/**
|
|
26
|
+
* @internal
|
|
27
|
+
*/
|
|
28
|
+
export declare function mapTaskSuccessOrElse<T, E, T2>(task: Either<T, E>, mapFn: (v: T) => T2 | PromiseLike<T2>, orFn: (e: E) => T2 | PromiseLike<T2>): Promise<Result<T2, never>>;
|
|
29
|
+
/**
|
|
30
|
+
* @internal
|
|
31
|
+
*/
|
|
32
|
+
export declare function mapTaskFailure<T, E, E2>(task: Either<T, E>, mapFn: (v: E) => E2 | PromiseLike<E2>): Promise<Result<T, E2>>;
|
|
33
|
+
/**
|
|
34
|
+
* @internal
|
|
35
|
+
*/
|
|
36
|
+
export declare function chainTaskSuccess<T, E, T2, E2>(task: Either<T, E>, thenFn: (v: T) => Either<T2, E2>): Promise<Result<T2, E | E2>>;
|
|
37
|
+
/**
|
|
38
|
+
* @internal
|
|
39
|
+
*/
|
|
40
|
+
export declare function chainTaskFailure<T, E, T2, E2>(task: Either<T, E>, elseFn: (v: E) => Either<T2, E2>): Promise<Result<T | T2, E2>>;
|
|
41
|
+
/**
|
|
42
|
+
* @internal
|
|
43
|
+
*/
|
|
44
|
+
export declare function tapTask<T, E>(task: Either<T, E>, tapFn: (v: Result<T, E>) => void | PromiseLike<void>): Promise<Result<T, E>>;
|
|
45
|
+
/**
|
|
46
|
+
* @internal
|
|
47
|
+
*/
|
|
48
|
+
export declare function inspectTaskSuccess<T, E>(task: Either<T, E>, inspectFn: (v: T) => void | PromiseLike<void>): Promise<Result<T, E>>;
|
|
49
|
+
/**
|
|
50
|
+
* @internal
|
|
51
|
+
*/
|
|
52
|
+
export declare function inspectTaskFailure<T, E>(task: Either<T, E>, inspectFn: (v: E) => void | PromiseLike<void>): Promise<Result<T, E>>;
|
|
53
|
+
/**
|
|
54
|
+
* @internal
|
|
55
|
+
*/
|
|
56
|
+
export declare function zipTask<T, E, T2, E2>(task1: Either<T, E>, task2: Either<T2, E2>): Promise<Result<[T, T2], E | E2>>;
|
|
57
|
+
/**
|
|
58
|
+
* @internal
|
|
59
|
+
*/
|
|
60
|
+
export declare function andEnsureTask<T, E, T2, E2>(task: Either<T, E>, ensureFn: (value: T) => Either<T2, E2>): Promise<Result<T, E | E2>>;
|
|
61
|
+
/**
|
|
62
|
+
* @internal
|
|
63
|
+
*/
|
|
64
|
+
export declare function orEnsureTask<T, E, T2, E2>(task: Either<T, E>, ensureFn: (value: E) => Either<T2, E2>): Promise<Result<T | T2, E>>;
|
|
65
|
+
/**
|
|
66
|
+
* @internal
|
|
67
|
+
*/
|
|
68
|
+
export declare function unwrapTask<T, E>(task: Either<T, E>): Promise<T | E>;
|
|
69
|
+
/**
|
|
70
|
+
* @internal
|
|
71
|
+
*/
|
|
72
|
+
export declare function unwrapTaskOr<T, E, T2>(task: Either<T, E>, orValue: T2 | PromiseLike<T2>): Promise<T | T2>;
|
|
73
|
+
/**
|
|
74
|
+
* @internal
|
|
75
|
+
*/
|
|
76
|
+
export declare function unwrapTaskOrElse<T, E, T2>(task: Either<T, E>, orFn: (e: E) => T2 | PromiseLike<T2>): Promise<T | T2>;
|
|
77
|
+
/**
|
|
78
|
+
* @internal
|
|
79
|
+
*/
|
|
80
|
+
export declare function iterTask<T, E>(task: Either<T, E>): AsyncIterableIterator<T>;
|
|
81
|
+
export {};
|
|
82
|
+
//# sourceMappingURL=_internal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_internal.d.ts","sourceRoot":"","sources":["../../src/async/_internal.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,500 @@
|
|
|
1
|
+
import { type Result } from "../core/result.js";
|
|
2
|
+
/**
|
|
3
|
+
* This is the interface of the return value of {@linkcode Task.deferred}
|
|
4
|
+
*/
|
|
5
|
+
export interface DeferredTask<T, E> {
|
|
6
|
+
task: Task<T, E>;
|
|
7
|
+
succeed: (value: T) => void;
|
|
8
|
+
fail: (error: E) => void;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* # Task<T, E>
|
|
12
|
+
*
|
|
13
|
+
* `Task<T, E>` is a composeable extension of `Promise<Result<T, E>>`
|
|
14
|
+
*
|
|
15
|
+
* It is a `Promise` sub-class, which never rejects, but always resolves.
|
|
16
|
+
* Either with an `Ok<T>` or an `Err<E>`
|
|
17
|
+
*
|
|
18
|
+
* It supports almost the same API as {@linkcode Result} and allows for
|
|
19
|
+
* the same composition patterns as {@linkcode Result}
|
|
20
|
+
*
|
|
21
|
+
* Furthermore, {@linkcode Tasks} exposes a few functions to ease working
|
|
22
|
+
* with collections (indexed and plain `Iterable`s)
|
|
23
|
+
*
|
|
24
|
+
* @category Task#Basic
|
|
25
|
+
*/
|
|
26
|
+
export declare class Task<T, E> extends Promise<Result<T, E>> {
|
|
27
|
+
private constructor();
|
|
28
|
+
/**
|
|
29
|
+
* =======================
|
|
30
|
+
* TASK CONSTRUCTORS
|
|
31
|
+
* =======================
|
|
32
|
+
*/
|
|
33
|
+
/**
|
|
34
|
+
* Use this to create a task from a `Result<T, E>` value
|
|
35
|
+
*
|
|
36
|
+
* @category Task#Basic
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```typescript
|
|
40
|
+
* import { Ok, Result, Task } from "../mod.ts";
|
|
41
|
+
*
|
|
42
|
+
* async function produceRes(): Promise<Result<number, TypeError>> {
|
|
43
|
+
* return Ok(42);
|
|
44
|
+
* }
|
|
45
|
+
*
|
|
46
|
+
* const task = Task.of(produceRes());
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
static of<T, E>(value: Result<T, E> | PromiseLike<Result<T, E>>): Task<T, E>;
|
|
50
|
+
/**
|
|
51
|
+
* Use this to create a `Task` which always succeeds with a value `<T>`
|
|
52
|
+
*
|
|
53
|
+
* @category Task#Basic
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```typescript
|
|
57
|
+
* import { Task } from "./task.ts";
|
|
58
|
+
*
|
|
59
|
+
* const task: Task<number, never> = Task.succeed(42);
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
static succeed<T>(value: T): Task<T, never>;
|
|
63
|
+
/**
|
|
64
|
+
* Use this to create a `Task` which always fails with a value `<E>`
|
|
65
|
+
*
|
|
66
|
+
* @category Task#Basic
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```typescript
|
|
70
|
+
* import { Task } from "./task.ts";
|
|
71
|
+
*
|
|
72
|
+
* const task: Task<never, number> = Task.fail(1);
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
static fail<E>(error: E): Task<never, E>;
|
|
76
|
+
/**
|
|
77
|
+
* Use this to create a deferred `Task<T, E>` which will either succeed with
|
|
78
|
+
* a value of type `<T>` or fail with a value of type `<E>`
|
|
79
|
+
*
|
|
80
|
+
* You have to provide the generic types explicitly, otherwise `<T, E>` will
|
|
81
|
+
* be inferred as `<unknown, unknown>`
|
|
82
|
+
*
|
|
83
|
+
* This is mostly useful when working with push-based APIs
|
|
84
|
+
*
|
|
85
|
+
* @category Task#Advanced
|
|
86
|
+
*
|
|
87
|
+
* @example
|
|
88
|
+
* ```typescript
|
|
89
|
+
* import { Task } from "./task.ts";
|
|
90
|
+
*
|
|
91
|
+
* class TimeoutError extends Error {}
|
|
92
|
+
*
|
|
93
|
+
* const { task, succeed, fail } = Task.deferred<number, TimeoutError>();
|
|
94
|
+
*
|
|
95
|
+
* const t1 = setTimeout(() => succeed(42), Math.random() * 1000);
|
|
96
|
+
* const t2 = setTimeout(() => fail(new TimeoutError()), 500);
|
|
97
|
+
*
|
|
98
|
+
* await task
|
|
99
|
+
* .inspect(console.log)
|
|
100
|
+
* .inspectErr(console.error);
|
|
101
|
+
*
|
|
102
|
+
* clearTimeout(t1);
|
|
103
|
+
* clearTimeout(t2);
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
106
|
+
static deferred<T, E>(): DeferredTask<T, E>;
|
|
107
|
+
/**
|
|
108
|
+
* Use this to create a task from a function which returns a `Result<T, E>`
|
|
109
|
+
* or `PromiseLike<Result<T, E>` value.
|
|
110
|
+
*
|
|
111
|
+
* This function should be infallible by contract.
|
|
112
|
+
*
|
|
113
|
+
* Use {@linkcode Task.fromFallible} if this is not the case.
|
|
114
|
+
*
|
|
115
|
+
* @category Task#Basic
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* ```typescript
|
|
119
|
+
* import { Ok, Result, Task } from "../mod.ts";
|
|
120
|
+
*
|
|
121
|
+
* async function produceRes(): Promise<Result<number, TypeError>> {
|
|
122
|
+
* return Ok(42);
|
|
123
|
+
* }
|
|
124
|
+
*
|
|
125
|
+
* const task = Task.from(produceRes);
|
|
126
|
+
* ```
|
|
127
|
+
*/
|
|
128
|
+
static from<T, E>(fn: () => Result<T, E> | PromiseLike<Result<T, E>>): Task<T, E>;
|
|
129
|
+
/**
|
|
130
|
+
* Use this to create a `Task<T, E>` from a `Promise<T>`.
|
|
131
|
+
*
|
|
132
|
+
* You have to provide an `errorMapFn` in case the promise rejects, so that
|
|
133
|
+
* the type can be inferred.
|
|
134
|
+
*
|
|
135
|
+
* If you are certain(!) that the provided promise will never reject, you can
|
|
136
|
+
* provide the {@linkcode asInfallible} helper from the core module.
|
|
137
|
+
*
|
|
138
|
+
* @category Task#Basic
|
|
139
|
+
*
|
|
140
|
+
* @example
|
|
141
|
+
* ```typescript
|
|
142
|
+
* import { asInfallible, Task } from "../mod.ts";
|
|
143
|
+
*
|
|
144
|
+
* const willBeString = Promise.resolve("42");
|
|
145
|
+
*
|
|
146
|
+
* const task: Task<string, never> = Task.fromPromise(
|
|
147
|
+
* willBeString,
|
|
148
|
+
* asInfallible,
|
|
149
|
+
* );
|
|
150
|
+
*
|
|
151
|
+
* await task;
|
|
152
|
+
* ```
|
|
153
|
+
*/
|
|
154
|
+
static fromPromise<T, E>(promise: Promise<T>, errorMapFn: (reason: unknown) => E): Task<T, E>;
|
|
155
|
+
/**
|
|
156
|
+
* Use this to construct a `Task<T, E>` from the return value of a fallible
|
|
157
|
+
* function.
|
|
158
|
+
*
|
|
159
|
+
* @category Task#Basic
|
|
160
|
+
*
|
|
161
|
+
* @example
|
|
162
|
+
* ```typescript
|
|
163
|
+
* import { Task } from "./task.ts";
|
|
164
|
+
*
|
|
165
|
+
* async function rand(): Promise<number> {
|
|
166
|
+
* throw new TypeError("Oops");
|
|
167
|
+
* }
|
|
168
|
+
*
|
|
169
|
+
* function toTypeError(e: unknown): TypeError {
|
|
170
|
+
* if (e instanceof TypeError) return e;
|
|
171
|
+
* return TypeError("Unexpected error", { cause: e });
|
|
172
|
+
* }
|
|
173
|
+
*
|
|
174
|
+
* const task: Task<number, TypeError> = Task.fromFallible(
|
|
175
|
+
* rand,
|
|
176
|
+
* toTypeError,
|
|
177
|
+
* )
|
|
178
|
+
* ```
|
|
179
|
+
*/
|
|
180
|
+
static fromFallible<T, E>(fn: () => T | PromiseLike<T>, errorMapFn: (reason: unknown) => E): Task<T, E>;
|
|
181
|
+
/**
|
|
182
|
+
* Use this lift a function into a `Task` context, by composing the wrapped
|
|
183
|
+
* function with a `Result` constructor and an error mapping function.
|
|
184
|
+
*
|
|
185
|
+
* If no constructor is provided, `Ok` is used as a default.
|
|
186
|
+
*
|
|
187
|
+
* This higher order function is especially useful to intergrate 3rd party
|
|
188
|
+
* code into your `Task` pipelines.
|
|
189
|
+
*
|
|
190
|
+
* @category Task#Advanced
|
|
191
|
+
*
|
|
192
|
+
* @example
|
|
193
|
+
* ```
|
|
194
|
+
* import { Err, Ok, Result, Task } from "../mod.ts";
|
|
195
|
+
*
|
|
196
|
+
* async function toSpecialString(s: string): Promise<string> {
|
|
197
|
+
* if (s.length % 3 === 0) return s;
|
|
198
|
+
* throw TypeError("Not confomrming to schema");
|
|
199
|
+
* }
|
|
200
|
+
*
|
|
201
|
+
* function toTypeError(e: unknown): TypeError {
|
|
202
|
+
* if (e instanceof TypeError) return e;
|
|
203
|
+
* return TypeError("Unexpected error", { cause: e });
|
|
204
|
+
* }
|
|
205
|
+
*
|
|
206
|
+
* const lifted = Task.liftFallible(toSpecialString, toTypeError);
|
|
207
|
+
*
|
|
208
|
+
* const task: Task<string, TypeError> = Task.succeed("abcd").andThen(lifted);
|
|
209
|
+
* ```
|
|
210
|
+
*/
|
|
211
|
+
static liftFallible<Args extends unknown[], R, E, T = R>(fn: (...args: Args) => R | PromiseLike<R>, errorMapFn: (reason: unknown) => E, ctor?: (arg: R) => Result<T, E> | PromiseLike<Result<T, E>>): (...args: Args) => Task<T, E>;
|
|
212
|
+
/**
|
|
213
|
+
* ======================
|
|
214
|
+
* TASK INSTANCE METHODS
|
|
215
|
+
* ======================
|
|
216
|
+
*/
|
|
217
|
+
/**
|
|
218
|
+
* Use this to return the `Task` itself. Canonical identity function.
|
|
219
|
+
*
|
|
220
|
+
* Mostly useful for flattening or en lieu of a noop.
|
|
221
|
+
*
|
|
222
|
+
* This is mostly provided for compatibility with with `Result<T, E>`.
|
|
223
|
+
*
|
|
224
|
+
* @category Task#Basic
|
|
225
|
+
*/
|
|
226
|
+
id(): Task<T, E>;
|
|
227
|
+
clone(): Task<T, E>;
|
|
228
|
+
map<T2>(mapFn: (v: T) => T2 | PromiseLike<T2>): Task<T2, E>;
|
|
229
|
+
mapOr<T2>(mapFn: (v: T) => T2 | PromiseLike<T2>, orValue: T2 | PromiseLike<T2>): Task<T2, never>;
|
|
230
|
+
mapOrElse<T2>(mapFn: (v: T) => T2 | PromiseLike<T2>, orFn: (e: E) => T2 | PromiseLike<T2>): Task<T2, never>;
|
|
231
|
+
mapErr<E2>(mapFn: (v: E) => E2 | PromiseLike<E2>): Task<T, E2>;
|
|
232
|
+
andThen<T2, E2>(thenFn: (v: T) => Result<T2, E2> | PromiseLike<Result<T2, E2>>): Task<T2, E | E2>;
|
|
233
|
+
orElse<T2, E2>(elseFn: (v: E) => Result<T2, E2> | PromiseLike<Result<T2, E2>>): Task<T | T2, E2>;
|
|
234
|
+
/**
|
|
235
|
+
* Use this to conditionally pass-through the encapsulated value `<T>`
|
|
236
|
+
* based upon the outcome of the supplied `ensureFn`.
|
|
237
|
+
*
|
|
238
|
+
* In case of `Err<E>`, this method short-circuits.
|
|
239
|
+
*
|
|
240
|
+
* In case of `Ok<T>`, the supplied `ensureFn` is called with the encapsulated
|
|
241
|
+
* value `<T>` and if the return value is:
|
|
242
|
+
* - `Ok<T2>`: it is discarded and the original `Ok<T>` is returned
|
|
243
|
+
* - `Err<E2>`: `Err<E2>` is returned
|
|
244
|
+
*
|
|
245
|
+
* See {@linkcode Task#orEnsure} for the opposite case.
|
|
246
|
+
*
|
|
247
|
+
* This is equivalent to chaining:
|
|
248
|
+
* `original.andThen(ensureFn).and(original)`
|
|
249
|
+
*
|
|
250
|
+
* |**LHS andEnsure RHS**|**RHS: Ok<T2>**|**RHS: Err<E2>**|
|
|
251
|
+
* |:-------------------:|:-------------:|:--------------:|
|
|
252
|
+
* | **LHS: Ok<T>** | Ok<T> | Err<E2> |
|
|
253
|
+
* | **LHS: Err<E>** | Err<E> | Err<E> |
|
|
254
|
+
*
|
|
255
|
+
* @category Task#Advanced
|
|
256
|
+
*
|
|
257
|
+
* @example
|
|
258
|
+
* ```typescript
|
|
259
|
+
* import { Task } from "./task.ts";
|
|
260
|
+
*
|
|
261
|
+
* function getPath(): Task<string, Error> { return Task.succeed("/home")};
|
|
262
|
+
* function isReadableDir(path: string): Task<void, TypeError> { return Task.succeed(undefined) };
|
|
263
|
+
* function getFileExtensions(path: string): Task<string[], Error> { return Task.succeed([".ts"])};
|
|
264
|
+
*
|
|
265
|
+
* getPath()
|
|
266
|
+
* .andEnsure(isReadableDir)
|
|
267
|
+
* .andThen(getFileExtensions)
|
|
268
|
+
* .inspect((exts: string[]) => console.log(exts))
|
|
269
|
+
* .inspectErr((err: Error | TypeError) => console.log(err))
|
|
270
|
+
* ```
|
|
271
|
+
*/
|
|
272
|
+
andEnsure<T2, E2>(ensureFn: (v: T) => Result<T2, E2> | PromiseLike<Result<T2, E2>>): Task<T, E | E2>;
|
|
273
|
+
/**
|
|
274
|
+
* Use this to conditionally pass-through the encapsulated value `<E>`
|
|
275
|
+
* based upon the outcome of the supplied `ensureFn`.
|
|
276
|
+
*
|
|
277
|
+
* In case of `Ok<T>`, this method short-circuits.
|
|
278
|
+
*
|
|
279
|
+
* In case of `Err<E>`, the supplied `ensureFn` is called with the encapsulated
|
|
280
|
+
* value `<E>` and if the return value is:
|
|
281
|
+
* - `Ok<T2>`: it is returned
|
|
282
|
+
* - `Err<T2>`: it is discarded and the original `Err<E>` is returned
|
|
283
|
+
*
|
|
284
|
+
* See {@linkcode Task#andEnsure} for the opposite case.
|
|
285
|
+
*
|
|
286
|
+
* This is equivalent to chaining:
|
|
287
|
+
* `original.orElse(ensureFn).or(original)`
|
|
288
|
+
*
|
|
289
|
+
* |**LHS orEnsure RHS**|**RHS: Ok<T2>**|**RHS: Err<E2>**|
|
|
290
|
+
* |:------------------:|:-------------:|:--------------:|
|
|
291
|
+
* | **LHS: Ok<T>** | Ok<T> | Ok<T> |
|
|
292
|
+
* | **LHS: Err<E>** | Ok<T2> | Err<E> |
|
|
293
|
+
*
|
|
294
|
+
* @category Task#Advanced
|
|
295
|
+
*
|
|
296
|
+
* @example
|
|
297
|
+
* ```typescript
|
|
298
|
+
* import { Task } from "./task.ts";
|
|
299
|
+
*
|
|
300
|
+
* function getConfig(): Task<string, RangeError> { return Task.succeed("secret")};
|
|
301
|
+
* function getFallback(err: RangeError): Task<string, Error> { return Task.succeed("default")};
|
|
302
|
+
* function configureService(path: string): Task<void, TypeError> {return Task.succeed(undefined)};
|
|
303
|
+
*
|
|
304
|
+
* getConfig()
|
|
305
|
+
* .orEnsure(getFallback)
|
|
306
|
+
* .andThen(configureService)
|
|
307
|
+
* .inspect((_: void) => console.log("Done!"))
|
|
308
|
+
* .inspectErr((err: RangeError | TypeError) => console.log(err))
|
|
309
|
+
* ```
|
|
310
|
+
*/
|
|
311
|
+
orEnsure<T2, E2>(ensureFn: (v: E) => Result<T2, E2> | PromiseLike<Result<T2, E2>>): Task<T | T2, E>;
|
|
312
|
+
zip<T2, E2>(rhs: Result<T2, E2> | PromiseLike<Result<T2, E2>>): Task<[T, T2], E | E2>;
|
|
313
|
+
tap(tapFn: (v: Result<T, E>) => void | PromiseLike<void>): Task<T, E>;
|
|
314
|
+
inspect(inspectFn: (v: T) => void | PromiseLike<void>): Task<T, E>;
|
|
315
|
+
inspectErr(inspectFn: (v: E) => void | PromiseLike<void>): Task<T, E>;
|
|
316
|
+
/**
|
|
317
|
+
* @deprecated (will be removed in 1.0.0) use {@linkcode Task#andEnsure} instead
|
|
318
|
+
*/
|
|
319
|
+
trip<T2, E2>(tripFn: (v: T) => Result<T2, E2> | PromiseLike<Result<T2, E2>>): Task<T, E | E2>;
|
|
320
|
+
/**
|
|
321
|
+
* @deprecated (will be removed in 1.0.0) use {@linkcode Task#orEnsure} instead
|
|
322
|
+
*/
|
|
323
|
+
rise<T2, E2>(riseFn: (v: E) => Result<T2, E2> | PromiseLike<Result<T2, E2>>): Task<T | T2, E>;
|
|
324
|
+
/**
|
|
325
|
+
* Use this to get the wrapped value out of an `Task<T, E>` instance
|
|
326
|
+
*
|
|
327
|
+
* Returns the wrapped value of type `<T>` in case of `Ok<T>` OR
|
|
328
|
+
* `<E>` in case of `Err<E>`.
|
|
329
|
+
*
|
|
330
|
+
* In contrast to other implementations, this method NEVER throws an
|
|
331
|
+
* exception
|
|
332
|
+
*
|
|
333
|
+
* @category Task#Basic
|
|
334
|
+
*
|
|
335
|
+
* @example
|
|
336
|
+
* ```typescript
|
|
337
|
+
* import { assert } from "../core/assert.ts";
|
|
338
|
+
* import { Result } from "../core/result.ts";
|
|
339
|
+
* import { Task } from "./task.ts";
|
|
340
|
+
*
|
|
341
|
+
* const ok = Result(42) as Result<number, string>;
|
|
342
|
+
* const task = Task.of(ok);
|
|
343
|
+
*
|
|
344
|
+
* const union: number | string = await task.unwrap();
|
|
345
|
+
*
|
|
346
|
+
* assert(union === 42);
|
|
347
|
+
* ```
|
|
348
|
+
*/
|
|
349
|
+
unwrap(): Promise<T | E>;
|
|
350
|
+
/**
|
|
351
|
+
* Same as {@linkcode Task#unwrap} but returns a default value in case the
|
|
352
|
+
* underlying `Result<T, E>` is an `Err<E>`
|
|
353
|
+
*
|
|
354
|
+
* @category Task#Basic
|
|
355
|
+
*
|
|
356
|
+
* @example
|
|
357
|
+
* ```typescript
|
|
358
|
+
* import { assert } from "../core/assert.ts";
|
|
359
|
+
* import { Result } from "../core/result.ts";
|
|
360
|
+
* import { Task } from "./task.ts";
|
|
361
|
+
*
|
|
362
|
+
* const err = Result(Error()) as Result<number, Error>;
|
|
363
|
+
* const task = Task.of(err);
|
|
364
|
+
*
|
|
365
|
+
* const union: number | string = await task.unwrapOr(Promise.resolve("foo"));
|
|
366
|
+
*
|
|
367
|
+
* assert(union === "foo");
|
|
368
|
+
* ```
|
|
369
|
+
*/
|
|
370
|
+
unwrapOr<T2>(orValue: T2 | PromiseLike<T2>): Promise<T | T2>;
|
|
371
|
+
/**
|
|
372
|
+
* Same as {@linkcode Task#unwrap} but returns a fallback value, which can based
|
|
373
|
+
* constructed from the underlying value of type `<E>` in case of `Err<E>`
|
|
374
|
+
*
|
|
375
|
+
* @category Task#Basic
|
|
376
|
+
*
|
|
377
|
+
* @example
|
|
378
|
+
* ```typescript
|
|
379
|
+
* import { assert } from "../core/assert.ts";
|
|
380
|
+
* import { Result } from "../core/result.ts";
|
|
381
|
+
* import { Task } from "./task.ts";
|
|
382
|
+
*
|
|
383
|
+
* const err = Result(Error("foo")) as Result<number, Error>;
|
|
384
|
+
* const task = Task.of(err);
|
|
385
|
+
*
|
|
386
|
+
* const union: number | string = await task.unwrapOrElse(
|
|
387
|
+
* async (err) => err.message
|
|
388
|
+
* );
|
|
389
|
+
*
|
|
390
|
+
* assert(union === "foo");
|
|
391
|
+
* ```
|
|
392
|
+
*/
|
|
393
|
+
unwrapOrElse<T2>(orFn: (e: E) => T2 | PromiseLike<T2>): Promise<T | T2>;
|
|
394
|
+
/**
|
|
395
|
+
* Use this to obtain an async iterator of the encapsulated value `<T>`
|
|
396
|
+
*
|
|
397
|
+
* In case of failure, this method returns the empty `AsyncIteratorResult`
|
|
398
|
+
*
|
|
399
|
+
* @category Task#Advanced
|
|
400
|
+
*
|
|
401
|
+
* @example
|
|
402
|
+
* ```typescript
|
|
403
|
+
* import { assert } from "../core/assert.ts"
|
|
404
|
+
* import { Err, Ok, Result, Task } from "../mod.ts";
|
|
405
|
+
*
|
|
406
|
+
* const success = Task.succeed(42);
|
|
407
|
+
* const failure = Task.fail(Error());
|
|
408
|
+
*
|
|
409
|
+
* async function main() {
|
|
410
|
+
* const okIter = success.iter();
|
|
411
|
+
* const errIter = failure.iter();
|
|
412
|
+
*
|
|
413
|
+
* let okCount = 0;
|
|
414
|
+
* let okYieldedValue = undefined;
|
|
415
|
+
*
|
|
416
|
+
* for await (const v of okIter) {
|
|
417
|
+
* okCount += 1;
|
|
418
|
+
* okYieldedValue = v;
|
|
419
|
+
* }
|
|
420
|
+
*
|
|
421
|
+
* let errCount = 0;
|
|
422
|
+
* let errYieldedValue = undefined;
|
|
423
|
+
*
|
|
424
|
+
* for await (const v of errIter) {
|
|
425
|
+
* errCount += 1;
|
|
426
|
+
* errYieldedValue = v;
|
|
427
|
+
* }
|
|
428
|
+
*
|
|
429
|
+
* assert(okCount === 1);
|
|
430
|
+
* assert(okYieldedValue === 42);
|
|
431
|
+
* assert(errCount === 0)
|
|
432
|
+
* assert(errYieldedValue === undefined);
|
|
433
|
+
* }
|
|
434
|
+
*
|
|
435
|
+
* main().then(() => console.log("Done"));
|
|
436
|
+
* ```
|
|
437
|
+
*/
|
|
438
|
+
iter(): AsyncIterableIterator<T>;
|
|
439
|
+
/**
|
|
440
|
+
* ============================
|
|
441
|
+
* WELL-KNOWN SYMBOLS & METHODS
|
|
442
|
+
* ============================
|
|
443
|
+
*/
|
|
444
|
+
/**
|
|
445
|
+
* Use this to get the full string tag
|
|
446
|
+
* Short-hand for `Object.prototype.toString.call(task)`
|
|
447
|
+
*
|
|
448
|
+
* See the [reference](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toString)
|
|
449
|
+
*
|
|
450
|
+
* @category Task#Advanced
|
|
451
|
+
*
|
|
452
|
+
* @example
|
|
453
|
+
* ```typescript
|
|
454
|
+
* import { assert } from "../core/assert.ts";
|
|
455
|
+
* import { Task } from "./task.ts"
|
|
456
|
+
*
|
|
457
|
+
* const tag = Task.succeed(42).toString();
|
|
458
|
+
*
|
|
459
|
+
* assert(tag === "[object aetherway.Task]");
|
|
460
|
+
* ```
|
|
461
|
+
*/
|
|
462
|
+
toString(): string;
|
|
463
|
+
/**
|
|
464
|
+
* This well-known symbol is called by `Object.prototype.toString` to
|
|
465
|
+
* obtain a string representation of a value's type
|
|
466
|
+
*
|
|
467
|
+
* This maybe useful for debugging or certain logs
|
|
468
|
+
*
|
|
469
|
+
* The [`.toString()`]{@link this#toString} method is a useful short-hand in these scenarios
|
|
470
|
+
*
|
|
471
|
+
* See the [reference](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/toStringTag)
|
|
472
|
+
*
|
|
473
|
+
* @category Task#Advanced
|
|
474
|
+
*
|
|
475
|
+
* @example
|
|
476
|
+
* ```typescript
|
|
477
|
+
* import { assert } from "../core/assert.ts";
|
|
478
|
+
* import { Task } from "./task.ts"
|
|
479
|
+
*
|
|
480
|
+
* const task = Task.succeed({ a: 1, b: 2 });
|
|
481
|
+
*
|
|
482
|
+
* const toString = Object.prototype.toString;
|
|
483
|
+
*
|
|
484
|
+
* assert(toString.call(task) === "[object aetherway.Task]");
|
|
485
|
+
* assert(toString.call(Task) === "[object aetherway.Task]");
|
|
486
|
+
* ```
|
|
487
|
+
*/
|
|
488
|
+
get [Symbol.toStringTag](): string;
|
|
489
|
+
static get [Symbol.toStringTag](): string;
|
|
490
|
+
/**
|
|
491
|
+
* In case of success AND that the encapsulated value `<T>` implements the
|
|
492
|
+
* async iterator protocol, this delegates to the underlying implementation
|
|
493
|
+
*
|
|
494
|
+
* In all other cases, it yields the empty `AsyncIteratorResult`
|
|
495
|
+
*
|
|
496
|
+
* @category Task#Advanced
|
|
497
|
+
*/
|
|
498
|
+
[Symbol.asyncIterator](): AsyncIterableIterator<T extends AsyncIterable<infer U> ? U : never>;
|
|
499
|
+
}
|
|
500
|
+
//# sourceMappingURL=task.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/async/task.ts"],"names":[],"mappings":"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"}
|