@typed/fx 0.0.9 → 0.0.12
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/Fx.d.ts +19 -8
- package/cjs/Fx.d.ts.map +1 -1
- package/cjs/Fx.js +12 -2
- package/cjs/Fx.js.map +1 -1
- package/cjs/Subject.d.ts +22 -0
- package/cjs/Subject.d.ts.map +1 -0
- package/cjs/Subject.js +58 -0
- package/cjs/Subject.js.map +1 -0
- package/cjs/_internal.d.ts +19 -20
- package/cjs/_internal.d.ts.map +1 -1
- package/cjs/_internal.js +21 -76
- package/cjs/_internal.js.map +1 -1
- package/cjs/combine.d.ts +4 -4
- package/cjs/combine.d.ts.map +1 -1
- package/cjs/combine.js +9 -13
- package/cjs/combine.js.map +1 -1
- package/cjs/continueWith.d.ts +2 -2
- package/cjs/continueWith.d.ts.map +1 -1
- package/cjs/continueWith.js +2 -3
- package/cjs/continueWith.js.map +1 -1
- package/cjs/debounce.d.ts +2 -11
- package/cjs/debounce.d.ts.map +1 -1
- package/cjs/debounce.js +4 -24
- package/cjs/debounce.js.map +1 -1
- package/cjs/delay.d.ts +2 -2
- package/cjs/delay.d.ts.map +1 -1
- package/cjs/delay.js +4 -5
- package/cjs/delay.js.map +1 -1
- package/cjs/during.d.ts +1 -1
- package/cjs/during.d.ts.map +1 -1
- package/cjs/during.js +6 -9
- package/cjs/during.js.map +1 -1
- package/cjs/filterLoop.d.ts +25 -0
- package/cjs/filterLoop.d.ts.map +1 -0
- package/cjs/filterLoop.js +108 -0
- package/cjs/filterLoop.js.map +1 -0
- package/cjs/filterMap.d.ts +24 -0
- package/cjs/filterMap.d.ts.map +1 -0
- package/cjs/{map.js → filterMap.js} +27 -40
- package/cjs/filterMap.js.map +1 -0
- package/cjs/flatMap.d.ts +2 -10
- package/cjs/flatMap.d.ts.map +1 -1
- package/cjs/flatMap.js +10 -25
- package/cjs/flatMap.js.map +1 -1
- package/cjs/flatMapConcurrently.d.ts +2 -2
- package/cjs/flatMapConcurrently.d.ts.map +1 -1
- package/cjs/flatMapConcurrently.js +3 -3
- package/cjs/flatMapConcurrently.js.map +1 -1
- package/cjs/fromEffect.d.ts +34 -15
- package/cjs/fromEffect.d.ts.map +1 -1
- package/cjs/fromEffect.js +28 -15
- package/cjs/fromEffect.js.map +1 -1
- package/cjs/fromIterable.d.ts +9 -0
- package/cjs/fromIterable.d.ts.map +1 -0
- package/cjs/{drain.js → fromIterable.js} +14 -13
- package/cjs/fromIterable.js.map +1 -0
- package/cjs/hold.d.ts +16 -17
- package/cjs/hold.d.ts.map +1 -1
- package/cjs/hold.js +28 -25
- package/cjs/hold.js.map +1 -1
- package/cjs/index.d.ts +19 -15
- package/cjs/index.d.ts.map +1 -1
- package/cjs/index.js +19 -28
- package/cjs/index.js.map +1 -1
- package/cjs/mapCause.d.ts +5 -0
- package/cjs/mapCause.d.ts.map +1 -0
- package/cjs/mapCause.js +41 -0
- package/cjs/mapCause.js.map +1 -0
- package/cjs/mapEffect.d.ts +4 -0
- package/cjs/mapEffect.d.ts.map +1 -0
- package/cjs/{never.js → mapEffect.js} +6 -4
- package/cjs/mapEffect.js.map +1 -0
- package/cjs/merge.d.ts +3 -3
- package/cjs/merge.d.ts.map +1 -1
- package/cjs/merge.js +7 -11
- package/cjs/merge.js.map +1 -1
- package/cjs/multicast.d.ts +20 -19
- package/cjs/multicast.d.ts.map +1 -1
- package/cjs/multicast.js +30 -34
- package/cjs/multicast.js.map +1 -1
- package/cjs/orElse.d.ts +2 -5
- package/cjs/orElse.d.ts.map +1 -1
- package/cjs/orElse.js +9 -11
- package/cjs/orElse.js.map +1 -1
- package/cjs/provide.d.ts +8 -8
- package/cjs/provide.d.ts.map +1 -1
- package/cjs/provide.js +23 -9
- package/cjs/provide.js.map +1 -1
- package/cjs/runCollect.d.ts +4 -0
- package/cjs/runCollect.d.ts.map +1 -0
- package/cjs/{from.js → runCollect.js} +6 -15
- package/cjs/runCollect.js.map +1 -0
- package/cjs/runDrain.d.ts +4 -0
- package/cjs/runDrain.d.ts.map +1 -0
- package/cjs/runDrain.js +38 -0
- package/cjs/runDrain.js.map +1 -0
- package/cjs/runObserve.d.ts +4 -0
- package/cjs/runObserve.d.ts.map +1 -0
- package/cjs/{takeUntil.js → runObserve.js} +6 -17
- package/cjs/runObserve.js.map +1 -0
- package/cjs/runReduce.d.ts +6 -0
- package/cjs/runReduce.d.ts.map +1 -0
- package/cjs/runReduce.js +50 -0
- package/cjs/runReduce.js.map +1 -0
- package/cjs/scheduled.d.ts +4 -4
- package/cjs/scheduled.d.ts.map +1 -1
- package/cjs/scheduled.js +8 -8
- package/cjs/scheduled.js.map +1 -1
- package/cjs/since.d.ts +1 -1
- package/cjs/since.d.ts.map +1 -1
- package/cjs/since.js +5 -9
- package/cjs/since.js.map +1 -1
- package/cjs/skipRepeats.d.ts +1 -1
- package/cjs/skipRepeats.d.ts.map +1 -1
- package/cjs/skipRepeats.js +4 -5
- package/cjs/skipRepeats.js.map +1 -1
- package/cjs/skipWhile.d.ts +3 -3
- package/cjs/skipWhile.d.ts.map +1 -1
- package/cjs/skipWhile.js +12 -15
- package/cjs/skipWhile.js.map +1 -1
- package/cjs/slice.d.ts +3 -3
- package/cjs/slice.d.ts.map +1 -1
- package/cjs/slice.js +15 -23
- package/cjs/slice.js.map +1 -1
- package/cjs/snapshot.d.ts +2 -2
- package/cjs/snapshot.d.ts.map +1 -1
- package/cjs/snapshot.js +6 -8
- package/cjs/snapshot.js.map +1 -1
- package/cjs/suspendSucceed.d.ts +1 -1
- package/cjs/suspendSucceed.d.ts.map +1 -1
- package/cjs/suspendSucceed.js +1 -25
- package/cjs/suspendSucceed.js.map +1 -1
- package/cjs/switchMap.d.ts +1 -9
- package/cjs/switchMap.d.ts.map +1 -1
- package/cjs/switchMap.js +5 -18
- package/cjs/switchMap.js.map +1 -1
- package/cjs/takeWhile.d.ts +3 -3
- package/cjs/takeWhile.d.ts.map +1 -1
- package/cjs/takeWhile.js +6 -38
- package/cjs/takeWhile.js.map +1 -1
- package/cjs/tapEffect.d.ts +5 -0
- package/cjs/tapEffect.d.ts.map +1 -0
- package/cjs/{observe.js → tapEffect.js} +8 -15
- package/cjs/tapEffect.js.map +1 -0
- package/cjs/throttle.d.ts +2 -2
- package/cjs/throttle.d.ts.map +1 -1
- package/cjs/throttle.js +6 -13
- package/cjs/throttle.js.map +1 -1
- package/cjs/transform.d.ts +13 -8
- package/cjs/transform.d.ts.map +1 -1
- package/cjs/transform.js +9 -2
- package/cjs/transform.js.map +1 -1
- package/cjs/until.d.ts +1 -1
- package/cjs/until.d.ts.map +1 -1
- package/cjs/until.js +5 -7
- package/cjs/until.js.map +1 -1
- package/{esm/fromCallback.d.ts → cjs/withEmitter.d.ts} +4 -4
- package/cjs/withEmitter.d.ts.map +1 -0
- package/cjs/{fromCallback.js → withEmitter.js} +22 -16
- package/cjs/withEmitter.js.map +1 -0
- package/cjs/zip.d.ts +4 -4
- package/cjs/zip.d.ts.map +1 -1
- package/cjs/zip.js +11 -15
- package/cjs/zip.js.map +1 -1
- package/cjs/zipIterable.d.ts +4 -0
- package/cjs/zipIterable.d.ts.map +1 -0
- package/cjs/{zipItems.js → zipIterable.js} +23 -20
- package/cjs/zipIterable.js.map +1 -0
- package/esm/Fx.d.ts +19 -8
- package/esm/Fx.d.ts.map +1 -1
- package/esm/Fx.js +10 -1
- package/esm/Fx.js.map +1 -1
- package/esm/Subject.d.ts +22 -0
- package/esm/Subject.d.ts.map +1 -0
- package/esm/Subject.js +32 -0
- package/esm/Subject.js.map +1 -0
- package/esm/_internal.d.ts +19 -20
- package/esm/_internal.d.ts.map +1 -1
- package/esm/_internal.js +16 -72
- package/esm/_internal.js.map +1 -1
- package/esm/combine.d.ts +4 -4
- package/esm/combine.d.ts.map +1 -1
- package/esm/combine.js +12 -16
- package/esm/combine.js.map +1 -1
- package/esm/continueWith.d.ts +2 -2
- package/esm/continueWith.d.ts.map +1 -1
- package/esm/continueWith.js +3 -4
- package/esm/continueWith.js.map +1 -1
- package/esm/debounce.d.ts +2 -11
- package/esm/debounce.d.ts.map +1 -1
- package/esm/debounce.js +7 -27
- package/esm/debounce.js.map +1 -1
- package/esm/delay.d.ts +2 -2
- package/esm/delay.d.ts.map +1 -1
- package/esm/delay.js +6 -7
- package/esm/delay.js.map +1 -1
- package/esm/during.d.ts +1 -1
- package/esm/during.d.ts.map +1 -1
- package/esm/during.js +9 -12
- package/esm/during.js.map +1 -1
- package/esm/filterLoop.d.ts +25 -0
- package/esm/filterLoop.d.ts.map +1 -0
- package/esm/filterLoop.js +76 -0
- package/esm/filterLoop.js.map +1 -0
- package/esm/filterMap.d.ts +24 -0
- package/esm/filterMap.d.ts.map +1 -0
- package/esm/filterMap.js +53 -0
- package/esm/filterMap.js.map +1 -0
- package/esm/flatMap.d.ts +2 -10
- package/esm/flatMap.d.ts.map +1 -1
- package/esm/flatMap.js +9 -24
- package/esm/flatMap.js.map +1 -1
- package/esm/flatMapConcurrently.d.ts +2 -2
- package/esm/flatMapConcurrently.d.ts.map +1 -1
- package/esm/flatMapConcurrently.js +3 -3
- package/esm/flatMapConcurrently.js.map +1 -1
- package/esm/fromEffect.d.ts +34 -15
- package/esm/fromEffect.d.ts.map +1 -1
- package/esm/fromEffect.js +25 -13
- package/esm/fromEffect.js.map +1 -1
- package/esm/fromIterable.d.ts +9 -0
- package/esm/fromIterable.d.ts.map +1 -0
- package/esm/fromIterable.js +14 -0
- package/esm/fromIterable.js.map +1 -0
- package/esm/hold.d.ts +16 -17
- package/esm/hold.d.ts.map +1 -1
- package/esm/hold.js +28 -25
- package/esm/hold.js.map +1 -1
- package/esm/index.d.ts +19 -15
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +19 -16
- package/esm/index.js.map +1 -1
- package/esm/mapCause.d.ts +5 -0
- package/esm/mapCause.d.ts.map +1 -0
- package/esm/mapCause.js +13 -0
- package/esm/mapCause.js.map +1 -0
- package/esm/mapEffect.d.ts +4 -0
- package/esm/mapEffect.d.ts.map +1 -0
- package/esm/mapEffect.js +5 -0
- package/esm/mapEffect.js.map +1 -0
- package/esm/merge.d.ts +3 -3
- package/esm/merge.d.ts.map +1 -1
- package/esm/merge.js +9 -13
- package/esm/merge.js.map +1 -1
- package/esm/multicast.d.ts +20 -19
- package/esm/multicast.d.ts.map +1 -1
- package/esm/multicast.js +33 -37
- package/esm/multicast.js.map +1 -1
- package/esm/orElse.d.ts +2 -5
- package/esm/orElse.d.ts.map +1 -1
- package/esm/orElse.js +10 -10
- package/esm/orElse.js.map +1 -1
- package/esm/provide.d.ts +8 -8
- package/esm/provide.d.ts.map +1 -1
- package/esm/provide.js +20 -6
- package/esm/provide.js.map +1 -1
- package/esm/runCollect.d.ts +4 -0
- package/esm/runCollect.d.ts.map +1 -0
- package/esm/runCollect.js +7 -0
- package/esm/runCollect.js.map +1 -0
- package/esm/runDrain.d.ts +4 -0
- package/esm/runDrain.d.ts.map +1 -0
- package/esm/runDrain.js +11 -0
- package/esm/runDrain.js.map +1 -0
- package/esm/runObserve.d.ts +4 -0
- package/esm/runObserve.d.ts.map +1 -0
- package/esm/runObserve.js +8 -0
- package/esm/runObserve.js.map +1 -0
- package/esm/runReduce.d.ts +6 -0
- package/esm/runReduce.d.ts.map +1 -0
- package/esm/runReduce.js +22 -0
- package/esm/runReduce.js.map +1 -0
- package/esm/scheduled.d.ts +4 -4
- package/esm/scheduled.d.ts.map +1 -1
- package/esm/scheduled.js +8 -8
- package/esm/scheduled.js.map +1 -1
- package/esm/since.d.ts +1 -1
- package/esm/since.d.ts.map +1 -1
- package/esm/since.js +8 -12
- package/esm/since.js.map +1 -1
- package/esm/skipRepeats.d.ts +1 -1
- package/esm/skipRepeats.d.ts.map +1 -1
- package/esm/skipRepeats.js +5 -6
- package/esm/skipRepeats.js.map +1 -1
- package/esm/skipWhile.d.ts +3 -3
- package/esm/skipWhile.d.ts.map +1 -1
- package/esm/skipWhile.js +13 -16
- package/esm/skipWhile.js.map +1 -1
- package/esm/slice.d.ts +3 -3
- package/esm/slice.d.ts.map +1 -1
- package/esm/slice.js +17 -25
- package/esm/slice.js.map +1 -1
- package/esm/snapshot.d.ts +2 -2
- package/esm/snapshot.d.ts.map +1 -1
- package/esm/snapshot.js +8 -10
- package/esm/snapshot.js.map +1 -1
- package/esm/suspendSucceed.d.ts +1 -1
- package/esm/suspendSucceed.d.ts.map +1 -1
- package/esm/suspendSucceed.js +1 -2
- package/esm/suspendSucceed.js.map +1 -1
- package/esm/switchMap.d.ts +1 -9
- package/esm/switchMap.d.ts.map +1 -1
- package/esm/switchMap.js +6 -18
- package/esm/switchMap.js.map +1 -1
- package/esm/takeWhile.d.ts +3 -3
- package/esm/takeWhile.d.ts.map +1 -1
- package/esm/takeWhile.js +8 -17
- package/esm/takeWhile.js.map +1 -1
- package/esm/tapEffect.d.ts +5 -0
- package/esm/tapEffect.d.ts.map +1 -0
- package/esm/tapEffect.js +6 -0
- package/esm/tapEffect.js.map +1 -0
- package/esm/throttle.d.ts +2 -2
- package/esm/throttle.d.ts.map +1 -1
- package/esm/throttle.js +9 -16
- package/esm/throttle.js.map +1 -1
- package/esm/transform.d.ts +13 -8
- package/esm/transform.d.ts.map +1 -1
- package/esm/transform.js +6 -1
- package/esm/transform.js.map +1 -1
- package/esm/until.d.ts +1 -1
- package/esm/until.d.ts.map +1 -1
- package/esm/until.js +8 -10
- package/esm/until.js.map +1 -1
- package/{cjs/fromCallback.d.ts → esm/withEmitter.d.ts} +4 -4
- package/esm/withEmitter.d.ts.map +1 -0
- package/esm/withEmitter.js +26 -0
- package/esm/withEmitter.js.map +1 -0
- package/esm/zip.d.ts +4 -4
- package/esm/zip.d.ts.map +1 -1
- package/esm/zip.js +14 -18
- package/esm/zip.js.map +1 -1
- package/esm/zipIterable.d.ts +4 -0
- package/esm/zipIterable.d.ts.map +1 -0
- package/esm/zipIterable.js +26 -0
- package/esm/zipIterable.js.map +1 -0
- package/package.json +107 -113
- package/perf/_internal.ts +39 -35
- package/perf/cases/filter-map-reduce.ts +48 -0
- package/perf/cases/flatMap.ts +49 -0
- package/perf/cases/switchMap.ts +36 -0
- package/perf/readme-base.md +14 -0
- package/perf/readme.md +40 -0
- package/perf/runFullSuite.ts +37 -0
- package/perf/runPerfTest.ts +18 -0
- package/perf/tsconfig.json +1 -1
- package/src/Fx.ts +35 -10
- package/src/Subject.ts +46 -0
- package/src/_internal.ts +59 -114
- package/src/combine.test.ts +15 -16
- package/src/combine.ts +44 -48
- package/src/continueWith.test.ts +26 -0
- package/src/continueWith.ts +9 -11
- package/src/debounce.test.ts +4 -6
- package/src/debounce.ts +30 -49
- package/src/delay.test.ts +5 -6
- package/src/delay.ts +9 -8
- package/src/during.test.ts +39 -0
- package/src/during.ts +43 -47
- package/src/filterLoop.test.ts +63 -0
- package/src/filterLoop.ts +143 -0
- package/src/filterMap.test.ts +33 -0
- package/src/filterMap.ts +71 -0
- package/src/flatMap.test.ts +39 -12
- package/src/flatMap.ts +25 -51
- package/src/flatMapConcurrently.test.ts +23 -0
- package/src/flatMapConcurrently.ts +6 -12
- package/src/fromEffect.ts +74 -26
- package/src/fromIterable.ts +15 -0
- package/src/hold.test.ts +3 -3
- package/src/hold.ts +48 -44
- package/src/index.ts +19 -15
- package/src/mapCause.test.ts +34 -0
- package/src/mapCause.ts +16 -0
- package/src/mapEffect.test.ts +21 -0
- package/src/mapEffect.ts +17 -0
- package/src/merge.test.ts +10 -30
- package/src/merge.ts +17 -38
- package/src/multicast.test.ts +22 -28
- package/src/multicast.ts +71 -57
- package/src/orElse.test.ts +22 -0
- package/src/orElse.ts +21 -34
- package/src/periodic.test.ts +4 -4
- package/src/provide.test.ts +56 -0
- package/src/provide.ts +47 -36
- package/src/runCollect.ts +19 -0
- package/src/runDrain.ts +23 -0
- package/src/runObserve.ts +31 -0
- package/src/runReduce.ts +64 -0
- package/src/scheduled.ts +28 -26
- package/src/since.test.ts +40 -0
- package/src/since.ts +25 -42
- package/src/skipRepeats.test.ts +28 -0
- package/src/skipRepeats.ts +8 -9
- package/src/skipWhile.test.ts +44 -0
- package/src/skipWhile.ts +36 -22
- package/src/slice.test.ts +12 -10
- package/src/slice.ts +36 -42
- package/src/snapshot.test.ts +51 -0
- package/src/snapshot.ts +48 -37
- package/src/suspendSucceed.ts +2 -4
- package/src/switchMap.test.ts +23 -13
- package/src/switchMap.ts +32 -50
- package/src/takeWhile.test.ts +44 -0
- package/src/takeWhile.ts +20 -25
- package/src/tapEffect.ts +24 -0
- package/src/throttle.test.ts +5 -7
- package/src/throttle.ts +37 -42
- package/src/transform.ts +14 -6
- package/src/until.test.ts +8 -14
- package/src/until.ts +22 -32
- package/src/withEmitter.test.ts +28 -0
- package/src/withEmitter.ts +49 -0
- package/src/zip.test.ts +12 -13
- package/src/zip.ts +45 -52
- package/src/zipIterable.test.ts +19 -0
- package/src/zipIterable.ts +51 -0
- package/cjs/Sink.d.ts +0 -25
- package/cjs/Sink.d.ts.map +0 -1
- package/cjs/Sink.js +0 -66
- package/cjs/Sink.js.map +0 -1
- package/cjs/TSemaphore.d.ts +0 -4
- package/cjs/TSemaphore.d.ts.map +0 -1
- package/cjs/TSemaphore.js +0 -33
- package/cjs/TSemaphore.js.map +0 -1
- package/cjs/drain.d.ts +0 -7
- package/cjs/drain.d.ts.map +0 -1
- package/cjs/drain.js.map +0 -1
- package/cjs/empty.d.ts +0 -3
- package/cjs/empty.d.ts.map +0 -1
- package/cjs/empty.js +0 -9
- package/cjs/empty.js.map +0 -1
- package/cjs/from.d.ts +0 -11
- package/cjs/from.d.ts.map +0 -1
- package/cjs/from.js.map +0 -1
- package/cjs/fromCallback.d.ts.map +0 -1
- package/cjs/fromCallback.js.map +0 -1
- package/cjs/loop.d.ts +0 -4
- package/cjs/loop.d.ts.map +0 -1
- package/cjs/loop.js +0 -34
- package/cjs/loop.js.map +0 -1
- package/cjs/map.d.ts +0 -28
- package/cjs/map.d.ts.map +0 -1
- package/cjs/map.js.map +0 -1
- package/cjs/never.d.ts +0 -2
- package/cjs/never.d.ts.map +0 -1
- package/cjs/never.js.map +0 -1
- package/cjs/observe.d.ts +0 -7
- package/cjs/observe.d.ts.map +0 -1
- package/cjs/observe.js.map +0 -1
- package/cjs/reduce.d.ts +0 -7
- package/cjs/reduce.d.ts.map +0 -1
- package/cjs/reduce.js +0 -64
- package/cjs/reduce.js.map +0 -1
- package/cjs/takeUntil.d.ts +0 -4
- package/cjs/takeUntil.d.ts.map +0 -1
- package/cjs/takeUntil.js.map +0 -1
- package/cjs/tap.d.ts +0 -9
- package/cjs/tap.d.ts.map +0 -1
- package/cjs/tap.js +0 -54
- package/cjs/tap.js.map +0 -1
- package/cjs/zipItems.d.ts +0 -4
- package/cjs/zipItems.d.ts.map +0 -1
- package/cjs/zipItems.js.map +0 -1
- package/esm/Sink.d.ts +0 -25
- package/esm/Sink.d.ts.map +0 -1
- package/esm/Sink.js +0 -31
- package/esm/Sink.js.map +0 -1
- package/esm/TSemaphore.d.ts +0 -4
- package/esm/TSemaphore.d.ts.map +0 -1
- package/esm/TSemaphore.js +0 -5
- package/esm/TSemaphore.js.map +0 -1
- package/esm/drain.d.ts +0 -7
- package/esm/drain.d.ts.map +0 -1
- package/esm/drain.js +0 -12
- package/esm/drain.js.map +0 -1
- package/esm/empty.d.ts +0 -3
- package/esm/empty.d.ts.map +0 -1
- package/esm/empty.js +0 -5
- package/esm/empty.js.map +0 -1
- package/esm/from.d.ts +0 -11
- package/esm/from.d.ts.map +0 -1
- package/esm/from.js +0 -15
- package/esm/from.js.map +0 -1
- package/esm/fromCallback.d.ts.map +0 -1
- package/esm/fromCallback.js +0 -20
- package/esm/fromCallback.js.map +0 -1
- package/esm/loop.d.ts +0 -4
- package/esm/loop.d.ts.map +0 -1
- package/esm/loop.js +0 -29
- package/esm/loop.js.map +0 -1
- package/esm/map.d.ts +0 -28
- package/esm/map.d.ts.map +0 -1
- package/esm/map.js +0 -64
- package/esm/map.js.map +0 -1
- package/esm/never.d.ts +0 -2
- package/esm/never.d.ts.map +0 -1
- package/esm/never.js +0 -4
- package/esm/never.js.map +0 -1
- package/esm/observe.d.ts +0 -7
- package/esm/observe.d.ts.map +0 -1
- package/esm/observe.js +0 -12
- package/esm/observe.js.map +0 -1
- package/esm/reduce.d.ts +0 -7
- package/esm/reduce.d.ts.map +0 -1
- package/esm/reduce.js +0 -35
- package/esm/reduce.js.map +0 -1
- package/esm/takeUntil.d.ts +0 -4
- package/esm/takeUntil.d.ts.map +0 -1
- package/esm/takeUntil.js +0 -19
- package/esm/takeUntil.js.map +0 -1
- package/esm/tap.d.ts +0 -9
- package/esm/tap.d.ts.map +0 -1
- package/esm/tap.js +0 -23
- package/esm/tap.js.map +0 -1
- package/esm/zipItems.d.ts +0 -4
- package/esm/zipItems.d.ts.map +0 -1
- package/esm/zipItems.js +0 -23
- package/esm/zipItems.js.map +0 -1
- package/perf/filter-map-reduce.ts +0 -49
- package/perf/flatMap.ts +0 -48
- package/perf/switchMap.ts +0 -40
- package/src/Sink.ts +0 -84
- package/src/TSemaphore.ts +0 -8
- package/src/drain.ts +0 -21
- package/src/empty.ts +0 -5
- package/src/from.test.ts +0 -18
- package/src/from.ts +0 -18
- package/src/fromCallback.ts +0 -40
- package/src/loop.ts +0 -37
- package/src/map.ts +0 -83
- package/src/never.ts +0 -5
- package/src/observe.ts +0 -24
- package/src/reduce.ts +0 -81
- package/src/takeUntil.ts +0 -29
- package/src/tap.ts +0 -48
- package/src/zipItems.test.ts +0 -21
- package/src/zipItems.ts +0 -41
package/esm/reduce.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import * as Effect from '@effect/core/io/Effect';
|
|
2
|
-
import * as Maybe from '@tsplus/stdlib/data/Maybe';
|
|
3
|
-
import { Fx } from './Fx.js';
|
|
4
|
-
export declare function reduceFilterMap<R, E, A, E1, B>(seed: B, f: (b: B, a: A) => Maybe.Maybe<B>): (fx: Fx<R, E, A, E1>) => Effect.Effect<R, E1 | E, B>;
|
|
5
|
-
export declare function reduce<B, A>(seed: B, f: (b: B, a: A) => B): <R, E, E1>(fx: Fx<R, E, A, E1>) => Effect.Effect<R, E | E1, B>;
|
|
6
|
-
export declare function collectAll<R, E, A, E1>(fx: Fx<R, E, A, E1>): Effect.Effect<R, E | E1, readonly A[]>;
|
|
7
|
-
//# sourceMappingURL=reduce.d.ts.map
|
package/esm/reduce.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"reduce.d.ts","sourceRoot":"","sources":["../src/reduce.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAA;AAGhD,OAAO,KAAK,KAAK,MAAM,2BAA2B,CAAA;AAElD,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAI5B,wBAAgB,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,QAC5E,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAG,aAAa,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAG1D;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,kEAwBzD;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EACpC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAClB,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,CAExC"}
|
package/esm/reduce.js
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import * as Effect from '@effect/core/io/Effect';
|
|
2
|
-
import { makeRef } from '@effect/core/io/Ref';
|
|
3
|
-
import { pipe } from '@fp-ts/data/Function';
|
|
4
|
-
import * as Maybe from '@tsplus/stdlib/data/Maybe';
|
|
5
|
-
import { Sink } from './Sink.js';
|
|
6
|
-
import { FilterMapFx, MapFx } from './map.js';
|
|
7
|
-
export function reduceFilterMap(seed, f) {
|
|
8
|
-
return (fx) => {
|
|
9
|
-
return reduceFilterMap_(fx, seed, f);
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
export function reduce(seed, f) {
|
|
13
|
-
return (fx) => {
|
|
14
|
-
if (fx instanceof FilterMapFx) {
|
|
15
|
-
return pipe(fx.fx, reduceFilterMap(seed, (b, a) => pipe(a, fx.f, Maybe.map((a2) => f(b, a2)))));
|
|
16
|
-
}
|
|
17
|
-
if (fx instanceof MapFx) {
|
|
18
|
-
return pipe(fx.fx, reduce(seed, (b, a) => f(b, fx.f(a))));
|
|
19
|
-
}
|
|
20
|
-
return reduce_(fx, seed, f);
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
export function collectAll(fx) {
|
|
24
|
-
return reduce_(fx, [], (b, a) => b.concat([a]));
|
|
25
|
-
}
|
|
26
|
-
function reduce_(fx, seed, f) {
|
|
27
|
-
return pipe(makeRef(() => seed), Effect.flatMap((ref) => fx.run(Sink((a) => ref.update((b) => f(b, a)), Effect.failCause, ref.get))));
|
|
28
|
-
}
|
|
29
|
-
function reduceFilterMap_(fx, seed, f) {
|
|
30
|
-
return pipe(makeRef(() => seed), Effect.flatMap((ref) => fx.run(Sink((a) => ref.modify((b) => [
|
|
31
|
-
null,
|
|
32
|
-
pipe(f(b, a), Maybe.getOrElse(() => b)),
|
|
33
|
-
]), Effect.failCause, ref.get))));
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=reduce.js.map
|
package/esm/reduce.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"reduce.js","sourceRoot":"","sources":["../src/reduce.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,2BAA2B,CAAA;AAGlD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAE7C,MAAM,UAAU,eAAe,CAAiB,IAAO,EAAE,CAAiC;IACxF,OAAO,CAAC,EAAmB,EAA+B,EAAE;QAC1D,OAAO,gBAAgB,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IACtC,CAAC,CAAA;AACH,CAAC;AAED,MAAM,UAAU,MAAM,CAAO,IAAO,EAAE,CAAoB;IACxD,OAAO,CAAW,EAAmB,EAA+B,EAAE;QACpE,IAAI,EAAE,YAAY,WAAW,EAAE;YAC7B,OAAO,IAAI,CACT,EAAE,CAAC,EAAE,EACL,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC7B,IAAI,CACF,CAAC,EACD,EAAE,CAAC,CAAC,EACJ,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAC5B,CACF,CACF,CAAA;SACF;QAED,IAAI,EAAE,YAAY,KAAK,EAAE;YACvB,OAAO,IAAI,CACT,EAAE,CAAC,EAAE,EACL,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACtC,CAAA;SACF;QAED,OAAO,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IAC7B,CAAC,CAAA;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,EAAmB;IAEnB,OAAO,OAAO,CAAC,EAAE,EAAE,EAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACjE,CAAC;AAED,SAAS,OAAO,CAAiB,EAAmB,EAAE,IAAO,EAAE,CAAoB;IACjF,OAAO,IAAI,CACT,OAAO,CAAI,GAAG,EAAE,CAAC,IAAI,CAAC,EACtB,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CACrB,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAC3E,CACF,CAAA;AACH,CAAC;AAED,SAAS,gBAAgB,CACvB,EAAmB,EACnB,IAAO,EACP,CAAiC;IAEjC,OAAO,IAAI,CACT,OAAO,CAAI,GAAG,EAAE,CAAC,IAAI,CAAC,EACtB,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CACrB,EAAE,CAAC,GAAG,CACJ,IAAI,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAChB,IAAI;QACJ,IAAI,CACF,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EACP,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CACzB;KACF,CAAC,EACJ,MAAM,CAAC,SAAS,EAChB,GAAG,CAAC,GAAG,CACR,CACF,CACF,CACF,CAAA;AACH,CAAC"}
|
package/esm/takeUntil.d.ts
DELETED
package/esm/takeUntil.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"takeUntil.d.ts","sourceRoot":"","sources":["../src/takeUntil.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAEjD,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAI5B,wBAAgB,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,sDAmBnD"}
|
package/esm/takeUntil.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import * as Effect from '@effect/core/io/Effect';
|
|
2
|
-
import * as Exit from '@effect/core/io/Exit';
|
|
3
|
-
import { pipe } from '@fp-ts/data/Function';
|
|
4
|
-
import { Fx } from './Fx.js';
|
|
5
|
-
import { deferredCallback } from './_internal.js';
|
|
6
|
-
export function takeUntil(predicate) {
|
|
7
|
-
return (fx) => Fx((sink) => deferredCallback((cb) => {
|
|
8
|
-
return fx.run({
|
|
9
|
-
...sink,
|
|
10
|
-
event: (a) => {
|
|
11
|
-
if (!predicate(a)) {
|
|
12
|
-
return sink.event(a);
|
|
13
|
-
}
|
|
14
|
-
return pipe(sink.end, Effect.tap((b) => cb(Exit.succeed(b))));
|
|
15
|
-
},
|
|
16
|
-
});
|
|
17
|
-
}));
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=takeUntil.js.map
|
package/esm/takeUntil.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"takeUntil.js","sourceRoot":"","sources":["../src/takeUntil.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAA;AAChD,OAAO,KAAK,IAAI,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAG3C,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAE5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEjD,MAAM,UAAU,SAAS,CAAI,SAAuB;IAClD,OAAO,CAAW,EAAmB,EAAmB,EAAE,CACxD,EAAE,CAAC,CAAY,IAA2B,EAAE,EAAE,CAC5C,gBAAgB,CAA8B,CAAC,EAAE,EAAE,EAAE;QACnD,OAAO,EAAE,CAAC,GAAG,CAAC;YACZ,GAAG,IAAI;YACP,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE;gBACX,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;oBACjB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;iBACrB;gBAED,OAAO,IAAI,CACT,IAAI,CAAC,GAAG,EACR,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CACvC,CAAA;YACH,CAAC;SACF,CAAC,CAAA;IACJ,CAAC,CAAC,CACH,CAAA;AACL,CAAC"}
|
package/esm/tap.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import * as Cause from '@effect/core/io/Cause';
|
|
2
|
-
import * as Effect from '@effect/core/io/Effect';
|
|
3
|
-
import { Fx } from './Fx.js';
|
|
4
|
-
export declare function tap<A, B>(f: (a: A) => B): <R, E, E1>(fx: Fx<R, E, A, E1>) => Fx<R, E, A, E1>;
|
|
5
|
-
export declare function tapEffect<A, R2, E2, B>(f: (a: A) => Effect.Effect<R2, E2, B>): <R, E, E1>(fx: Fx<R, E, A, E1>) => Fx<R2 | R, E2 | E, A, E2 | E1>;
|
|
6
|
-
export declare function tapCauseEffect<E, R2, E2, B>(f: (e: Cause.Cause<E>) => Effect.Effect<R2, E2, B>): <R, A, E1>(fx: Fx<R, E, A, E1>) => Fx<R2 | R, E | E2, A, E2 | E1>;
|
|
7
|
-
export declare function tapErrorEffect<E, R2, E2, B>(f: (e: E) => Effect.Effect<R2, E2, B>): <R, A, E1>(fx: Fx<R, E, A, E1>) => Fx<R2 | R, E | E2, A, E2 | E1>;
|
|
8
|
-
export declare function tapEndEffect<R2, E2, B>(effect: Effect.Effect<R2, E2, B>): <R, E, A, E1>(fx: Fx<R, E, A, E1>) => Fx<R2 | R, E2 | E, A, E2 | E1>;
|
|
9
|
-
//# sourceMappingURL=tap.d.ts.map
|
package/esm/tap.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tap.d.ts","sourceRoot":"","sources":["../src/tap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,uBAAuB,CAAA;AAC9C,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAA;AAIhD,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAI5B,wBAAgB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,sDAEvC;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,qEAK5E;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,qEAK9F;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,qEAejF;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,wEAGvE"}
|
package/esm/tap.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import * as Cause from '@effect/core/io/Cause';
|
|
2
|
-
import * as Effect from '@effect/core/io/Effect';
|
|
3
|
-
import { flow, pipe } from '@fp-ts/data/Function';
|
|
4
|
-
import * as Either from '@tsplus/stdlib/data/Either';
|
|
5
|
-
import { Fx } from './Fx.js';
|
|
6
|
-
import { Sink } from './Sink.js';
|
|
7
|
-
import { map } from './map.js';
|
|
8
|
-
export function tap(f) {
|
|
9
|
-
return map((a) => (f(a), a));
|
|
10
|
-
}
|
|
11
|
-
export function tapEffect(f) {
|
|
12
|
-
return (fx) => Fx((sink) => fx.run(Sink((a) => pipe(a, f, Effect.zipRight(sink.event(a))), sink.error, sink.end)));
|
|
13
|
-
}
|
|
14
|
-
export function tapCauseEffect(f) {
|
|
15
|
-
return (fx) => Fx((sink) => fx.run(Sink(sink.event, (e) => pipe(e, f, Effect.zipRight(sink.error(e))), sink.end)));
|
|
16
|
-
}
|
|
17
|
-
export function tapErrorEffect(f) {
|
|
18
|
-
return (fx) => Fx((sink) => fx.run(Sink(sink.event, (e) => pipe(Cause.failureOrCause(e), Either.fold(flow(f, Effect.zipRight(sink.error(e))), sink.error)), sink.end)));
|
|
19
|
-
}
|
|
20
|
-
export function tapEndEffect(effect) {
|
|
21
|
-
return (fx) => Fx((sink) => fx.run(Sink(sink.event, sink.error, Effect.zipRight(sink.end)(effect))));
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=tap.js.map
|
package/esm/tap.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tap.js","sourceRoot":"","sources":["../src/tap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,uBAAuB,CAAA;AAC9C,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAA;AAEpD,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAE9B,MAAM,UAAU,GAAG,CAAO,CAAc;IACtC,OAAO,GAAG,CAAC,CAAC,CAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AACjC,CAAC;AAED,MAAM,UAAU,SAAS,CAAe,CAAqC;IAC3E,OAAO,CAAW,EAAmB,EAAkC,EAAE,CACvE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CACV,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CACtF,CAAA;AACL,CAAC;AAED,MAAM,UAAU,cAAc,CAAe,CAAkD;IAC7F,OAAO,CAAW,EAAmB,EAAkC,EAAE,CACvE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CACV,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CACtF,CAAA;AACL,CAAC;AAED,MAAM,UAAU,cAAc,CAAe,CAAqC;IAChF,OAAO,CAAW,EAAmB,EAAkC,EAAE,CACvE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CACV,EAAE,CAAC,GAAG,CACJ,IAAI,CACF,IAAI,CAAC,KAAK,EACV,CAAC,CAAC,EAAE,EAAE,CACJ,IAAI,CACF,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EACvB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CACjE,EACH,IAAI,CAAC,GAAG,CACT,CACF,CACF,CAAA;AACL,CAAC;AAED,MAAM,UAAU,YAAY,CAAY,MAAgC;IACtE,OAAO,CAAc,EAAmB,EAAkC,EAAE,CAC1E,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AACzF,CAAC"}
|
package/esm/zipItems.d.ts
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { Fx } from './Fx.js';
|
|
2
|
-
export declare function zipItems<A, B, C>(array: ReadonlyArray<A>, f: (a: A, b: B) => C): <R, E, E1>(fx: Fx<R, E, B, E1>) => Fx<R, E, C, E1>;
|
|
3
|
-
export declare function withItems<A>(array: ReadonlyArray<A>): <R, E, B, E1>(fx: Fx<R, E, B, E1>) => Fx<R, E, A, E1>;
|
|
4
|
-
//# sourceMappingURL=zipItems.d.ts.map
|
package/esm/zipItems.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"zipItems.d.ts","sourceRoot":"","sources":["../src/zipItems.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAI5B,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,sDA2B9E;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,yDAEnD"}
|
package/esm/zipItems.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import * as Effect from '@effect/core/io/Effect';
|
|
2
|
-
import * as Exit from '@effect/core/io/Exit';
|
|
3
|
-
import { flow, pipe } from '@fp-ts/data/Function';
|
|
4
|
-
import { identity } from '@tsplus/stdlib/data/Function';
|
|
5
|
-
import { Fx } from './Fx.js';
|
|
6
|
-
import { Sink } from './Sink.js';
|
|
7
|
-
import { deferredCallback } from './_internal.js';
|
|
8
|
-
export function zipItems(array, f) {
|
|
9
|
-
return (fx) => Fx((sink) => deferredCallback((cb) => {
|
|
10
|
-
let i = 0;
|
|
11
|
-
return fx.run(Sink((b) => {
|
|
12
|
-
const a = array[i++];
|
|
13
|
-
const c = f(a, b);
|
|
14
|
-
return pipe(sink.event(c), Effect.flatMap((x) => i === array.length
|
|
15
|
-
? pipe(sink.end, Effect.flatMap(flow(Exit.succeed, cb)))
|
|
16
|
-
: Effect.succeed(x)));
|
|
17
|
-
}, sink.error, sink.end));
|
|
18
|
-
}));
|
|
19
|
-
}
|
|
20
|
-
export function withItems(array) {
|
|
21
|
-
return (fx) => pipe(fx, zipItems(array, identity));
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=zipItems.js.map
|
package/esm/zipItems.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"zipItems.js","sourceRoot":"","sources":["../src/zipItems.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAA;AAChD,OAAO,KAAK,IAAI,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAEvD,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEjD,MAAM,UAAU,QAAQ,CAAU,KAAuB,EAAE,CAAoB;IAC7E,OAAO,CAAW,EAAmB,EAAmB,EAAE,CACxD,EAAE,CAAC,CAAY,IAA2B,EAAE,EAAE,CAC5C,gBAAgB,CAA8B,CAAC,EAAE,EAAE,EAAE;QACnD,IAAI,CAAC,GAAG,CAAC,CAAA;QAET,OAAO,EAAE,CAAC,GAAG,CACX,IAAI,CACF,CAAC,CAAC,EAAE,EAAE;YACJ,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAA;YACpB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YAEjB,OAAO,IAAI,CACT,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EACb,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CACnB,CAAC,KAAK,KAAK,CAAC,MAAM;gBAChB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;gBACxD,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CACtB,CACF,CAAA;QACH,CAAC,EACD,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,GAAG,CACT,CACF,CAAA;IACH,CAAC,CAAC,CACH,CAAA;AACL,CAAC;AAED,MAAM,UAAU,SAAS,CAAI,KAAuB;IAClD,OAAO,CAAc,EAAmB,EAAmB,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAA;AACnG,CAAC"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import * as EffectStream from '@effect/core/Stream/Stream'
|
|
2
|
-
import { pipe } from '@fp-ts/data/Function'
|
|
3
|
-
import * as M from '@most/core'
|
|
4
|
-
import * as Chunk from '@tsplus/stdlib/collections/Chunk'
|
|
5
|
-
import * as rxjs from 'rxjs'
|
|
6
|
-
|
|
7
|
-
import {
|
|
8
|
-
array,
|
|
9
|
-
effectTsStreamTest,
|
|
10
|
-
fxEffectTest,
|
|
11
|
-
iterations,
|
|
12
|
-
mostStreamTest,
|
|
13
|
-
runPerformanceTest,
|
|
14
|
-
rxjsObservableTest,
|
|
15
|
-
} from './_internal.js'
|
|
16
|
-
|
|
17
|
-
import * as Stream from '@/index.js'
|
|
18
|
-
|
|
19
|
-
const filterEvens = (x: number) => x % 2 === 0
|
|
20
|
-
const addOne = (x: number) => x + 1
|
|
21
|
-
const add = (x: number, y: number): number => x + y
|
|
22
|
-
|
|
23
|
-
runPerformanceTest({
|
|
24
|
-
name: 'filter -> map -> reduce ' + iterations + ' integers',
|
|
25
|
-
cases: [
|
|
26
|
-
fxEffectTest(() =>
|
|
27
|
-
pipe(
|
|
28
|
-
Stream.from(array),
|
|
29
|
-
Stream.filter(filterEvens),
|
|
30
|
-
Stream.map(addOne),
|
|
31
|
-
Stream.reduce(0, add),
|
|
32
|
-
),
|
|
33
|
-
),
|
|
34
|
-
mostStreamTest(() =>
|
|
35
|
-
pipe(M.periodic(0), M.withItems(array), M.filter(filterEvens), M.map(addOne), M.scan(add, 0)),
|
|
36
|
-
),
|
|
37
|
-
rxjsObservableTest(() =>
|
|
38
|
-
pipe(rxjs.from(array), rxjs.filter(filterEvens), rxjs.map(addOne), rxjs.scan(add, 0)),
|
|
39
|
-
),
|
|
40
|
-
effectTsStreamTest(() =>
|
|
41
|
-
pipe(
|
|
42
|
-
EffectStream.fromChunk(Chunk.from(array)),
|
|
43
|
-
EffectStream.filter(filterEvens),
|
|
44
|
-
EffectStream.map(addOne),
|
|
45
|
-
EffectStream.scan(0, add),
|
|
46
|
-
),
|
|
47
|
-
),
|
|
48
|
-
],
|
|
49
|
-
})
|
package/perf/flatMap.ts
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import * as EffectStream from '@effect/core/Stream/Stream'
|
|
2
|
-
import { pipe } from '@fp-ts/data/Function'
|
|
3
|
-
import * as M from '@most/core'
|
|
4
|
-
import * as Chunk from '@tsplus/stdlib/collections/Chunk'
|
|
5
|
-
import * as rxjs from 'rxjs'
|
|
6
|
-
|
|
7
|
-
import {
|
|
8
|
-
array,
|
|
9
|
-
effectTsStreamTest,
|
|
10
|
-
fxEffectTest,
|
|
11
|
-
iterations,
|
|
12
|
-
mostStreamTest,
|
|
13
|
-
runPerformanceTest,
|
|
14
|
-
rxjsObservableTest,
|
|
15
|
-
} from './_internal.js'
|
|
16
|
-
|
|
17
|
-
import * as Stream from '@/index.js'
|
|
18
|
-
|
|
19
|
-
const nestedArray = array.map((x) => Array.from({ length: x }, (_, i) => x * 1000 + i))
|
|
20
|
-
|
|
21
|
-
const add = (x: number, y: number): number => x + y
|
|
22
|
-
|
|
23
|
-
runPerformanceTest({
|
|
24
|
-
name: 'flatMap ' + iterations + ' integers',
|
|
25
|
-
cases: [
|
|
26
|
-
fxEffectTest(() =>
|
|
27
|
-
pipe(Stream.from(nestedArray), Stream.flatMap(Stream.from), Stream.reduce(0, add)),
|
|
28
|
-
),
|
|
29
|
-
mostStreamTest(() =>
|
|
30
|
-
pipe(
|
|
31
|
-
M.periodic(0),
|
|
32
|
-
M.withItems(nestedArray),
|
|
33
|
-
M.chain((ns) => pipe(M.periodic(0), M.withItems(ns))),
|
|
34
|
-
M.scan(add, 0),
|
|
35
|
-
),
|
|
36
|
-
),
|
|
37
|
-
rxjsObservableTest(() =>
|
|
38
|
-
pipe(rxjs.from(nestedArray), rxjs.flatMap(rxjs.from), rxjs.scan(add, 0)),
|
|
39
|
-
),
|
|
40
|
-
effectTsStreamTest(() =>
|
|
41
|
-
pipe(
|
|
42
|
-
EffectStream.fromChunk(Chunk.from(nestedArray)),
|
|
43
|
-
EffectStream.flatMap((ns) => EffectStream.fromChunk(Chunk.from(ns))),
|
|
44
|
-
EffectStream.scan(0, add),
|
|
45
|
-
),
|
|
46
|
-
),
|
|
47
|
-
],
|
|
48
|
-
})
|
package/perf/switchMap.ts
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { pipe } from '@fp-ts/data/Function'
|
|
2
|
-
import * as M from '@most/core'
|
|
3
|
-
import * as rxjs from 'rxjs'
|
|
4
|
-
|
|
5
|
-
import {
|
|
6
|
-
array,
|
|
7
|
-
fxEffectTest,
|
|
8
|
-
iterations,
|
|
9
|
-
mostStreamTest,
|
|
10
|
-
runPerformanceTest,
|
|
11
|
-
rxjsObservableTest,
|
|
12
|
-
} from './_internal.js'
|
|
13
|
-
|
|
14
|
-
import * as Stream from '@/index.js'
|
|
15
|
-
|
|
16
|
-
const nestedArray = array.map((x) => Array.from({ length: x }, (_, i) => x * 1000 + i))
|
|
17
|
-
|
|
18
|
-
const add = (x: number, y: number): number => x + y
|
|
19
|
-
|
|
20
|
-
runPerformanceTest({
|
|
21
|
-
name: 'switchMap ' + iterations + ' integers',
|
|
22
|
-
cases: [
|
|
23
|
-
fxEffectTest(() =>
|
|
24
|
-
pipe(Stream.from(nestedArray), Stream.switchMap(Stream.from), Stream.reduce(0, add)),
|
|
25
|
-
),
|
|
26
|
-
mostStreamTest(() =>
|
|
27
|
-
pipe(
|
|
28
|
-
M.periodic(0),
|
|
29
|
-
M.withItems(nestedArray),
|
|
30
|
-
M.map((ns) => pipe(M.periodic(0), M.withItems(ns))),
|
|
31
|
-
M.switchLatest,
|
|
32
|
-
M.scan(add, 0),
|
|
33
|
-
),
|
|
34
|
-
),
|
|
35
|
-
rxjsObservableTest(() =>
|
|
36
|
-
pipe(rxjs.from(nestedArray), rxjs.switchMap(rxjs.from), rxjs.scan(add, 0)),
|
|
37
|
-
),
|
|
38
|
-
// Effect Stream is pull-based and does not offer switchMap
|
|
39
|
-
],
|
|
40
|
-
})
|
package/src/Sink.ts
DELETED
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { Cause } from '@effect/core/io/Cause'
|
|
2
|
-
import * as Effect from '@effect/core/io/Effect'
|
|
3
|
-
import { flow, pipe } from '@fp-ts/data/Function'
|
|
4
|
-
import * as Maybe from '@tsplus/stdlib/data/Maybe'
|
|
5
|
-
|
|
6
|
-
export interface Sink<E, A, R2, E2, B> {
|
|
7
|
-
readonly event: (value: A) => Effect.Effect<R2, E2, unknown>
|
|
8
|
-
readonly error: (cause: Cause<E>) => Effect.Effect<R2, E2, B>
|
|
9
|
-
readonly end: Effect.Effect<R2, E2, B>
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export function Sink<E, A, R2 = never, E2 = E, B = void>(
|
|
13
|
-
event: Sink<E, A, R2, E2, B>['event'],
|
|
14
|
-
error: Sink<E, A, R2, E2, B>['error'] = Effect.failCause as any,
|
|
15
|
-
end: Sink<E, A, R2, E2, B>['end'] = Effect.unit as any,
|
|
16
|
-
): Sink<E, A, R2, E2, B> {
|
|
17
|
-
return { event, error, end }
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export namespace Sink {
|
|
21
|
-
export type InputErrorsOf<T> = T extends Sink<infer R, any, any, any, any> ? R : never
|
|
22
|
-
export type EventOf<T> = T extends Sink<any, infer R, any, any, any> ? R : never
|
|
23
|
-
export type ResourcesOf<T> = T extends Sink<any, any, infer R, any, any> ? R : never
|
|
24
|
-
export type OutputErrorsOf<T> = T extends Sink<any, any, any, infer R, any> ? R : never
|
|
25
|
-
export type OutputOf<T> = T extends Sink<any, any, any, any, infer R> ? R : never
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export function mapInputEvent<A, B>(
|
|
29
|
-
f: (a: A) => B,
|
|
30
|
-
): <E, R2, E2, C>(sink: Sink<E, B, R2, E2, C>) => Sink<E, A, R2, E2, C> {
|
|
31
|
-
return (sink) => Sink(flow(f, sink.event), sink.error, sink.end)
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export function mapInputEventEffect<A, R3, E3, B>(
|
|
35
|
-
f: (a: A) => Effect.Effect<R3, E3, B>,
|
|
36
|
-
): <E, R2, E2, C>(sink: Sink<E, B, R2, E2, C>) => Sink<E, A, R2 | R3, E2 | E3, C> {
|
|
37
|
-
return (sink) => Sink(flow(f, Effect.flatMap(sink.event)), sink.error, sink.end)
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export function mapInputCause<E, E2>(
|
|
41
|
-
f: (e: Cause<E>) => Cause<E2>,
|
|
42
|
-
): <A, R2, E3, B>(sink: Sink<E2, A, R2, E3, B>) => Sink<E, A, R2, E3, B> {
|
|
43
|
-
return (sink) => Sink(sink.event, flow(f, sink.error), sink.end)
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
export function mapInputCauseEffect<E, R3, E3, E2>(
|
|
47
|
-
f: (e: Cause<E>) => Effect.Effect<R3, E3, Cause<E2>>,
|
|
48
|
-
): <A, R2, E4, B>(sink: Sink<E2, A, R2, E4, B>) => Sink<E, A, R2 | R3, E3 | E4, B> {
|
|
49
|
-
return (sink) => Sink(sink.event, flow(f, Effect.flatMap(sink.error)), sink.end)
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
export function mapOutput<B, C>(
|
|
53
|
-
f: (b: B) => C,
|
|
54
|
-
): <E, A, R2, E2>(sink: Sink<E, A, R2, E2, B>) => Sink<E, A, R2, E2, C> {
|
|
55
|
-
return (sink) => Sink(sink.event, flow(sink.error, Effect.map(f)), pipe(sink.end, Effect.map(f)))
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
export function mapOutputEffect<B, R3, E3, C>(
|
|
59
|
-
f: (b: B) => Effect.Effect<R3, E3, C>,
|
|
60
|
-
): <E, A, R2, E2>(sink: Sink<E, A, R2, E2, B>) => Sink<E, A, R2 | R3, E2 | E3, C> {
|
|
61
|
-
return (sink) =>
|
|
62
|
-
Sink(sink.event, flow(sink.error, Effect.flatMap(f)), pipe(sink.end, Effect.flatMap(f)))
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
export function mapOutputCause<E2, E3>(f: (e: Cause<E2>) => Cause<E3>) {
|
|
66
|
-
return <E, A, R2, B>(sink: Sink<E, A, R2, E2, B>): Sink<E, A, R2, E3, B> =>
|
|
67
|
-
Sink(
|
|
68
|
-
flow(sink.event, Effect.mapErrorCause(f)),
|
|
69
|
-
flow(sink.error, Effect.mapErrorCause(f)),
|
|
70
|
-
pipe(sink.end, Effect.mapErrorCause(f)),
|
|
71
|
-
)
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
export function filterMap<A, B>(f: (a: A) => Maybe.Maybe<B>) {
|
|
75
|
-
return <E, R2, E2, C>(sink: Sink<E, B, R2, E2, C>): Sink<E, A, R2, E2, C> =>
|
|
76
|
-
Sink(
|
|
77
|
-
flow(
|
|
78
|
-
f,
|
|
79
|
-
Maybe.fold(() => Effect.unit, sink.event),
|
|
80
|
-
),
|
|
81
|
-
sink.error,
|
|
82
|
-
sink.end,
|
|
83
|
-
)
|
|
84
|
-
}
|
package/src/TSemaphore.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import * as TSemaphore from '@effect/core/stm/TSemaphore'
|
|
2
|
-
|
|
3
|
-
import { transform } from './transform.js'
|
|
4
|
-
|
|
5
|
-
export const withPermit = (self: TSemaphore.TSemaphore) => transform(TSemaphore.withPermit(self))
|
|
6
|
-
|
|
7
|
-
export const withPermits = (permits: number) => (self: TSemaphore.TSemaphore) =>
|
|
8
|
-
transform(TSemaphore.withPermits(permits)(self))
|
package/src/drain.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import * as Effect from '@effect/core/io/Effect'
|
|
2
|
-
import { Fiber } from '@effect/core/io/Fiber'
|
|
3
|
-
|
|
4
|
-
import { Fx } from './Fx.js'
|
|
5
|
-
import { Sink } from './Sink.js'
|
|
6
|
-
|
|
7
|
-
export function drainNow<R, E, A, E1>(fx: Fx<R, E, A, E1>): Effect.Effect<R, E | E1, void> {
|
|
8
|
-
return fx.run(Sink(Effect.succeed, Effect.failCause, Effect.unit))
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export function drain<R, E, A, E1>(
|
|
12
|
-
fx: Fx<R, E, A, E1>,
|
|
13
|
-
): Effect.Effect<R, never, Fiber.Runtime<E | E1, void>> {
|
|
14
|
-
return Effect.fork(drainNow(fx))
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export function drainDaemon<R, E, A, E1>(
|
|
18
|
-
fx: Fx<R, E, A, E1>,
|
|
19
|
-
): Effect.Effect<R, never, Fiber.Runtime<E | E1, void>> {
|
|
20
|
-
return Effect.forkDaemon(drainNow(fx))
|
|
21
|
-
}
|
package/src/empty.ts
DELETED
package/src/from.test.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { deepStrictEqual } from 'assert'
|
|
2
|
-
|
|
3
|
-
import { unsafeRunPromise } from '@effect/core/io/Effect'
|
|
4
|
-
|
|
5
|
-
import { from } from './from.js'
|
|
6
|
-
import { collectAll } from './reduce.js'
|
|
7
|
-
|
|
8
|
-
describe(import.meta.url, () => {
|
|
9
|
-
describe('from', () => {
|
|
10
|
-
it('converts a collection into a fx', async () => {
|
|
11
|
-
const values = [1, 2, 3]
|
|
12
|
-
const test = collectAll(from(values))
|
|
13
|
-
const events = await unsafeRunPromise(test)
|
|
14
|
-
|
|
15
|
-
deepStrictEqual(events, values)
|
|
16
|
-
})
|
|
17
|
-
})
|
|
18
|
-
})
|
package/src/from.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import * as Effect from '@effect/core/io/Effect'
|
|
2
|
-
import { pipe } from '@fp-ts/data/Function'
|
|
3
|
-
import { Collection } from '@tsplus/stdlib/collections/Collection'
|
|
4
|
-
|
|
5
|
-
import { Fx } from './Fx.js'
|
|
6
|
-
import { Sink } from './Sink.js'
|
|
7
|
-
|
|
8
|
-
export function from<A>(collection: Collection<A>): Fx<never, never, A> {
|
|
9
|
-
return new FromCollectionFx(collection)
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export class FromCollectionFx<A> implements Fx<never, never, A> {
|
|
13
|
-
constructor(readonly collection: Collection<A>) {}
|
|
14
|
-
|
|
15
|
-
run<R2, E2, B>(sink: Sink<never, A, R2, E2, B>): Effect.Effect<R2, E2, B> {
|
|
16
|
-
return pipe(Effect.forEachDiscard(this.collection, sink.event), Effect.zipRight(sink.end))
|
|
17
|
-
}
|
|
18
|
-
}
|
package/src/fromCallback.ts
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { Cause } from '@effect/core/io/Cause'
|
|
2
|
-
import * as Effect from '@effect/core/io/Effect'
|
|
3
|
-
import * as Exit from '@effect/core/io/Exit'
|
|
4
|
-
import { unsafeForkUnstarted } from '@effect/core/io/Fiber/_internal/runtime'
|
|
5
|
-
import { flow } from '@fp-ts/data/Function'
|
|
6
|
-
|
|
7
|
-
import { Fx } from './Fx.js'
|
|
8
|
-
import { Sink } from './Sink.js'
|
|
9
|
-
|
|
10
|
-
export function make<R, E, A>(
|
|
11
|
-
f: (sink: {
|
|
12
|
-
readonly event: (a: A) => void
|
|
13
|
-
readonly error: (cause: Cause<E>) => void
|
|
14
|
-
readonly end: () => void
|
|
15
|
-
}) => Effect.Canceler<R>,
|
|
16
|
-
): Fx<R, E, A> {
|
|
17
|
-
return Fx<R, E, A>(<R2, E2, B>(sink: Sink<E, A, R2, E2, B>) =>
|
|
18
|
-
Effect.withFiberRuntime<R | R2, E2, B>((fiber, status) => {
|
|
19
|
-
const unsafeRun = <R, E, A>(
|
|
20
|
-
eff: Effect.Effect<R, E, A>,
|
|
21
|
-
observer: (exit: Exit.Exit<E, A>) => void,
|
|
22
|
-
) => {
|
|
23
|
-
const f = unsafeForkUnstarted(eff, fiber, status.runtimeFlags)
|
|
24
|
-
f.addObserver(observer)
|
|
25
|
-
f.start(eff)
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
return Effect.asyncEffect((cb) =>
|
|
29
|
-
f({
|
|
30
|
-
event: (a) =>
|
|
31
|
-
unsafeRun(sink.event(a), (exit) =>
|
|
32
|
-
Exit.isFailure(exit) ? cb(Effect.failCause(exit.cause)) : undefined,
|
|
33
|
-
),
|
|
34
|
-
error: (e) => unsafeRun(sink.error(e), flow(Effect.done, cb)),
|
|
35
|
-
end: () => unsafeRun(sink.end, flow(Effect.done, cb)),
|
|
36
|
-
}),
|
|
37
|
-
)
|
|
38
|
-
}),
|
|
39
|
-
)
|
|
40
|
-
}
|
package/src/loop.ts
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { Fx } from './Fx.js'
|
|
2
|
-
import { Sink } from './Sink.js'
|
|
3
|
-
|
|
4
|
-
export function loop<A, B, C>(seed: A, f: (a: A, b: B) => readonly [C, A]) {
|
|
5
|
-
return <R, E, E1>(fx: Fx<R, E, B, E1>): Fx<R, E, C, E1> => new LoopFx(fx, seed, f)
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
export function scan<A, B>(seed: A, f: (a: A, b: B) => A) {
|
|
9
|
-
return loop(seed, (a, b: B) => {
|
|
10
|
-
const x = f(a, b)
|
|
11
|
-
return [x, x]
|
|
12
|
-
})
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
class LoopFx<R, E, E1, A, B, C> implements Fx<R, E, C, E1> {
|
|
16
|
-
constructor(
|
|
17
|
-
readonly fx: Fx<R, E, B, E1>,
|
|
18
|
-
readonly seed: A,
|
|
19
|
-
readonly f: (a: A, b: B) => readonly [C, A],
|
|
20
|
-
) {}
|
|
21
|
-
|
|
22
|
-
readonly run: Fx<R, E, C, E1>['run'] = (sink) => {
|
|
23
|
-
let acc = this.seed
|
|
24
|
-
|
|
25
|
-
return this.fx.run(
|
|
26
|
-
Sink(
|
|
27
|
-
(b) => {
|
|
28
|
-
const [c, a] = this.f(acc, b)
|
|
29
|
-
acc = a
|
|
30
|
-
return sink.event(c)
|
|
31
|
-
},
|
|
32
|
-
sink.error,
|
|
33
|
-
sink.end,
|
|
34
|
-
),
|
|
35
|
-
)
|
|
36
|
-
}
|
|
37
|
-
}
|
package/src/map.ts
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import * as Effect from '@effect/core/io/Effect'
|
|
2
|
-
import { flow, identity, pipe } from '@fp-ts/data/Function'
|
|
3
|
-
import { Predicate } from '@fp-ts/data/Predicate'
|
|
4
|
-
import { Refinement } from '@fp-ts/data/Refinement'
|
|
5
|
-
import * as Maybe from '@tsplus/stdlib/data/Maybe'
|
|
6
|
-
|
|
7
|
-
import { Fx } from './Fx.js'
|
|
8
|
-
import * as Sink from './Sink.js'
|
|
9
|
-
import { FromEffectFx } from './fromEffect.js'
|
|
10
|
-
|
|
11
|
-
export function map<A, B>(f: (a: A) => B) {
|
|
12
|
-
return <R, E, E1>(fx: Fx<R, E, A, E1>): Fx<R, E, B, E1> => MapFx.make(fx, f)
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export function as<B>(b: B) {
|
|
16
|
-
return <R, E, A, E1>(fx: Fx<R, E, A, E1>): Fx<R, E, B, E1> => map(() => b)(fx)
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export function asUnit<R, E, A, E1>(fx: Fx<R, E, A, E1>): Fx<R, E, void, E1> {
|
|
20
|
-
return as<void>(undefined)(fx)
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export class MapFx<R, E, A, B, E1> implements Fx<R, E, B, E1> {
|
|
24
|
-
constructor(readonly fx: Fx<R, E, A, E1>, readonly f: (a: A) => B) {}
|
|
25
|
-
|
|
26
|
-
run<R2, E2, C>(sink: Sink.Sink<E, B, R2, E2, C>): Effect.Effect<R | R2, E1 | E2, C> {
|
|
27
|
-
return this.fx.run(Sink.mapInputEvent(this.f)(sink))
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
static make = <R, E, A, B, E1>(fx: Fx<R, E, A, E1>, f: (a: A) => B): Fx<R, E, B, E1> => {
|
|
31
|
-
if (fx instanceof MapFx) {
|
|
32
|
-
return new MapFx(fx.fx, flow(fx.f, f))
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
if (fx instanceof FromEffectFx) {
|
|
36
|
-
return new FromEffectFx(pipe(fx.effect, Effect.map(f)))
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
if (fx instanceof FilterMapFx) {
|
|
40
|
-
return FilterMapFx.make(fx.fx, flow(fx.f, Maybe.map(f)))
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
return new MapFx(fx, f)
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
export function filterMap<A, B>(f: (a: A) => Maybe.Maybe<B>) {
|
|
48
|
-
return <R, E, E1>(fx: Fx<R, E, A, E1>): Fx<R, E, B, E1> => FilterMapFx.make(fx, f)
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
export function filter<A, B extends A>(
|
|
52
|
-
predicate: Refinement<A, B>,
|
|
53
|
-
): <R, E, E1>(fx: Fx<R, E, A, E1>) => Fx<R, E, B, E1>
|
|
54
|
-
export function filter<A>(
|
|
55
|
-
predicate: Predicate<A>,
|
|
56
|
-
): <R, E, E1>(fx: Fx<R, E, A, E1>) => Fx<R, E, A, E1>
|
|
57
|
-
|
|
58
|
-
export function filter<A>(predicate: Predicate<A>) {
|
|
59
|
-
return filterMap((a: A) => Maybe.fromPredicate(a, predicate))
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
export function compact<R, E, A, E1>(fx: Fx<R, E, Maybe.Maybe<A>, E1>): Fx<R, E, A, E1> {
|
|
63
|
-
return pipe(fx, filterMap(identity))
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
export class FilterMapFx<R, E, A, E1, B> implements Fx<R, E, B, E1> {
|
|
67
|
-
constructor(readonly fx: Fx<R, E, A, E1>, readonly f: (a: A) => Maybe.Maybe<B>) {}
|
|
68
|
-
|
|
69
|
-
run<R2, E2, C>(sink: Sink.Sink<E, B, R2, E2, C>): Effect.Effect<R | R2, E1 | E2, C> {
|
|
70
|
-
return this.fx.run(pipe(sink, Sink.filterMap(this.f)))
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
static make = <R, E, A, E1, B>(
|
|
74
|
-
fx: Fx<R, E, A, E1>,
|
|
75
|
-
f: (a: A) => Maybe.Maybe<B>,
|
|
76
|
-
): Fx<R, E, B, E1> => {
|
|
77
|
-
if (fx instanceof FilterMapFx) {
|
|
78
|
-
return new FilterMapFx(fx.fx, flow(fx.f, Maybe.flatMap(f)))
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
return new FilterMapFx(fx, f)
|
|
82
|
-
}
|
|
83
|
-
}
|