@typed/fx 0.0.27 → 0.0.30
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/.eslintcache +1 -1
- package/cjs/_internal.d.ts.map +1 -1
- package/cjs/_internal.js +9 -2
- package/cjs/_internal.js.map +1 -1
- package/cjs/fromDequeue.d.ts +4 -0
- package/cjs/fromDequeue.d.ts.map +1 -0
- package/cjs/fromDequeue.js +39 -0
- package/cjs/fromDequeue.js.map +1 -0
- package/cjs/fromHub.d.ts +4 -0
- package/cjs/fromHub.d.ts.map +1 -0
- package/cjs/fromHub.js +36 -0
- package/cjs/fromHub.js.map +1 -0
- package/cjs/index.d.ts +4 -0
- package/cjs/index.d.ts.map +1 -1
- package/cjs/index.js +4 -0
- package/cjs/index.js.map +1 -1
- package/cjs/toEnqueue.d.ts +5 -0
- package/cjs/toEnqueue.d.ts.map +1 -0
- package/cjs/toEnqueue.js +9 -0
- package/cjs/toEnqueue.js.map +1 -0
- package/cjs/toStream.d.ts +8 -0
- package/cjs/toStream.d.ts.map +1 -0
- package/cjs/toStream.js +64 -0
- package/cjs/toStream.js.map +1 -0
- package/cjs/transform.d.ts +1 -1
- package/cjs/transform.d.ts.map +1 -1
- package/cjs/transform.js.map +1 -1
- package/esm/_internal.d.ts.map +1 -1
- package/esm/_internal.js +9 -2
- package/esm/_internal.js.map +1 -1
- package/esm/fromDequeue.d.ts +4 -0
- package/esm/fromDequeue.d.ts.map +1 -0
- package/esm/fromDequeue.js +12 -0
- package/esm/fromDequeue.js.map +1 -0
- package/esm/fromHub.d.ts +4 -0
- package/esm/fromHub.d.ts.map +1 -0
- package/esm/fromHub.js +9 -0
- package/esm/fromHub.js.map +1 -0
- package/esm/index.d.ts +4 -0
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +4 -0
- package/esm/index.js.map +1 -1
- package/esm/toEnqueue.d.ts +5 -0
- package/esm/toEnqueue.d.ts.map +1 -0
- package/esm/toEnqueue.js +5 -0
- package/esm/toEnqueue.js.map +1 -0
- package/esm/toStream.d.ts +8 -0
- package/esm/toStream.d.ts.map +1 -0
- package/esm/toStream.js +37 -0
- package/esm/toStream.js.map +1 -0
- package/esm/transform.d.ts +1 -1
- package/esm/transform.d.ts.map +1 -1
- package/esm/transform.js.map +1 -1
- package/package.json +42 -2
- package/src/_internal.ts +11 -13
- package/src/fromDequeue.ts +17 -0
- package/src/fromHub.ts +12 -0
- package/src/index.ts +4 -0
- package/src/toEnqueue.ts +9 -0
- package/src/toStream.ts +81 -0
- package/src/transform.ts +3 -1
package/cjs/transform.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,+DAAgD;AAIhD,wEAAyD;AAEzD,mCAA4B;AAE5B,SAAgB,SAAS,CACvB,CAA2E;IAE3E,OAAO,CAAU,EAAe,EAAoB,EAAE,CAAC,IAAA,UAAE,EAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AAC5F,CAAC;AAJD,8BAIC;AAED,SAAgB,eAAe,CAAC,WAAmB;IACjD,OAAO,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAA;AACvD,CAAC;AAFD,0CAEC;AAEY,QAAA,wBAAwB,GAAG,SAAS,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAA;AAE3E,MAAM,aAAa,GAAG,CAAQ,SAAsC,EAAE,EAAE,CAC7E,SAAS,CAAa,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAA;AAD3C,QAAA,aAAa,iBAC8B;AAEjD,MAAM,iBAAiB,GAAG,CAC/B,SAAkE,EAClE,EAAE,CAAC,SAAS,CAAa,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAA;AAFlD,QAAA,iBAAiB,qBAEiC;AAExD,MAAM,gBAAgB,GAAG,CAAC,OAA0B,EAAE,EAAE,CAC7D,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAA;AADhC,QAAA,gBAAgB,oBACgB;AAEhC,QAAA,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,+DAAgD;AAIhD,wEAAyD;AAEzD,mCAA4B;AAE5B,SAAgB,SAAS,CACvB,CAA2E;IAE3E,OAAO,CAAU,EAAe,EAAoB,EAAE,CAAC,IAAA,UAAE,EAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AAC5F,CAAC;AAJD,8BAIC;AAED,SAAgB,eAAe,CAAC,WAAmB;IACjD,OAAO,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAA;AACvD,CAAC;AAFD,0CAEC;AAEY,QAAA,wBAAwB,GAAG,SAAS,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAA;AAE3E,MAAM,aAAa,GAAG,CAAQ,SAAsC,EAAE,EAAE,CAC7E,SAAS,CAAa,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAA;AAD3C,QAAA,aAAa,iBAC8B;AAEjD,MAAM,iBAAiB,GAAG,CAC/B,SAAkE,EAClE,EAAE,CAAC,SAAS,CAAa,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAA;AAFlD,QAAA,iBAAiB,qBAEiC;AAExD,MAAM,gBAAgB,GAAG,CAAC,OAA0B,EAAE,EAAE,CAC7D,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAA;AADhC,QAAA,gBAAgB,oBACgB;AAEhC,QAAA,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAEb,CAAA;AAEzB,MAAM,SAAS,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;AAAhE,QAAA,SAAS,aAAuD;AAEhE,QAAA,eAAe,GAAG,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;AACnD,QAAA,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;AAErD,MAAM,UAAU,GAAG,CAAC,IAA2B,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;AAApF,QAAA,UAAU,cAA0E;AAE1F,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,CAAC,IAA2B,EAAE,EAAE,CAC9E,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;AADrC,QAAA,WAAW,eAC0B"}
|
package/esm/_internal.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_internal.d.ts","sourceRoot":"","sources":["../src/_internal.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAEf,MAAM,mDAAmD,CAAA;AAG1D,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"_internal.d.ts","sourceRoot":"","sources":["../src/_internal.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAEf,MAAM,mDAAmD,CAAA;AAG1D,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAA;AAIhD,eAAO,MAAM,kBAAkB,eAA6B,CAAA;AAC5D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,GAAG,EAAE,OAAO,kBAAkB,CAAA;CACxC;AACD,eAAO,MAAM,gBAAgB,EAAE,gBAA8C,CAAA;AAE7E,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,gBAAgB,CAEpE;AAED,eAAO,MAAM,SAAS,oCAA+B,CAAA;AAErD,eAAO,MAAM,kBAAkB,qIAgB1B,CAAA;AAEL;;;GAGG;AACH,oBAAY,qBAAqB,GAAG;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IACrD,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAA;CAC/B,CAAA;AAED,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,MAAM,GACnB,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,qBAAqB,CAAC,CAQpD;AAED,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAC1D,YAAY,EAAE,MAAM,EACpB,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC3D,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GAC9B,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAMlC"}
|
package/esm/_internal.js
CHANGED
|
@@ -4,14 +4,21 @@ import * as Deferred from '@effect/core/io/Deferred';
|
|
|
4
4
|
import * as Effect from '@effect/core/io/Effect';
|
|
5
5
|
import * as Ref from '@effect/core/io/Ref';
|
|
6
6
|
import { pipe } from '@fp-ts/data/Function';
|
|
7
|
-
import * as Maybe from '@tsplus/stdlib/data/Maybe';
|
|
8
7
|
export const EARLY_EXIT_FAILURE = Symbol('EarlyExitFailure');
|
|
9
8
|
export const EarlyExitFailure = { sym: EARLY_EXIT_FAILURE };
|
|
10
9
|
export function isEarlyExitFailure(u) {
|
|
11
10
|
return typeof u === 'object' && u !== null && u.sym === EARLY_EXIT_FAILURE;
|
|
12
11
|
}
|
|
13
12
|
export const exitEarly = Effect.die(EarlyExitFailure);
|
|
14
|
-
export const onEarlyExitFailure = (handler) => (effect) => pipe(effect, Effect.foldCauseEffect((e) =>
|
|
13
|
+
export const onEarlyExitFailure = (handler) => (effect) => pipe(effect, Effect.foldCauseEffect((e) => {
|
|
14
|
+
const defects = Cause.defects(e);
|
|
15
|
+
for (const defect of defects) {
|
|
16
|
+
if (isEarlyExitFailure(defect)) {
|
|
17
|
+
return handler;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return Effect.failCause(e);
|
|
21
|
+
}, Effect.succeed));
|
|
15
22
|
export function makeDynamicCountdownLatch(initialCount) {
|
|
16
23
|
return pipe(Ref.makeRef(() => initialCount), Effect.zipWith(Deferred.make(), (ref, deferred) => ({
|
|
17
24
|
increment: ref.update((x) => x + 1),
|
package/esm/_internal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_internal.js","sourceRoot":"","sources":["../src/_internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,sBAAsB,GACvB,MAAM,mDAAmD,CAAA;AAC1D,OAAO,KAAK,KAAK,MAAM,uBAAuB,CAAA;AAC9C,OAAO,KAAK,QAAQ,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAA;AAChD,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"_internal.js","sourceRoot":"","sources":["../src/_internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,sBAAsB,GACvB,MAAM,mDAAmD,CAAA;AAC1D,OAAO,KAAK,KAAK,MAAM,uBAAuB,CAAA;AAC9C,OAAO,KAAK,QAAQ,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAA;AAChD,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAE3C,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAA;AAI5D,MAAM,CAAC,MAAM,gBAAgB,GAAqB,EAAE,GAAG,EAAE,kBAAkB,EAAE,CAAA;AAE7E,MAAM,UAAU,kBAAkB,CAAC,CAAU;IAC3C,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAK,CAAS,CAAC,GAAG,KAAK,kBAAkB,CAAA;AACrF,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;AAErD,MAAM,CAAC,MAAM,kBAAkB,GAC7B,CAAY,OAAiC,EAAE,EAAE,CACjD,CAAU,MAA8B,EAAwC,EAAE,CAChF,IAAI,CACF,MAAM,EACN,MAAM,CAAC,eAAe,CAAqD,CAAC,CAAC,EAAE,EAAE;IAC/E,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAEhC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC5B,IAAI,kBAAkB,CAAC,MAAM,CAAC,EAAE;YAC9B,OAAO,OAAO,CAAA;SACf;KACF;IAED,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;AAC5B,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CACnB,CAAA;AAWL,MAAM,UAAU,yBAAyB,CACvC,YAAoB;IAEpB,OAAO,IAAI,CACT,GAAG,CAAC,OAAO,CAAS,GAAG,EAAE,CAAC,YAAY,CAAC,EACvC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAe,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC/D,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QACnC,KAAK,EAAE,IAAI,sBAAsB,CAAC,GAAG,EAAE,QAAQ,CAAC;KACjD,CAAC,CAAC,CACJ,CAAA;AACH,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,YAAoB,EACpB,CAA2D,EAC3D,KAA+B;IAE/B,OAAO,IAAI,CACT,yBAAyB,CAAC,YAAY,CAAC,EACvC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EACb,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CACzE,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fromDequeue.d.ts","sourceRoot":"","sources":["../src/fromDequeue.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,uBAAuB,CAAA;AAE1C,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAE5B,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAWzE"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as Effect from '@effect/core/io/Effect';
|
|
2
|
+
import { Fx } from './Fx.js';
|
|
3
|
+
export function fromDequeue(dequeue) {
|
|
4
|
+
return Fx((emitter) => Effect.gen(function* ($) {
|
|
5
|
+
while (!(yield* $(dequeue.isShutdown))) {
|
|
6
|
+
const a = yield* $(dequeue.take);
|
|
7
|
+
yield* $(emitter.emit(a));
|
|
8
|
+
}
|
|
9
|
+
yield* $(emitter.end);
|
|
10
|
+
}));
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=fromDequeue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fromDequeue.js","sourceRoot":"","sources":["../src/fromDequeue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAA;AAGhD,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAE5B,MAAM,UAAU,WAAW,CAAI,OAAqB;IAClD,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CACpB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE;YACtC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YAChC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;SAC1B;QAED,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACvB,CAAC,CAAC,CACH,CAAA;AACH,CAAC"}
|
package/esm/fromHub.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fromHub.d.ts","sourceRoot":"","sources":["../src/fromHub.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAA;AAG1C,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAK5B,wBAAgB,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAE/D"}
|
package/esm/fromHub.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as Effect from '@effect/core/io/Effect';
|
|
2
|
+
import { pipe } from '@fp-ts/data/Function';
|
|
3
|
+
import { fromDequeue } from './fromDequeue.js';
|
|
4
|
+
import { fromFxEffect } from './fromFxEffect.js';
|
|
5
|
+
import { scoped } from './transform.js';
|
|
6
|
+
export function fromHub(hub) {
|
|
7
|
+
return pipe(hub.subscribe, Effect.map(fromDequeue), fromFxEffect, scoped);
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=fromHub.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fromHub.js","sourceRoot":"","sources":["../src/fromHub.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAA;AAEhD,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAG3C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAEvC,MAAM,UAAU,OAAO,CAAI,GAAe;IACxC,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,CAAA;AAC3E,CAAC"}
|
package/esm/index.d.ts
CHANGED
|
@@ -10,8 +10,10 @@ export * from './filterLoop.js';
|
|
|
10
10
|
export * from './filterMap.js';
|
|
11
11
|
export * from './flatMap.js';
|
|
12
12
|
export * from './flatMapConcurrently.js';
|
|
13
|
+
export * from './fromDequeue.js';
|
|
13
14
|
export * from './fromEffect.js';
|
|
14
15
|
export * from './fromFxEffect.js';
|
|
16
|
+
export * from './fromHub.js';
|
|
15
17
|
export * from './fromIterable.js';
|
|
16
18
|
export * from './Fx.js';
|
|
17
19
|
export * from './hold.js';
|
|
@@ -41,6 +43,8 @@ export * from './switchMap.js';
|
|
|
41
43
|
export * from './takeWhile.js';
|
|
42
44
|
export * from './tapEffect.js';
|
|
43
45
|
export * from './throttle.js';
|
|
46
|
+
export * from './toEnqueue.js';
|
|
47
|
+
export * from './toStream.js';
|
|
44
48
|
export * from './transform.js';
|
|
45
49
|
export * from './until.js';
|
|
46
50
|
export * from './withEmitter.js';
|
package/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,0BAA0B,CAAA;AACxC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,UAAU,CAAA;AACxB,cAAc,kBAAkB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,0BAA0B,CAAA;AACxC,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,UAAU,CAAA;AACxB,cAAc,kBAAkB,CAAA"}
|
package/esm/index.js
CHANGED
|
@@ -10,8 +10,10 @@ export * from './filterLoop.js';
|
|
|
10
10
|
export * from './filterMap.js';
|
|
11
11
|
export * from './flatMap.js';
|
|
12
12
|
export * from './flatMapConcurrently.js';
|
|
13
|
+
export * from './fromDequeue.js';
|
|
13
14
|
export * from './fromEffect.js';
|
|
14
15
|
export * from './fromFxEffect.js';
|
|
16
|
+
export * from './fromHub.js';
|
|
15
17
|
export * from './fromIterable.js';
|
|
16
18
|
export * from './Fx.js';
|
|
17
19
|
export * from './hold.js';
|
|
@@ -41,6 +43,8 @@ export * from './switchMap.js';
|
|
|
41
43
|
export * from './takeWhile.js';
|
|
42
44
|
export * from './tapEffect.js';
|
|
43
45
|
export * from './throttle.js';
|
|
46
|
+
export * from './toEnqueue.js';
|
|
47
|
+
export * from './toStream.js';
|
|
44
48
|
export * from './transform.js';
|
|
45
49
|
export * from './until.js';
|
|
46
50
|
export * from './withEmitter.js';
|
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,0BAA0B,CAAA;AACxC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,UAAU,CAAA;AACxB,cAAc,kBAAkB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,0BAA0B,CAAA;AACxC,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,UAAU,CAAA;AACxB,cAAc,kBAAkB,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Effect } from '@effect/core/io/Effect';
|
|
2
|
+
import { Enqueue } from '@effect/core/io/Queue';
|
|
3
|
+
import { Fx } from './Fx.js';
|
|
4
|
+
export declare function toEnqueue<A>(enqueue: Enqueue<A>): <R, E>(fx: Fx<R, E, A>) => Effect<R, E, void>;
|
|
5
|
+
//# sourceMappingURL=toEnqueue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toEnqueue.d.ts","sourceRoot":"","sources":["../src/toEnqueue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAE/C,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAG5B,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAE/F"}
|
package/esm/toEnqueue.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toEnqueue.js","sourceRoot":"","sources":["../src/toEnqueue.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,MAAM,UAAU,SAAS,CAAI,OAAmB;IAC9C,OAAO,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAClC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as Stream from '@effect/core/stream/Stream';
|
|
2
|
+
import { Fx } from './Fx.js';
|
|
3
|
+
/**
|
|
4
|
+
* Converts an Fx into a Stream that utilizes a bufferSize for the underlying
|
|
5
|
+
* Queue that the Stream utilizes to pull from.
|
|
6
|
+
*/
|
|
7
|
+
export declare const toStream: (bufferSize?: number) => <R, E, A>(fx: Fx<R, E, A>) => Stream.Stream<R, E, A>;
|
|
8
|
+
//# sourceMappingURL=toStream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toStream.d.ts","sourceRoot":"","sources":["../src/toStream.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAA;AAKpD,OAAO,EAAW,EAAE,EAAE,MAAM,SAAS,CAAA;AAErC;;;GAGG;AACH,eAAO,MAAM,QAAQ,+EA2BlB,CAAA"}
|
package/esm/toStream.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import * as Effect from '@effect/core/io/Effect';
|
|
2
|
+
import * as Exit from '@effect/core/io/Exit';
|
|
3
|
+
import * as Queue from '@effect/core/io/Queue';
|
|
4
|
+
import * as Channel from '@effect/core/stream/Channel';
|
|
5
|
+
import * as Stream from '@effect/core/stream/Stream';
|
|
6
|
+
import { pipe } from '@fp-ts/data/Function';
|
|
7
|
+
import * as Chunk from '@tsplus/stdlib/collections/Chunk';
|
|
8
|
+
import * as Maybe from '@tsplus/stdlib/data/Maybe';
|
|
9
|
+
import { Emitter } from './Fx.js';
|
|
10
|
+
/**
|
|
11
|
+
* Converts an Fx into a Stream that utilizes a bufferSize for the underlying
|
|
12
|
+
* Queue that the Stream utilizes to pull from.
|
|
13
|
+
*/
|
|
14
|
+
export const toStream = (bufferSize = 1024) => (fx) => {
|
|
15
|
+
return Stream.unwrapScoped(Effect.gen(function* ($) {
|
|
16
|
+
const queue = yield* $(Effect.acquireRelease(Queue.bounded(bufferSize), (q) => q.shutdown));
|
|
17
|
+
yield* $(Effect.forkScoped(fx.run(Emitter((a) => queue.offer(Maybe.some(Exit.succeed(a))), (c) => queue.offer(Maybe.some(Exit.failCause(c))), queue.offer(Maybe.none)))));
|
|
18
|
+
return Stream.fromChannel(loop(queue, bufferSize));
|
|
19
|
+
}));
|
|
20
|
+
};
|
|
21
|
+
function loop(queue, bufferSize) {
|
|
22
|
+
return Channel.unwrap(pipe(queue.takeBetween(1, bufferSize), Effect.map((chunk) => {
|
|
23
|
+
const elements = [];
|
|
24
|
+
for (const element of chunk) {
|
|
25
|
+
if (Maybe.isNone(element)) {
|
|
26
|
+
return pipe(Channel.write(Chunk.from(elements)), Channel.flatMap(() => Channel.succeed(void 0)));
|
|
27
|
+
}
|
|
28
|
+
if (Exit.isFailure(element.value)) {
|
|
29
|
+
const cause = element.value.cause;
|
|
30
|
+
return pipe(Channel.write(Chunk.from(elements)), Channel.flatMap(() => Channel.failCause(cause)));
|
|
31
|
+
}
|
|
32
|
+
elements.push(element.value.value);
|
|
33
|
+
}
|
|
34
|
+
return pipe(Channel.write(Chunk.from(elements)), Channel.flatMap(() => loop(queue, bufferSize)));
|
|
35
|
+
})));
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=toStream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toStream.js","sourceRoot":"","sources":["../src/toStream.ts"],"names":[],"mappings":"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"}
|
package/esm/transform.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export declare const withParallelismUnbounded: <R, E, A>(fx: Fx<R, E, A>) => Fx<
|
|
|
11
11
|
export declare const withFinalizer: <R2, X>(finalizer: Effect.Effect<R2, never, X>) => <R, E, A>(fx: Fx<R, E, A>) => Fx<Scope | R2 | R, E, A>;
|
|
12
12
|
export declare const withFinalizerExit: <R2, X>(finalizer: <E, A>(exit: Exit<E, A>) => Effect.Effect<R2, never, X>) => <R, E_1, A_1>(fx: Fx<R, E_1, A_1>) => Fx<Scope | R2 | R, E_1, A_1>;
|
|
13
13
|
export declare const withRuntimeFlags: (updated: RuntimeFlagsPatch) => <R, E, A>(fx: Fx<R, E, A>) => Fx<R, E, A>;
|
|
14
|
-
export declare const scoped: <R, E, A>(fx: Fx<R, E, A>) => Fx<R, E, A>;
|
|
14
|
+
export declare const scoped: <R, E, A>(fx: Fx<R, E, A>) => Fx<Exclude<R, Scope>, E, A>;
|
|
15
15
|
export declare const withClock: (clock: Clock) => <R, E, A>(fx: Fx<R, E, A>) => Fx<R, E, A>;
|
|
16
16
|
export declare const uninterruptible: <R, E, A>(fx: Fx<R, E, A>) => Fx<R, E, A>;
|
|
17
17
|
export declare const interruptible: <R, E, A>(fx: Fx<R, E, A>) => Fx<R, E, A>;
|
package/esm/transform.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAC7C,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAC7C,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAA;AAEzD,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAE5B,wBAAgB,SAAS,CAAC,EAAE,GAAG,KAAK,EAClC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,kDAG5E;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,6CAElD;AAED,eAAO,MAAM,wBAAwB,2CAA6C,CAAA;AAElF,eAAO,MAAM,aAAa,2GAC8B,CAAA;AAExD,eAAO,MAAM,iBAAiB,mJAEiC,CAAA;AAE/D,eAAO,MAAM,gBAAgB,YAAa,iBAAiB,8CACd,CAAA;AAE7C,eAAO,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAC7C,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAC7C,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAA;AAEzD,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAE5B,wBAAgB,SAAS,CAAC,EAAE,GAAG,KAAK,EAClC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,kDAG5E;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,6CAElD;AAED,eAAO,MAAM,wBAAwB,2CAA6C,CAAA;AAElF,eAAO,MAAM,aAAa,2GAC8B,CAAA;AAExD,eAAO,MAAM,iBAAiB,mJAEiC,CAAA;AAE/D,eAAO,MAAM,gBAAgB,YAAa,iBAAiB,8CACd,CAAA;AAE7C,eAAO,MAAM,MAAM,2DAEa,CAAA;AAEhC,eAAO,MAAM,SAAS,UAAW,KAAK,8CAAuC,CAAA;AAE7E,eAAO,MAAM,eAAe,2CAAoC,CAAA;AAChE,eAAO,MAAM,aAAa,2CAAkC,CAAA;AAE5D,eAAO,MAAM,UAAU,SAAU,qBAAqB,8CAA2C,CAAA;AAEjG,eAAO,MAAM,WAAW,YAAa,MAAM,YAAY,qBAAqB,8CAC1B,CAAA"}
|
package/esm/transform.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAA;AAIhD,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAA;AAEzD,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAE5B,MAAM,UAAU,SAAS,CACvB,CAA2E;IAE3E,OAAO,CAAU,EAAe,EAAoB,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AAC5F,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,WAAmB;IACjD,OAAO,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAA;AACvD,CAAC;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,SAAS,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAA;AAElF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAQ,SAAsC,EAAE,EAAE,CAC7E,SAAS,CAAa,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAA;AAExD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,SAAkE,EAClE,EAAE,CAAC,SAAS,CAAa,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAA;AAE/D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAA0B,EAAE,EAAE,CAC7D,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAA;AAE7C,MAAM,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAA;AAIhD,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAA;AAEzD,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAE5B,MAAM,UAAU,SAAS,CACvB,CAA2E;IAE3E,OAAO,CAAU,EAAe,EAAoB,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AAC5F,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,WAAmB;IACjD,OAAO,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAA;AACvD,CAAC;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,SAAS,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAA;AAElF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAQ,SAAsC,EAAE,EAAE,CAC7E,SAAS,CAAa,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAA;AAExD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,SAAkE,EAClE,EAAE,CAAC,SAAS,CAAa,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAA;AAE/D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAA0B,EAAE,EAAE,CAC7D,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAA;AAE7C,MAAM,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAEb,CAAA;AAEhC,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;AAE7E,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;AAChE,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;AAE5D,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAA2B,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;AAEjG,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,CAAC,IAA2B,EAAE,EAAE,CAC9E,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@typed/fx",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.30",
|
|
4
4
|
"description": "High-performance Asynchronous Effects",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "esm/index.js",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"scripts": {
|
|
11
11
|
"build:cjs": "rm -rf cjs && tsc -p ./tsconfig.build.cjs.json",
|
|
12
12
|
"build:esm": "rm -rf esm && tsc -p ./tsconfig.build.esm.json",
|
|
13
|
-
"build:package-exports": "tsx ./tools/generatePackageExports.ts
|
|
13
|
+
"build:package-exports": "tsx ./tools/generatePackageExports.ts",
|
|
14
14
|
"build": "concurrently npm:build:esm npm:build:cjs && npm run build:package-exports",
|
|
15
15
|
"eslint": "NODE_OPTIONS=--max-old-space-size=4096 eslint --ext .ts,.js,.json,.yaml --fix --cache src",
|
|
16
16
|
"mocha": "mocha 'src/**/*.test.ts'",
|
|
@@ -246,6 +246,16 @@
|
|
|
246
246
|
"types": "./esm/flatMapConcurrently.d.ts"
|
|
247
247
|
}
|
|
248
248
|
},
|
|
249
|
+
"./fromDequeue": {
|
|
250
|
+
"require": {
|
|
251
|
+
"default": "./cjs/fromDequeue.js",
|
|
252
|
+
"types": "./cjs/fromDequeue.d.ts"
|
|
253
|
+
},
|
|
254
|
+
"import": {
|
|
255
|
+
"default": "./esm/fromDequeue.js",
|
|
256
|
+
"types": "./esm/fromDequeue.d.ts"
|
|
257
|
+
}
|
|
258
|
+
},
|
|
249
259
|
"./fromEffect": {
|
|
250
260
|
"require": {
|
|
251
261
|
"default": "./cjs/fromEffect.js",
|
|
@@ -266,6 +276,16 @@
|
|
|
266
276
|
"types": "./esm/fromFxEffect.d.ts"
|
|
267
277
|
}
|
|
268
278
|
},
|
|
279
|
+
"./fromHub": {
|
|
280
|
+
"require": {
|
|
281
|
+
"default": "./cjs/fromHub.js",
|
|
282
|
+
"types": "./cjs/fromHub.d.ts"
|
|
283
|
+
},
|
|
284
|
+
"import": {
|
|
285
|
+
"default": "./esm/fromHub.js",
|
|
286
|
+
"types": "./esm/fromHub.d.ts"
|
|
287
|
+
}
|
|
288
|
+
},
|
|
269
289
|
"./fromIterable": {
|
|
270
290
|
"require": {
|
|
271
291
|
"default": "./cjs/fromIterable.js",
|
|
@@ -536,6 +556,26 @@
|
|
|
536
556
|
"types": "./esm/throttle.d.ts"
|
|
537
557
|
}
|
|
538
558
|
},
|
|
559
|
+
"./toEnqueue": {
|
|
560
|
+
"require": {
|
|
561
|
+
"default": "./cjs/toEnqueue.js",
|
|
562
|
+
"types": "./cjs/toEnqueue.d.ts"
|
|
563
|
+
},
|
|
564
|
+
"import": {
|
|
565
|
+
"default": "./esm/toEnqueue.js",
|
|
566
|
+
"types": "./esm/toEnqueue.d.ts"
|
|
567
|
+
}
|
|
568
|
+
},
|
|
569
|
+
"./toStream": {
|
|
570
|
+
"require": {
|
|
571
|
+
"default": "./cjs/toStream.js",
|
|
572
|
+
"types": "./cjs/toStream.d.ts"
|
|
573
|
+
},
|
|
574
|
+
"import": {
|
|
575
|
+
"default": "./esm/toStream.js",
|
|
576
|
+
"types": "./esm/toStream.d.ts"
|
|
577
|
+
}
|
|
578
|
+
},
|
|
539
579
|
"./transform": {
|
|
540
580
|
"require": {
|
|
541
581
|
"default": "./cjs/transform.js",
|
package/src/_internal.ts
CHANGED
|
@@ -7,7 +7,6 @@ import * as Deferred from '@effect/core/io/Deferred'
|
|
|
7
7
|
import * as Effect from '@effect/core/io/Effect'
|
|
8
8
|
import * as Ref from '@effect/core/io/Ref'
|
|
9
9
|
import { pipe } from '@fp-ts/data/Function'
|
|
10
|
-
import * as Maybe from '@tsplus/stdlib/data/Maybe'
|
|
11
10
|
|
|
12
11
|
export const EARLY_EXIT_FAILURE = Symbol('EarlyExitFailure')
|
|
13
12
|
export interface EarlyExitFailure {
|
|
@@ -26,18 +25,17 @@ export const onEarlyExitFailure =
|
|
|
26
25
|
<R, E, A>(effect: Effect.Effect<R, E, A>): Effect.Effect<R | R2, E | E2, A | B> =>
|
|
27
26
|
pipe(
|
|
28
27
|
effect,
|
|
29
|
-
Effect.foldCauseEffect<E, A, R | R2, E | E2, A | B, R | R2, E | E2, A | B>(
|
|
30
|
-
(e)
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
),
|
|
28
|
+
Effect.foldCauseEffect<E, A, R | R2, E | E2, A | B, R | R2, E | E2, A | B>((e) => {
|
|
29
|
+
const defects = Cause.defects(e)
|
|
30
|
+
|
|
31
|
+
for (const defect of defects) {
|
|
32
|
+
if (isEarlyExitFailure(defect)) {
|
|
33
|
+
return handler
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return Effect.failCause(e)
|
|
38
|
+
}, Effect.succeed),
|
|
41
39
|
)
|
|
42
40
|
|
|
43
41
|
/**
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as Effect from '@effect/core/io/Effect'
|
|
2
|
+
import * as Q from '@effect/core/io/Queue'
|
|
3
|
+
|
|
4
|
+
import { Fx } from './Fx.js'
|
|
5
|
+
|
|
6
|
+
export function fromDequeue<A>(dequeue: Q.Dequeue<A>): Fx<never, never, A> {
|
|
7
|
+
return Fx((emitter) =>
|
|
8
|
+
Effect.gen(function* ($) {
|
|
9
|
+
while (!(yield* $(dequeue.isShutdown))) {
|
|
10
|
+
const a = yield* $(dequeue.take)
|
|
11
|
+
yield* $(emitter.emit(a))
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
yield* $(emitter.end)
|
|
15
|
+
}),
|
|
16
|
+
)
|
|
17
|
+
}
|
package/src/fromHub.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as Effect from '@effect/core/io/Effect'
|
|
2
|
+
import * as Hub from '@effect/core/io/Hub'
|
|
3
|
+
import { pipe } from '@fp-ts/data/Function'
|
|
4
|
+
|
|
5
|
+
import { Fx } from './Fx.js'
|
|
6
|
+
import { fromDequeue } from './fromDequeue.js'
|
|
7
|
+
import { fromFxEffect } from './fromFxEffect.js'
|
|
8
|
+
import { scoped } from './transform.js'
|
|
9
|
+
|
|
10
|
+
export function fromHub<A>(hub: Hub.Hub<A>): Fx<never, never, A> {
|
|
11
|
+
return pipe(hub.subscribe, Effect.map(fromDequeue), fromFxEffect, scoped)
|
|
12
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -10,8 +10,10 @@ export * from './filterLoop.js'
|
|
|
10
10
|
export * from './filterMap.js'
|
|
11
11
|
export * from './flatMap.js'
|
|
12
12
|
export * from './flatMapConcurrently.js'
|
|
13
|
+
export * from './fromDequeue.js'
|
|
13
14
|
export * from './fromEffect.js'
|
|
14
15
|
export * from './fromFxEffect.js'
|
|
16
|
+
export * from './fromHub.js'
|
|
15
17
|
export * from './fromIterable.js'
|
|
16
18
|
export * from './Fx.js'
|
|
17
19
|
export * from './hold.js'
|
|
@@ -41,6 +43,8 @@ export * from './switchMap.js'
|
|
|
41
43
|
export * from './takeWhile.js'
|
|
42
44
|
export * from './tapEffect.js'
|
|
43
45
|
export * from './throttle.js'
|
|
46
|
+
export * from './toEnqueue.js'
|
|
47
|
+
export * from './toStream.js'
|
|
44
48
|
export * from './transform.js'
|
|
45
49
|
export * from './until.js'
|
|
46
50
|
export * from './withEmitter.js'
|
package/src/toEnqueue.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Effect } from '@effect/core/io/Effect'
|
|
2
|
+
import { Enqueue } from '@effect/core/io/Queue'
|
|
3
|
+
|
|
4
|
+
import { Fx } from './Fx.js'
|
|
5
|
+
import { runObserve } from './runObserve.js'
|
|
6
|
+
|
|
7
|
+
export function toEnqueue<A>(enqueue: Enqueue<A>): <R, E>(fx: Fx<R, E, A>) => Effect<R, E, void> {
|
|
8
|
+
return runObserve(enqueue.offer)
|
|
9
|
+
}
|
package/src/toStream.ts
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import * as Effect from '@effect/core/io/Effect'
|
|
2
|
+
import * as Exit from '@effect/core/io/Exit'
|
|
3
|
+
import * as Queue from '@effect/core/io/Queue'
|
|
4
|
+
import * as Channel from '@effect/core/stream/Channel'
|
|
5
|
+
import * as Stream from '@effect/core/stream/Stream'
|
|
6
|
+
import { pipe } from '@fp-ts/data/Function'
|
|
7
|
+
import * as Chunk from '@tsplus/stdlib/collections/Chunk'
|
|
8
|
+
import * as Maybe from '@tsplus/stdlib/data/Maybe'
|
|
9
|
+
|
|
10
|
+
import { Emitter, Fx } from './Fx.js'
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Converts an Fx into a Stream that utilizes a bufferSize for the underlying
|
|
14
|
+
* Queue that the Stream utilizes to pull from.
|
|
15
|
+
*/
|
|
16
|
+
export const toStream =
|
|
17
|
+
(bufferSize = 1024) =>
|
|
18
|
+
<R, E, A>(fx: Fx<R, E, A>): Stream.Stream<R, E, A> => {
|
|
19
|
+
return Stream.unwrapScoped(
|
|
20
|
+
Effect.gen(function* ($) {
|
|
21
|
+
const queue = yield* $(
|
|
22
|
+
Effect.acquireRelease(
|
|
23
|
+
Queue.bounded<Maybe.Maybe<Exit.Exit<E, A>>>(bufferSize),
|
|
24
|
+
(q) => q.shutdown,
|
|
25
|
+
),
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
yield* $(
|
|
29
|
+
Effect.forkScoped(
|
|
30
|
+
fx.run(
|
|
31
|
+
Emitter(
|
|
32
|
+
(a) => queue.offer(Maybe.some(Exit.succeed(a))),
|
|
33
|
+
(c) => queue.offer(Maybe.some(Exit.failCause(c))),
|
|
34
|
+
queue.offer(Maybe.none),
|
|
35
|
+
),
|
|
36
|
+
),
|
|
37
|
+
),
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
return Stream.fromChannel(loop(queue, bufferSize))
|
|
41
|
+
}),
|
|
42
|
+
)
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function loop<E, A>(
|
|
46
|
+
queue: Queue.Queue<Maybe.Maybe<Exit.Exit<E, A>>>,
|
|
47
|
+
bufferSize: number,
|
|
48
|
+
): Channel.Channel<never, unknown, unknown, unknown, E, Chunk.Chunk<A>, unknown> {
|
|
49
|
+
return Channel.unwrap(
|
|
50
|
+
pipe(
|
|
51
|
+
queue.takeBetween(1, bufferSize),
|
|
52
|
+
Effect.map((chunk) => {
|
|
53
|
+
const elements: Array<A> = []
|
|
54
|
+
|
|
55
|
+
for (const element of chunk) {
|
|
56
|
+
if (Maybe.isNone(element)) {
|
|
57
|
+
return pipe(
|
|
58
|
+
Channel.write(Chunk.from(elements)),
|
|
59
|
+
Channel.flatMap(() => Channel.succeed(void 0)),
|
|
60
|
+
)
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
if (Exit.isFailure(element.value)) {
|
|
64
|
+
const cause = element.value.cause
|
|
65
|
+
return pipe(
|
|
66
|
+
Channel.write(Chunk.from(elements)),
|
|
67
|
+
Channel.flatMap(() => Channel.failCause(cause)),
|
|
68
|
+
)
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
elements.push(element.value.value)
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
return pipe(
|
|
75
|
+
Channel.write(Chunk.from(elements)),
|
|
76
|
+
Channel.flatMap(() => loop(queue, bufferSize)),
|
|
77
|
+
)
|
|
78
|
+
}),
|
|
79
|
+
),
|
|
80
|
+
)
|
|
81
|
+
}
|
package/src/transform.ts
CHANGED
|
@@ -29,7 +29,9 @@ export const withFinalizerExit = <R2, X>(
|
|
|
29
29
|
export const withRuntimeFlags = (updated: RuntimeFlagsPatch) =>
|
|
30
30
|
transform(Effect.withRuntimeFlags(updated))
|
|
31
31
|
|
|
32
|
-
export const scoped = transform(Effect.scoped)
|
|
32
|
+
export const scoped = transform(Effect.scoped) as <R, E, A>(
|
|
33
|
+
fx: Fx<R, E, A>,
|
|
34
|
+
) => Fx<Exclude<R, Scope>, E, A>
|
|
33
35
|
|
|
34
36
|
export const withClock = (clock: Clock) => transform(Effect.withClock(clock))
|
|
35
37
|
|