brass-runtime 1.2.1 → 1.3.1
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/README.md +81 -0
- package/dist/examples/fromPromise.js +1 -1
- package/dist/examples/fromPromise.js.map +1 -1
- package/dist/types/asyncEffect.d.ts +8 -1
- package/dist/types/asyncEffect.d.ts.map +1 -1
- package/dist/types/asyncEffect.js +56 -4
- package/dist/types/asyncEffect.js.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -102,6 +102,87 @@ Do not copy the example here — open `src/examples/fromPromise.ts` for details.
|
|
|
102
102
|
|
|
103
103
|
Adjust the commands to your preferred setup. The project intentionally leaves runtime execution flexible (ts-node, esbuild, tsc + node, etc.).
|
|
104
104
|
|
|
105
|
+
|
|
106
|
+
## Examples — abortable Promises (DX)
|
|
107
|
+
|
|
108
|
+
Below are small, copy-pasteable examples showing how to use the abortable helpers: `tryPromiseAbortable` and `fromPromiseAbortable`. Use these snippets in examples or docs to demonstrate typical flows: plain signal, env+signal, custom error mapping and cancellation.
|
|
109
|
+
|
|
110
|
+
### 1) Signal-only thunk (uses `tryPromiseAbortable`)
|
|
111
|
+
```typescript
|
|
112
|
+
import { tryPromiseAbortable, toPromise, fork } from './src/asyncEffect';
|
|
113
|
+
|
|
114
|
+
// A thunk that only expects an AbortSignal
|
|
115
|
+
const fetchUser = tryPromiseAbortable(async (signal: AbortSignal) => {
|
|
116
|
+
const res = await fetch('https://jsonplaceholder.typicode.com/users/1', { signal });
|
|
117
|
+
if (!res.ok) throw new Error('HTTP ' + res.status);
|
|
118
|
+
return await res.json();
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
async function example() {
|
|
122
|
+
// Await via runtime helper toPromise (env = {})
|
|
123
|
+
try {
|
|
124
|
+
const user = await toPromise(fetchUser, {});
|
|
125
|
+
console.log('user', user);
|
|
126
|
+
} catch (err) {
|
|
127
|
+
console.error('failed', err);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
// Cancellation example using fork + interrupt
|
|
132
|
+
function cancelExample() {
|
|
133
|
+
const fiber = fork(fetchUser as any, {}); // fork returns a Fiber
|
|
134
|
+
setTimeout(() => {
|
|
135
|
+
fiber.interrupt(); // will abort the underlying fetch via AbortController
|
|
136
|
+
console.log('interrupt requested');
|
|
137
|
+
}, 50);
|
|
138
|
+
}
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
### 2) Env + signal thunk (uses `fromPromiseAbortable`)
|
|
143
|
+
```typescript
|
|
144
|
+
import { tryPromiseAbortable, toPromise } from './src/asyncEffect';
|
|
145
|
+
|
|
146
|
+
type Env = { baseUrl: string };
|
|
147
|
+
|
|
148
|
+
const fetchWithEnv = tryPromiseAbortable<Env, any>((env, signal) =>
|
|
149
|
+
fetch(`${env.baseUrl}/users/1`, { signal }).then((r) => {
|
|
150
|
+
if (!r.ok) throw new Error('HTTP ' + r.status);
|
|
151
|
+
return r.json();
|
|
152
|
+
})
|
|
153
|
+
);
|
|
154
|
+
|
|
155
|
+
async function runEnv() {
|
|
156
|
+
const env: Env = { baseUrl: 'https://jsonplaceholder.typicode.com' };
|
|
157
|
+
try {
|
|
158
|
+
const user = await toPromise(fetchWithEnv, env);
|
|
159
|
+
console.log('user with env', user);
|
|
160
|
+
} catch (e) {
|
|
161
|
+
console.error('error', e);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### 3) Custom error mapping with fromPromiseAbortable
|
|
168
|
+
```typescript
|
|
169
|
+
import { fromPromiseAbortable, toPromise } from './src/asyncEffect';
|
|
170
|
+
|
|
171
|
+
// Map any rejection (including non-abort) to a custom error shape
|
|
172
|
+
const safeFetch = fromPromiseAbortable(
|
|
173
|
+
(signal: AbortSignal) => fetch('https://example.com/data', { signal }).then((r) => r.json()),
|
|
174
|
+
(e) => ({ kind: 'FetchError', detail: String(e) })
|
|
175
|
+
);
|
|
176
|
+
|
|
177
|
+
async function runSafe() {
|
|
178
|
+
try {
|
|
179
|
+
const data = await toPromise(safeFetch, {});
|
|
180
|
+
console.log('data', data);
|
|
181
|
+
} catch (err) {
|
|
182
|
+
console.error('mapped error', err);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
```
|
|
105
186
|
---
|
|
106
187
|
|
|
107
188
|
## Project structure (recommended)
|
|
@@ -18,7 +18,7 @@ function sleepAbortable(ms, signal) {
|
|
|
18
18
|
function slowRangeFromPromise(start, end, msPerElem) {
|
|
19
19
|
const go = (i) => (0, stream_1.fromPull)(i > end
|
|
20
20
|
? (0, asyncEffect_1.asyncFail)(option_1.none)
|
|
21
|
-
: (0, asyncEffect_1.asyncFlatMap)((0, asyncEffect_1.fromPromiseAbortable)(async (
|
|
21
|
+
: (0, asyncEffect_1.asyncFlatMap)((0, asyncEffect_1.fromPromiseAbortable)(async (signal) => {
|
|
22
22
|
await sleepAbortable(msPerElem, signal);
|
|
23
23
|
return i;
|
|
24
24
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fromPromise.js","sourceRoot":"","sources":["../../src/examples/fromPromise.ts"],"names":[],"mappings":";;AAgBA,oDAuBC;AAvCD,sDAA4G;AAC5G,4CAAuC;AACvC,6CAAkE;AAClE,6CAAwC;AAExC,6BAA6B;AAC7B,SAAS,cAAc,CAAC,EAAU,EAAE,MAAmB;IACnD,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC5B,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC9B,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YAClC,YAAY,CAAC,CAAC,CAAC,CAAC;YAChB,GAAG,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAgB,oBAAoB,CAChC,KAAa,EACb,GAAW,EACX,SAAiB;IAEjB,MAAM,EAAE,GAAG,CAAC,CAAS,EAAmC,EAAE,CACtD,IAAA,iBAAQ,EACJ,CAAC,GAAG,GAAG;QACH,CAAC,CAAC,IAAA,uBAAS,EAAC,aAAI,CAAC;QACjB,CAAC,CAAC,IAAA,0BAAY,EACV,IAAA,kCAAoB,EAChB,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"fromPromise.js","sourceRoot":"","sources":["../../src/examples/fromPromise.ts"],"names":[],"mappings":";;AAgBA,oDAuBC;AAvCD,sDAA4G;AAC5G,4CAAuC;AACvC,6CAAkE;AAClE,6CAAwC;AAExC,6BAA6B;AAC7B,SAAS,cAAc,CAAC,EAAU,EAAE,MAAmB;IACnD,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC5B,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC9B,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YAClC,YAAY,CAAC,CAAC,CAAC,CAAC;YAChB,GAAG,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAgB,oBAAoB,CAChC,KAAa,EACb,GAAW,EACX,SAAiB;IAEjB,MAAM,EAAE,GAAG,CAAC,CAAS,EAAmC,EAAE,CACtD,IAAA,iBAAQ,EACJ,CAAC,GAAG,GAAG;QACH,CAAC,CAAC,IAAA,uBAAS,EAAC,aAAI,CAAC;QACjB,CAAC,CAAC,IAAA,0BAAY,EACV,IAAA,kCAAoB,EAChB,KAAK,EAAE,MAAmB,EAAE,EAAE;YAC1B,MAAM,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACxC,OAAO,CAAC,CAAC;QACb,CAAC;QACD,iEAAiE;QACjE,GAAG,EAAE,CAAE,SAAmB,CAC7B,EACD,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,0BAAY,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAA8C,CAAC,CACnF,CACR,CAAC;IAEN,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;AACrB,CAAC;AAGD,KAAK,UAAU,uBAAuB;IAClC,MAAM,CAAC,GAAG,oBAAoB,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1C,MAAM,EAAE,GAAG,IAAA,eAAM,EAAC,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC;IAExC,MAAM,GAAG,GAAG,MAAM,IAAA,uBAAS,EAAC,IAAA,sBAAa,EAAC,EAAE,CAAC,EAAE,SAAgB,CAAC,CAAC;IAEjE,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC;AACD,KAAK,UAAU,sBAAsB;IACjC,MAAM,CAAC,GAAG,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEzC,MAAM,GAAG,GAAG,MAAM,IAAA,uBAAS,EAAC,IAAA,sBAAa,EAAC,CAAC,CAAC,EAAE,SAAgB,CAAC,CAAC;IAEhE,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC1B,wBAAwB;AAC5B,CAAC;AAED,sBAAsB,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAE9C,uBAAuB,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
|
|
@@ -2,6 +2,7 @@ import type { Exit } from "./effect";
|
|
|
2
2
|
import { Canceler } from "./cancel";
|
|
3
3
|
import { BrassError } from "../fibers/fiber";
|
|
4
4
|
import { Scope } from "../scheduler/scope";
|
|
5
|
+
type NodeCallback<A> = (err: Error | null, result: A) => void;
|
|
5
6
|
export type Async<R, E, A> = {
|
|
6
7
|
_tag: "Succeed";
|
|
7
8
|
value: A;
|
|
@@ -27,6 +28,8 @@ export type Async<R, E, A> = {
|
|
|
27
28
|
export declare function asyncFold<R, E, A, B>(fa: Async<R, E, A>, onFailure: (e: E) => Async<R, E, B>, onSuccess: (a: A) => Async<R, E, B>): Async<R, E, B>;
|
|
28
29
|
export declare function asyncCatchAll<R, E, A, R2, E2, B>(fa: Async<R, E, A>, handler: (e: E) => Async<R2, E2, B>): Async<R & R2, E2, A | B>;
|
|
29
30
|
export declare function asyncMapError<R, E, E2, A>(fa: Async<R, E, A>, f: (e: E) => E2): Async<R, E2, A>;
|
|
31
|
+
export declare function from<A>(f: (cb: NodeCallback<A>) => void): Async<{}, Error, A>;
|
|
32
|
+
export declare function from<A>(thunk: () => Promise<A>): Async<{}, Error, A>;
|
|
30
33
|
export declare function unit(): Async<unknown, unknown, undefined>;
|
|
31
34
|
export declare const asyncSucceed: <A>(value: A) => Async<unknown, never, A>;
|
|
32
35
|
export declare const asyncFail: <E>(error: E) => Async<unknown, E, never>;
|
|
@@ -37,8 +40,12 @@ export declare function asyncMap<R, E, A, B>(fa: Async<R, E, A>, f: (a: A) => B)
|
|
|
37
40
|
export declare function asyncFlatMap<R, E, A, B>(fa: Async<R, E, A>, f: (a: A) => Async<R, E, B>): Async<R, E, B>;
|
|
38
41
|
export declare function toPromise<R, E, A>(eff: Async<R, E, A>, env: R): Promise<A>;
|
|
39
42
|
export declare function fromPromise<R, E, A>(thunk: (env: R) => Promise<A>, onError: (e: unknown) => E): Async<R, E, A>;
|
|
40
|
-
export declare function
|
|
43
|
+
export declare function fromCallback<A>(f: (cb: NodeCallback<A>) => void): Async<{}, Error, A>;
|
|
44
|
+
export declare function tryPromiseAbortable<A>(thunk: (signal: AbortSignal) => Promise<A>): Async<unknown, BrassError, A>;
|
|
45
|
+
export declare function tryPromiseAbortable<R, A>(thunk: (env: R, signal: AbortSignal) => Promise<A>): Async<R, BrassError, A>;
|
|
46
|
+
export declare function fromPromiseAbortable<E, A>(thunk: (signal: AbortSignal) => Promise<A>, onError: (e: unknown) => E): Async<unknown, E, A>;
|
|
41
47
|
export declare function fromPromiseAbortable<R, E, A>(thunk: (env: R, signal: AbortSignal) => Promise<A>, onError: (e: unknown) => E): Async<R, E, A>;
|
|
42
48
|
export declare function acquireRelease<R, E, A>(acquire: Async<R, E, A>, release: (res: A, exit: Exit<E, any>) => Async<R, any, any>, scope: Scope<R>): Async<R, E, A>;
|
|
43
49
|
export declare function asyncInterruptible<R, E, A>(register: (env: R, cb: (exit: Exit<E, A>) => void) => void | Canceler): Async<R, E, A>;
|
|
50
|
+
export {};
|
|
44
51
|
//# sourceMappingURL=asyncEffect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asyncEffect.d.ts","sourceRoot":"","sources":["../../src/types/asyncEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAC,QAAQ,EAAC,MAAM,UAAU,CAAC;AAClC,OAAO,EAAC,UAAU,EAAO,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAC,KAAK,EAAC,MAAM,oBAAoB,CAAC;AAGzC,MAAM,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IACnB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GAC7B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GAC1B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,KAAK,IAAI,GAAG,QAAQ,CAAA;CAAE,GACxF;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IAAC,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;CAAE,GACjF;IACF,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IACxB,SAAS,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACtC,SAAS,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CACzC,CAAC;AAIF,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAChC,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAClB,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACnC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACpC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAEhB;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAC5C,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAClB,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GACpC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAM1B;AAGD,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EACrC,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAClB,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,GAChB,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAMjB;
|
|
1
|
+
{"version":3,"file":"asyncEffect.d.ts","sourceRoot":"","sources":["../../src/types/asyncEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,11 +4,13 @@ exports.async = exports.asyncTotal = exports.asyncSync = exports.asyncFail = exp
|
|
|
4
4
|
exports.asyncFold = asyncFold;
|
|
5
5
|
exports.asyncCatchAll = asyncCatchAll;
|
|
6
6
|
exports.asyncMapError = asyncMapError;
|
|
7
|
+
exports.from = from;
|
|
7
8
|
exports.unit = unit;
|
|
8
9
|
exports.asyncMap = asyncMap;
|
|
9
10
|
exports.asyncFlatMap = asyncFlatMap;
|
|
10
11
|
exports.toPromise = toPromise;
|
|
11
12
|
exports.fromPromise = fromPromise;
|
|
13
|
+
exports.fromCallback = fromCallback;
|
|
12
14
|
exports.tryPromiseAbortable = tryPromiseAbortable;
|
|
13
15
|
exports.fromPromiseAbortable = fromPromiseAbortable;
|
|
14
16
|
exports.acquireRelease = acquireRelease;
|
|
@@ -23,6 +25,29 @@ function asyncCatchAll(fa, handler) {
|
|
|
23
25
|
function asyncMapError(fa, f) {
|
|
24
26
|
return asyncFold(fa, (e) => (0, exports.asyncFail)(f(e)), (a) => (0, exports.asyncSucceed)(a));
|
|
25
27
|
}
|
|
28
|
+
function from(x) {
|
|
29
|
+
return (0, exports.async)((env, cb) => {
|
|
30
|
+
let done = false;
|
|
31
|
+
const once = (r) => { if (!done) {
|
|
32
|
+
done = true;
|
|
33
|
+
cb(r);
|
|
34
|
+
} };
|
|
35
|
+
const fail = (e) => once({ _tag: "Failure", error: e instanceof Error ? e : new Error(String(e)) });
|
|
36
|
+
const ok = (v) => once({ _tag: "Success", value: v });
|
|
37
|
+
try {
|
|
38
|
+
// Si la función espera callback (arity >= 1), asumimos callback-style
|
|
39
|
+
if (typeof x === "function" && x.length >= 1) {
|
|
40
|
+
x((err, result) => err ? fail(err) : ok(result));
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
x().then(ok, fail);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
catch (e) {
|
|
47
|
+
fail(e);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
26
51
|
function unit() {
|
|
27
52
|
return (0, exports.asyncSync)(() => undefined);
|
|
28
53
|
}
|
|
@@ -77,16 +102,40 @@ function fromPromise(thunk, onError) {
|
|
|
77
102
|
.catch((err) => cb({ _tag: "Failure", error: onError(err) }));
|
|
78
103
|
});
|
|
79
104
|
}
|
|
105
|
+
function fromCallback(f) {
|
|
106
|
+
return (0, exports.async)((env, cb) => {
|
|
107
|
+
let done = false;
|
|
108
|
+
const once = (x) => {
|
|
109
|
+
if (done)
|
|
110
|
+
return;
|
|
111
|
+
done = true;
|
|
112
|
+
cb(x);
|
|
113
|
+
};
|
|
114
|
+
try {
|
|
115
|
+
f((err, result) => {
|
|
116
|
+
if (err)
|
|
117
|
+
once({ _tag: "Failure", error: err });
|
|
118
|
+
else
|
|
119
|
+
once({ _tag: "Success", value: result });
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
catch (e) {
|
|
123
|
+
once({ _tag: "Failure", error: e instanceof Error ? e : new Error(String(e)) });
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
}
|
|
80
127
|
//TODO: Esto lo hago porque me interesa saber el nombre explicito de lo que falla, no solo que falle sino mas bien un detalle
|
|
81
128
|
const isAbortError = (e) => typeof e === "object" &&
|
|
82
129
|
e !== null &&
|
|
83
130
|
"name" in e &&
|
|
84
131
|
e.name === "AbortError";
|
|
85
132
|
function tryPromiseAbortable(thunk) {
|
|
86
|
-
|
|
87
|
-
?
|
|
88
|
-
:
|
|
133
|
+
const lifted = (env, signal) => thunk.length === 1
|
|
134
|
+
? thunk(signal)
|
|
135
|
+
: thunk(env, signal);
|
|
136
|
+
return fromPromiseAbortable(lifted, (e) => isAbortError(e) ? { _tag: "Abort" } : { _tag: "PromiseRejected", reason: e });
|
|
89
137
|
}
|
|
138
|
+
// 3) Implementación (usa `any` internamente para unificar)
|
|
90
139
|
function fromPromiseAbortable(thunk, onError) {
|
|
91
140
|
return (0, exports.async)((env, cb) => {
|
|
92
141
|
const ac = new AbortController();
|
|
@@ -98,7 +147,10 @@ function fromPromiseAbortable(thunk, onError) {
|
|
|
98
147
|
cb(exit);
|
|
99
148
|
};
|
|
100
149
|
try {
|
|
101
|
-
|
|
150
|
+
// Si thunk declara 1 parámetro, asumimos (signal) => Promise<A>
|
|
151
|
+
const p = thunk.length === 1
|
|
152
|
+
? thunk(ac.signal)
|
|
153
|
+
: thunk(env, ac.signal);
|
|
102
154
|
p.then((value) => safeCb({ _tag: "Success", value }))
|
|
103
155
|
.catch((err) => safeCb({ _tag: "Failure", error: onError(err) }));
|
|
104
156
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asyncEffect.js","sourceRoot":"","sources":["../../src/types/asyncEffect.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"asyncEffect.js","sourceRoot":"","sources":["../../src/types/asyncEffect.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "brass-runtime",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.1",
|
|
4
4
|
"description": "Effect runtime utilities for TypeScript",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"author": "",
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"types": "./dist/index.d.ts",
|
|
11
11
|
"sideEffects": false,
|
|
12
12
|
"keywords": [
|
|
13
|
+
"runtime",
|
|
13
14
|
"functional",
|
|
14
15
|
"effect-system",
|
|
15
16
|
"algebraic-effects",
|