@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,156 @@
|
|
|
1
|
+
import { Err, Ok } from "../core/result.js";
|
|
2
|
+
/**
|
|
3
|
+
* @internal
|
|
4
|
+
*/
|
|
5
|
+
export async function idTask(task) {
|
|
6
|
+
return await task;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
export async function cloneTask(task) {
|
|
12
|
+
return (await task).clone();
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* @internal
|
|
16
|
+
*/
|
|
17
|
+
export async function mapTaskSuccess(task, mapFn) {
|
|
18
|
+
const res = await task;
|
|
19
|
+
if (res.isErr())
|
|
20
|
+
return res;
|
|
21
|
+
const mapped = await mapFn(res.unwrap());
|
|
22
|
+
return Ok(mapped);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* @internal
|
|
26
|
+
*/
|
|
27
|
+
export async function mapTaskSuccessOr(task, mapFn, orValue) {
|
|
28
|
+
const res = await task;
|
|
29
|
+
const mapped = res.isErr() ? await orValue : await mapFn(res.unwrap());
|
|
30
|
+
return Ok(mapped);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* @internal
|
|
34
|
+
*/
|
|
35
|
+
export async function mapTaskSuccessOrElse(task, mapFn, orFn) {
|
|
36
|
+
const res = await task;
|
|
37
|
+
const mapped = res.isErr()
|
|
38
|
+
? await orFn(res.unwrap())
|
|
39
|
+
: await mapFn(res.unwrap());
|
|
40
|
+
return Ok(mapped);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* @internal
|
|
44
|
+
*/
|
|
45
|
+
export async function mapTaskFailure(task, mapFn) {
|
|
46
|
+
const res = await task;
|
|
47
|
+
if (res.isOk())
|
|
48
|
+
return res;
|
|
49
|
+
const mappedErr = await mapFn(res.unwrap());
|
|
50
|
+
return Err(mappedErr);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* @internal
|
|
54
|
+
*/
|
|
55
|
+
export async function chainTaskSuccess(task, thenFn) {
|
|
56
|
+
const res = await task;
|
|
57
|
+
if (res.isErr())
|
|
58
|
+
return res;
|
|
59
|
+
return thenFn(res.unwrap());
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* @internal
|
|
63
|
+
*/
|
|
64
|
+
export async function chainTaskFailure(task, elseFn) {
|
|
65
|
+
const res = await task;
|
|
66
|
+
if (res.isOk())
|
|
67
|
+
return res;
|
|
68
|
+
return elseFn(res.unwrap());
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* @internal
|
|
72
|
+
*/
|
|
73
|
+
export async function tapTask(task, tapFn) {
|
|
74
|
+
const res = (await task).clone();
|
|
75
|
+
await tapFn(res);
|
|
76
|
+
return task;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* @internal
|
|
80
|
+
*/
|
|
81
|
+
export async function inspectTaskSuccess(task, inspectFn) {
|
|
82
|
+
const res = await task;
|
|
83
|
+
if (res.isOk()) {
|
|
84
|
+
await inspectFn(res.unwrap());
|
|
85
|
+
}
|
|
86
|
+
return task;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* @internal
|
|
90
|
+
*/
|
|
91
|
+
export async function inspectTaskFailure(task, inspectFn) {
|
|
92
|
+
const res = await task;
|
|
93
|
+
if (res.isErr()) {
|
|
94
|
+
await inspectFn(res.unwrap());
|
|
95
|
+
}
|
|
96
|
+
return task;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* @internal
|
|
100
|
+
*/
|
|
101
|
+
export async function zipTask(task1, task2) {
|
|
102
|
+
return (await task1).zip(await task2);
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* @internal
|
|
106
|
+
*/
|
|
107
|
+
export async function andEnsureTask(task, ensureFn) {
|
|
108
|
+
const original = await task;
|
|
109
|
+
if (original.isErr())
|
|
110
|
+
return original;
|
|
111
|
+
const res = await ensureFn(original.unwrap());
|
|
112
|
+
return res.and(original);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* @internal
|
|
116
|
+
*/
|
|
117
|
+
export async function orEnsureTask(task, ensureFn) {
|
|
118
|
+
const original = await task;
|
|
119
|
+
if (original.isOk())
|
|
120
|
+
return original;
|
|
121
|
+
const res = await ensureFn(original.unwrap());
|
|
122
|
+
return res.or(original);
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* @internal
|
|
126
|
+
*/
|
|
127
|
+
export async function unwrapTask(task) {
|
|
128
|
+
return (await task).unwrap();
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* @internal
|
|
132
|
+
*/
|
|
133
|
+
export async function unwrapTaskOr(task, orValue) {
|
|
134
|
+
const res = await task;
|
|
135
|
+
if (res.isOk())
|
|
136
|
+
return res.unwrap();
|
|
137
|
+
return orValue;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* @internal
|
|
141
|
+
*/
|
|
142
|
+
export async function unwrapTaskOrElse(task, orFn) {
|
|
143
|
+
const res = await task;
|
|
144
|
+
if (res.isOk())
|
|
145
|
+
return res.unwrap();
|
|
146
|
+
return orFn(res.unwrap());
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* @internal
|
|
150
|
+
*/
|
|
151
|
+
export async function* iterTask(task) {
|
|
152
|
+
const res = await task;
|
|
153
|
+
if (res.isErr())
|
|
154
|
+
return;
|
|
155
|
+
yield res.unwrap();
|
|
156
|
+
}
|