@fncts/io 0.0.34 → 0.0.35
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/Fiber/FiberRuntime.d.ts +7 -7
- package/IO/api/all.d.ts +41 -0
- package/IO/api/concurrency.d.ts +11 -0
- package/IO/api/interrupt.d.ts +1 -1
- package/IO/api/raceWith.d.ts +2 -1
- package/IO/api.d.ts +7 -2
- package/IO/definition.d.ts +103 -127
- package/IO.d.ts +1 -0
- package/Push/api.d.ts +25 -4
- package/Push/definition.d.ts +17 -0
- package/STM/definition.d.ts +2 -2
- package/Sink/api.d.ts +19 -19
- package/_cjs/Channel/api/runScoped.cjs +1 -1
- package/_cjs/Channel/api/runScoped.cjs.map +1 -1
- package/_cjs/Channel/api.cjs +2 -2
- package/_cjs/Channel/api.cjs.map +1 -1
- package/_cjs/Fiber/FiberRuntime.cjs +110 -98
- package/_cjs/Fiber/FiberRuntime.cjs.map +1 -1
- package/_cjs/Future/api.cjs +1 -1
- package/_cjs/Future/api.cjs.map +1 -1
- package/_cjs/IO/api/all.cjs +33 -0
- package/_cjs/IO/api/all.cjs.map +1 -0
- package/_cjs/IO/api/asyncIO.cjs +1 -1
- package/_cjs/IO/api/asyncIO.cjs.map +1 -1
- package/_cjs/IO/api/bracketExit.cjs +1 -1
- package/_cjs/IO/api/bracketExit.cjs.map +1 -1
- package/_cjs/IO/api/concurrency.cjs +25 -4
- package/_cjs/IO/api/concurrency.cjs.map +1 -1
- package/_cjs/IO/api/disconnect.cjs +1 -1
- package/_cjs/IO/api/disconnect.cjs.map +1 -1
- package/_cjs/IO/api/foreachConcurrent.cjs +1 -1
- package/_cjs/IO/api/foreachConcurrent.cjs.map +1 -1
- package/_cjs/IO/api/foreachExec.cjs +1 -1
- package/_cjs/IO/api/foreachExec.cjs.map +1 -1
- package/_cjs/IO/api/forkIn.cjs +1 -1
- package/_cjs/IO/api/forkIn.cjs.map +1 -1
- package/_cjs/IO/api/forkScoped.cjs +1 -1
- package/_cjs/IO/api/forkScoped.cjs.map +1 -1
- package/_cjs/IO/api/fulfill.cjs +1 -1
- package/_cjs/IO/api/fulfill.cjs.map +1 -1
- package/_cjs/IO/api/interrupt.cjs +18 -6
- package/_cjs/IO/api/interrupt.cjs.map +1 -1
- package/_cjs/IO/api/raceWith.cjs +4 -4
- package/_cjs/IO/api/raceWith.cjs.map +1 -1
- package/_cjs/IO/api/timeout.cjs +8 -5
- package/_cjs/IO/api/timeout.cjs.map +1 -1
- package/_cjs/IO/api/zipConcurrent.cjs +1 -1
- package/_cjs/IO/api/zipConcurrent.cjs.map +1 -1
- package/_cjs/IO/api.cjs +78 -20
- package/_cjs/IO/api.cjs.map +1 -1
- package/_cjs/IO/definition.cjs +14 -191
- package/_cjs/IO/definition.cjs.map +1 -1
- package/_cjs/IO.cjs +11 -0
- package/_cjs/IO.cjs.map +1 -1
- package/_cjs/Layer/MemoMap.cjs +1 -1
- package/_cjs/Layer/MemoMap.cjs.map +1 -1
- package/_cjs/Push/api.cjs +149 -110
- package/_cjs/Push/api.cjs.map +1 -1
- package/_cjs/Push/definition.cjs.map +1 -1
- package/_cjs/STM/api/atomically.cjs +1 -1
- package/_cjs/STM/api/atomically.cjs.map +1 -1
- package/_cjs/STM/definition.cjs +1 -1
- package/_cjs/STM/definition.cjs.map +1 -1
- package/_cjs/ScopedRef/api.cjs +2 -2
- package/_cjs/ScopedRef/api.cjs.map +1 -1
- package/_cjs/Semaphore.cjs +1 -1
- package/_cjs/Semaphore.cjs.map +1 -1
- package/_cjs/TReentrantLock/api.cjs +2 -2
- package/_cjs/TReentrantLock/api.cjs.map +1 -1
- package/_cjs/TSemaphore/api.cjs +1 -1
- package/_cjs/TSemaphore/api.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/dropUntilIO.cjs +12 -17
- package/_cjs/collection/immutable/Conc/dropUntilIO.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/dropWhileIO.cjs +12 -17
- package/_cjs/collection/immutable/Conc/dropWhileIO.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/filterIO.cjs +2 -12
- package/_cjs/collection/immutable/Conc/filterIO.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/mapIO.cjs +3 -9
- package/_cjs/collection/immutable/Conc/mapIO.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/takeWhileIO.cjs +11 -27
- package/_cjs/collection/immutable/Conc/takeWhileIO.cjs.map +1 -1
- package/_mjs/Channel/api/runScoped.mjs +1 -1
- package/_mjs/Channel/api/runScoped.mjs.map +1 -1
- package/_mjs/Channel/api.mjs +2 -2
- package/_mjs/Channel/api.mjs.map +1 -1
- package/_mjs/Fiber/FiberRuntime.mjs +111 -100
- package/_mjs/Fiber/FiberRuntime.mjs.map +1 -1
- package/_mjs/Future/api.mjs +1 -1
- package/_mjs/Future/api.mjs.map +1 -1
- package/_mjs/IO/api/all.mjs +24 -0
- package/_mjs/IO/api/all.mjs.map +1 -0
- package/_mjs/IO/api/asyncIO.mjs +1 -1
- package/_mjs/IO/api/asyncIO.mjs.map +1 -1
- package/_mjs/IO/api/bracketExit.mjs +1 -1
- package/_mjs/IO/api/bracketExit.mjs.map +1 -1
- package/_mjs/IO/api/concurrency.mjs +19 -2
- package/_mjs/IO/api/concurrency.mjs.map +1 -1
- package/_mjs/IO/api/disconnect.mjs +1 -1
- package/_mjs/IO/api/disconnect.mjs.map +1 -1
- package/_mjs/IO/api/foreachConcurrent.mjs +1 -1
- package/_mjs/IO/api/foreachConcurrent.mjs.map +1 -1
- package/_mjs/IO/api/foreachExec.mjs +1 -1
- package/_mjs/IO/api/foreachExec.mjs.map +1 -1
- package/_mjs/IO/api/forkIn.mjs +1 -1
- package/_mjs/IO/api/forkIn.mjs.map +1 -1
- package/_mjs/IO/api/forkScoped.mjs +1 -1
- package/_mjs/IO/api/forkScoped.mjs.map +1 -1
- package/_mjs/IO/api/fulfill.mjs +1 -1
- package/_mjs/IO/api/fulfill.mjs.map +1 -1
- package/_mjs/IO/api/interrupt.mjs +19 -7
- package/_mjs/IO/api/interrupt.mjs.map +1 -1
- package/_mjs/IO/api/raceWith.mjs +4 -4
- package/_mjs/IO/api/raceWith.mjs.map +1 -1
- package/_mjs/IO/api/timeout.mjs +8 -5
- package/_mjs/IO/api/timeout.mjs.map +1 -1
- package/_mjs/IO/api/zipConcurrent.mjs +1 -1
- package/_mjs/IO/api/zipConcurrent.mjs.map +1 -1
- package/_mjs/IO/api.mjs +78 -23
- package/_mjs/IO/api.mjs.map +1 -1
- package/_mjs/IO/definition.mjs +12 -181
- package/_mjs/IO/definition.mjs.map +1 -1
- package/_mjs/IO.mjs +1 -0
- package/_mjs/IO.mjs.map +1 -1
- package/_mjs/Layer/MemoMap.mjs +1 -1
- package/_mjs/Layer/MemoMap.mjs.map +1 -1
- package/_mjs/Push/api.mjs +145 -109
- package/_mjs/Push/api.mjs.map +1 -1
- package/_mjs/Push/definition.mjs.map +1 -1
- package/_mjs/STM/api/atomically.mjs +1 -1
- package/_mjs/STM/api/atomically.mjs.map +1 -1
- package/_mjs/STM/definition.mjs +1 -1
- package/_mjs/STM/definition.mjs.map +1 -1
- package/_mjs/ScopedRef/api.mjs +2 -2
- package/_mjs/ScopedRef/api.mjs.map +1 -1
- package/_mjs/Semaphore.mjs +1 -1
- package/_mjs/Semaphore.mjs.map +1 -1
- package/_mjs/TReentrantLock/api.mjs +2 -2
- package/_mjs/TReentrantLock/api.mjs.map +1 -1
- package/_mjs/TSemaphore/api.mjs +1 -1
- package/_mjs/TSemaphore/api.mjs.map +1 -1
- package/_mjs/collection/immutable/Conc/dropUntilIO.mjs +12 -17
- package/_mjs/collection/immutable/Conc/dropUntilIO.mjs.map +1 -1
- package/_mjs/collection/immutable/Conc/dropWhileIO.mjs +12 -17
- package/_mjs/collection/immutable/Conc/dropWhileIO.mjs.map +1 -1
- package/_mjs/collection/immutable/Conc/filterIO.mjs +2 -12
- package/_mjs/collection/immutable/Conc/filterIO.mjs.map +1 -1
- package/_mjs/collection/immutable/Conc/mapIO.mjs +3 -9
- package/_mjs/collection/immutable/Conc/mapIO.mjs.map +1 -1
- package/_mjs/collection/immutable/Conc/takeWhileIO.mjs +11 -27
- package/_mjs/collection/immutable/Conc/takeWhileIO.mjs.map +1 -1
- package/_src/Channel/api.ts +3 -3
- package/_src/Fiber/FiberRuntime.ts +76 -75
- package/_src/IO/api/all.ts +64 -0
- package/_src/IO/api/concurrency.ts +33 -0
- package/_src/IO/api/foreachExec.ts +2 -2
- package/_src/IO/api/interrupt.ts +20 -7
- package/_src/IO/api/raceWith.ts +4 -2
- package/_src/IO/api/timeout.ts +21 -1
- package/_src/IO/api.ts +79 -27
- package/_src/IO/definition.ts +155 -199
- package/_src/IO.ts +1 -0
- package/_src/Push/api.ts +70 -4
- package/_src/Push/definition.ts +6 -0
- package/_src/STM/definition.ts +2 -2
- package/_src/collection/immutable/Conc/dropUntilIO.ts +18 -15
- package/_src/collection/immutable/Conc/dropWhileIO.ts +18 -17
- package/_src/collection/immutable/Conc/filterIO.ts +1 -11
- package/_src/collection/immutable/Conc/mapIO.ts +2 -9
- package/_src/collection/immutable/Conc/takeWhileIO.ts +19 -28
- package/collection/immutable/Conc/filterIO.d.ts +1 -1
- package/collection/immutable/Conc/mapIO.d.ts +1 -1
- package/collection/immutable/Conc/takeWhileIO.d.ts +1 -1
- package/package.json +2 -2
package/_mjs/Push/api.mjs
CHANGED
|
@@ -1,38 +1,44 @@
|
|
|
1
1
|
var _a;
|
|
2
2
|
const fileName_1 = "(@fncts/io) src/Push/api.ts";
|
|
3
|
-
import * as tsplus_module_1 from "@fncts/io/
|
|
4
|
-
import * as tsplus_module_2 from "@fncts/io/
|
|
5
|
-
import * as tsplus_module_3 from "@fncts/
|
|
6
|
-
import * as tsplus_module_4 from "@fncts/io/
|
|
7
|
-
import * as tsplus_module_5 from "@fncts/
|
|
8
|
-
import * as tsplus_module_6 from "@fncts/io/IO/api/
|
|
9
|
-
import * as tsplus_module_7 from "@fncts/io/IO/
|
|
10
|
-
import * as tsplus_module_8 from "@fncts/io/
|
|
11
|
-
import * as tsplus_module_9 from "@fncts/io/
|
|
12
|
-
import * as tsplus_module_10 from "@fncts/io/
|
|
13
|
-
import * as tsplus_module_11 from "@fncts/
|
|
14
|
-
import * as tsplus_module_12 from "@fncts/io/
|
|
15
|
-
import * as tsplus_module_13 from "@fncts/io/
|
|
16
|
-
import * as tsplus_module_14 from "@fncts/base/
|
|
17
|
-
import * as tsplus_module_15 from "@fncts/io/IO/api/
|
|
18
|
-
import * as tsplus_module_16 from "@fncts/
|
|
19
|
-
import * as tsplus_module_17 from "@fncts/io/
|
|
20
|
-
import * as tsplus_module_18 from "@fncts/io/
|
|
21
|
-
import * as tsplus_module_19 from "@fncts/io/
|
|
22
|
-
import * as tsplus_module_20 from "@fncts/io/
|
|
23
|
-
import * as tsplus_module_21 from "@fncts/
|
|
24
|
-
import * as tsplus_module_22 from "@fncts/io/IO/api/
|
|
25
|
-
import * as tsplus_module_23 from "@fncts/base/data/
|
|
26
|
-
import * as tsplus_module_24 from "@fncts/
|
|
27
|
-
import * as tsplus_module_25 from "@fncts/
|
|
28
|
-
import * as tsplus_module_26 from "@fncts/io/
|
|
29
|
-
import * as tsplus_module_27 from "@fncts/base/data/
|
|
30
|
-
import * as tsplus_module_28 from "@fncts/
|
|
31
|
-
import * as tsplus_module_29 from "@fncts/base/
|
|
32
|
-
import * as tsplus_module_30 from "@fncts/io/
|
|
33
|
-
import * as tsplus_module_31 from "@fncts/
|
|
34
|
-
import * as tsplus_module_32 from "@fncts/io/
|
|
35
|
-
import * as tsplus_module_33 from "@fncts/io/
|
|
3
|
+
import * as tsplus_module_1 from "@fncts/io/Future/api";
|
|
4
|
+
import * as tsplus_module_2 from "@fncts/io/IO/api/interrupt";
|
|
5
|
+
import * as tsplus_module_3 from "@fncts/base/data/Either/destructors";
|
|
6
|
+
import * as tsplus_module_4 from "@fncts/io/IO/api";
|
|
7
|
+
import * as tsplus_module_5 from "@fncts/io/IO/api/forkIn";
|
|
8
|
+
import * as tsplus_module_6 from "@fncts/io/IO/api/fulfill";
|
|
9
|
+
import * as tsplus_module_7 from "@fncts/io/IO/runtime";
|
|
10
|
+
import * as tsplus_module_8 from "@fncts/io/IO/api/scope";
|
|
11
|
+
import * as tsplus_module_9 from "@fncts/io/Future/constructors";
|
|
12
|
+
import * as tsplus_module_10 from "@fncts/io/Push/definition";
|
|
13
|
+
import * as tsplus_module_11 from "@fncts/base/data/Either/constructors";
|
|
14
|
+
import * as tsplus_module_12 from "@fncts/io/IO/api/forkScoped";
|
|
15
|
+
import * as tsplus_module_13 from "@fncts/io/CountdownLatch";
|
|
16
|
+
import * as tsplus_module_14 from "@fncts/base/collection/Iterable/api";
|
|
17
|
+
import * as tsplus_module_15 from "@fncts/io/IO/api/delay";
|
|
18
|
+
import * as tsplus_module_16 from "@fncts/io/IO/api/acquireRelease";
|
|
19
|
+
import * as tsplus_module_17 from "@fncts/io/Fiber/api/interrupt";
|
|
20
|
+
import * as tsplus_module_18 from "@fncts/io/Ref/Synchronized/api";
|
|
21
|
+
import * as tsplus_module_19 from "@fncts/io/Ref/Synchronized/constructors";
|
|
22
|
+
import * as tsplus_module_20 from "@fncts/io/Semaphore";
|
|
23
|
+
import * as tsplus_module_21 from "@fncts/base/data/Maybe/destructors";
|
|
24
|
+
import * as tsplus_module_22 from "@fncts/io/IO/api/concurrency";
|
|
25
|
+
import * as tsplus_module_23 from "@fncts/base/data/function/api";
|
|
26
|
+
import * as tsplus_module_24 from "@fncts/io/Schedule/api";
|
|
27
|
+
import * as tsplus_module_25 from "@fncts/io/IO/api/schedule";
|
|
28
|
+
import * as tsplus_module_26 from "@fncts/io/IO/api/environment";
|
|
29
|
+
import * as tsplus_module_27 from "@fncts/base/data/Maybe/constructors";
|
|
30
|
+
import * as tsplus_module_28 from "@fncts/base/data/Maybe/definition";
|
|
31
|
+
import * as tsplus_module_29 from "@fncts/base/data/FiberId/constructors";
|
|
32
|
+
import * as tsplus_module_30 from "@fncts/io/Fiber/api/interruptAs";
|
|
33
|
+
import * as tsplus_module_31 from "@fncts/base/data/Cause/api";
|
|
34
|
+
import * as tsplus_module_32 from "@fncts/io/IO/api/foreachConcurrent";
|
|
35
|
+
import * as tsplus_module_33 from "@fncts/io/Fiber/api/interruptFork";
|
|
36
|
+
import * as tsplus_module_34 from "@fncts/base/collection/immutable/Conc/definition";
|
|
37
|
+
import * as tsplus_module_35 from "@fncts/io/IO/api/scoped";
|
|
38
|
+
import * as tsplus_module_36 from "@fncts/io/Ref/api/set";
|
|
39
|
+
import * as tsplus_module_37 from "@fncts/io/Fiber/api/joinAll";
|
|
40
|
+
import * as tsplus_module_38 from "@fncts/io/IO/api/asyncInterrupt";
|
|
41
|
+
export const asyncInterrupt = asyncInterrupt_1;
|
|
36
42
|
export const combineLatest = combineLatest_1;
|
|
37
43
|
export const flatMapConcurrentBounded = flatMapConcurrentBounded_1;
|
|
38
44
|
export const flatMapConcurrentUnbounded = flatMapConcurrentUnbounded_1;
|
|
@@ -57,13 +63,35 @@ export function as(b) {
|
|
|
57
63
|
return map_1(b)(self);
|
|
58
64
|
};
|
|
59
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* @tsplus static fncts.io.PushOps asyncInterrupt
|
|
68
|
+
*/
|
|
69
|
+
function asyncInterrupt_1(make) {
|
|
70
|
+
return tsplus_module_10.makePush(emitter => tsplus_module_4.flatMap(future => tsplus_module_4.flatMap(scope => tsplus_module_4.flatMap(runtime => {
|
|
71
|
+
const unsafeEmitter = {
|
|
72
|
+
emit: value => runtime.unsafeRunOrFork(tsplus_module_5.forkIn(scope, fileName_1 + ":35:76")(emitter.emit(value)), fileName_1 + ":35:49"),
|
|
73
|
+
failCause: cause => runtime.unsafeRunOrFork(tsplus_module_5.forkIn(scope, fileName_1 + ":36:102")(tsplus_module_6.fulfill(future, fileName_1 + ":36:87")(emitter.failCause(cause))), fileName_1 + ":36:54"),
|
|
74
|
+
end: () => runtime.unsafeRunOrFork(tsplus_module_4.zipRight(tsplus_module_1.succeed_(undefined, fileName_1 + ":37:72")(future), fileName_1 + ":37:57")(emitter.end), fileName_1 + ":37:43")
|
|
75
|
+
};
|
|
76
|
+
return tsplus_module_4.flatMap(eitherPush => tsplus_module_4.map(() => void 0, fileName_1 + ":40:8")(tsplus_module_3.match(canceller => tsplus_module_2.onInterrupt(() => canceller, fileName_1 + ":42:50")(tsplus_module_1.wait(future, fileName_1 + ":42:32")), push => push.run(emitter))(eitherPush)), fileName_1 + ":39:27")(tsplus_module_4.succeed(() => make(unsafeEmitter), fileName_1 + ":39:30"));
|
|
77
|
+
}, fileName_1 + ":33:24")(tsplus_module_7.runtime(fileName_1 + ":33:35")), fileName_1 + ":32:24")(tsplus_module_8.scope), fileName_1 + ":31:24")(tsplus_module_9.make(fileName_1 + ":31:36")));
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* @tsplus static fncts.io.PushOps async
|
|
81
|
+
*/
|
|
82
|
+
export function async(make) {
|
|
83
|
+
return asyncInterrupt_1(emitter => {
|
|
84
|
+
make(emitter);
|
|
85
|
+
return tsplus_module_11.left(tsplus_module_4.unit, fileName_1 + ":56:23");
|
|
86
|
+
});
|
|
87
|
+
}
|
|
60
88
|
function combineLatest_1(streams) {
|
|
61
|
-
return
|
|
62
|
-
const size =
|
|
63
|
-
return
|
|
64
|
-
const emitIfReady =
|
|
65
|
-
return
|
|
66
|
-
}, fileName_1 + ":
|
|
89
|
+
return tsplus_module_10.makePush(emitter => (() => {
|
|
90
|
+
const size = tsplus_module_14.size(streams);
|
|
91
|
+
return tsplus_module_4.flatMap(ref => tsplus_module_4.flatMap(latch => {
|
|
92
|
+
const emitIfReady = tsplus_module_4.flatMap(as => as.length === size ? emitter.emit(as) : tsplus_module_4.unit, fileName_1 + ":73:69")(tsplus_module_4.succeed(() => ref.filter(a => a != null), fileName_1 + ":73:31"));
|
|
93
|
+
return tsplus_module_4.flatMap(() => tsplus_module_4.map(() => void 0, fileName_1 + ":89:8")(tsplus_module_4.zipRight(emitter.end, fileName_1 + ":89:22")(latch.await)), fileName_1 + ":76:8")(tsplus_module_4.foreachWithIndex(streams, (i, stream) => tsplus_module_12.forkScoped(stream.run(tsplus_module_10.makeEmitter(value => tsplus_module_4.zipRight(emitIfReady, fileName_1 + ":82:50")(tsplus_module_4.succeed(() => ref[i] = value, fileName_1 + ":82:30")), cause => emitter.failCause(cause), latch.countDown)), fileName_1 + ":86:14"), fileName_1 + ":77:28"));
|
|
94
|
+
}, fileName_1 + ":72:30")(tsplus_module_13.make(size)), fileName_1 + ":71:30")(tsplus_module_4.succeed(() => Array(size), fileName_1 + ":71:33"));
|
|
67
95
|
})());
|
|
68
96
|
}
|
|
69
97
|
/**
|
|
@@ -79,21 +107,21 @@ export function combineLatestWith(that, f) {
|
|
|
79
107
|
*/
|
|
80
108
|
export function debounce(duration) {
|
|
81
109
|
return self => {
|
|
82
|
-
return
|
|
110
|
+
return tsplus_module_10.makePush(emitter => tsplus_module_4.flatMap(ref => tsplus_module_4.flatMap(latch => tsplus_module_4.flatMap(() => tsplus_module_4.map(() => void 0, fileName_1 + ":127:10")(tsplus_module_4.zipRight(emitter.end, fileName_1 + ":127:24")(latch.await)), fileName_1 + ":112:10")(tsplus_module_12.forkScoped(self.run(tsplus_module_10.makeEmitter(value => tsplus_module_18.updateIO(previous => tsplus_module_4.flatMap(() => tsplus_module_12.forkScoped(tsplus_module_16.acquireRelease(() => tsplus_module_15.delay(duration)(emitter.emit(value)), () => latch.countDown, fileName_1 + ":119:47"), fileName_1 + ":119:107"), fileName_1 + ":118:22")(tsplus_module_4.defer(() => previous ? tsplus_module_17.interrupt(previous) : latch.increment, fileName_1 + ":118:31")), fileName_1 + ":116:29")(ref), cause => emitter.failCause(cause), latch.countDown)), fileName_1 + ":125:12")), fileName_1 + ":111:24")(tsplus_module_13.make(1)), fileName_1 + ":110:24")(tsplus_module_19.makeSynchronized(() => null, fileName_1 + ":110:46")));
|
|
83
111
|
};
|
|
84
112
|
}
|
|
85
113
|
/**
|
|
86
114
|
* @tsplus static fncts.io.PushOps defer
|
|
87
115
|
*/
|
|
88
116
|
export function defer(self) {
|
|
89
|
-
return
|
|
117
|
+
return tsplus_module_10.makePush(emitter => tsplus_module_4.flatMap(push => push.run(emitter), fileName_1 + ":137:44")(tsplus_module_4.succeed(self, fileName_1 + ":137:30")));
|
|
90
118
|
}
|
|
91
119
|
/**
|
|
92
120
|
* @tsplus pipeable fncts.io.Push flatMapConcurrentBounded
|
|
93
121
|
*/
|
|
94
122
|
function flatMapConcurrentBounded_1(f, concurrency) {
|
|
95
123
|
return self => {
|
|
96
|
-
return
|
|
124
|
+
return tsplus_module_10.makePush(emitter => tsplus_module_4.flatMap(semaphore => tsplus_module_4.map(() => void 0, fileName_1 + ":148:10")(flatMapConcurrentUnbounded_1(a => transform_1(io => semaphore.withPermit(io))(f(a)))(self).run(emitter)), fileName_1 + ":147:28")(tsplus_module_20.makeSemaphore(concurrency, fileName_1 + ":147:38")));
|
|
97
125
|
};
|
|
98
126
|
}
|
|
99
127
|
/**
|
|
@@ -101,7 +129,7 @@ function flatMapConcurrentBounded_1(f, concurrency) {
|
|
|
101
129
|
*/
|
|
102
130
|
function flatMapConcurrentUnbounded_1(f) {
|
|
103
131
|
return self => {
|
|
104
|
-
return
|
|
132
|
+
return tsplus_module_10.makePush(emitter => tsplus_module_4.flatMap(latch => tsplus_module_4.flatMap(() => tsplus_module_4.map(() => void 0, fileName_1 + ":172:10")(tsplus_module_4.zipRight(emitter.end, fileName_1 + ":172:24")(latch.await)), fileName_1 + ":162:10")(tsplus_module_12.forkScoped(self.run(tsplus_module_10.makeEmitter(value => tsplus_module_4.zipRight(tsplus_module_12.forkScoped(f(value).run(tsplus_module_10.makeEmitter(emitter.emit, emitter.failCause, latch.countDown)), fileName_1 + ":166:106"), fileName_1 + ":166:34")(latch.increment), emitter.failCause, latch.countDown)), fileName_1 + ":170:12")), fileName_1 + ":161:24")(tsplus_module_13.make(1)));
|
|
105
133
|
};
|
|
106
134
|
}
|
|
107
135
|
/**
|
|
@@ -109,7 +137,7 @@ function flatMapConcurrentUnbounded_1(f) {
|
|
|
109
137
|
*/
|
|
110
138
|
export function flatMapConcurrent(f) {
|
|
111
139
|
return self => {
|
|
112
|
-
return unwrap_1(
|
|
140
|
+
return unwrap_1(tsplus_module_4.map(concurrency => tsplus_module_21.match(() => flatMapConcurrentUnbounded_1(f)(self), n => flatMapConcurrentBounded_1(f, n)(self))(concurrency), fileName_1 + ":184:25")(tsplus_module_22.concurrency));
|
|
113
141
|
};
|
|
114
142
|
}
|
|
115
143
|
/**
|
|
@@ -124,34 +152,34 @@ function flatMap_1(f) {
|
|
|
124
152
|
* @tsplus getter fncts.io.Push flatten
|
|
125
153
|
*/
|
|
126
154
|
function flatten_1(self) {
|
|
127
|
-
return flatMap_1(
|
|
155
|
+
return flatMap_1(tsplus_module_23.identity)(self);
|
|
128
156
|
}
|
|
129
157
|
/**
|
|
130
158
|
* @tsplus static fncts.io.PushOps fromIO
|
|
131
159
|
*/
|
|
132
160
|
function fromIO_1(io) {
|
|
133
|
-
return
|
|
161
|
+
return tsplus_module_10.makePush(emitter => tsplus_module_4.zipRight(emitter.end, fileName_1 + ":219:10")(tsplus_module_4.matchCauseIO(cause => emitter.failCause(cause), value => emitter.emit(value), fileName_1 + ":216:32")(tsplus_module_4.defer(io, fileName_1 + ":216:15"))));
|
|
134
162
|
}
|
|
135
163
|
/**
|
|
136
164
|
* @tsplus static fncts.io.PushOps fromAsyncIterable
|
|
137
165
|
*/
|
|
138
166
|
export function fromAsyncIterable(iterable) {
|
|
139
|
-
return
|
|
167
|
+
return tsplus_module_10.makePush(emitter => tsplus_module_4.defer(() => fromAsyncIterableLoop(iterable[Symbol.asyncIterator](), emitter, fileName_1 + ":227:58"), fileName_1 + ":227:36"));
|
|
140
168
|
}
|
|
141
169
|
function fromAsyncIterableLoop(iterator, emitter, __tsplusTrace) {
|
|
142
|
-
return
|
|
170
|
+
return tsplus_module_4.matchCauseIO(cause => tsplus_module_4.zipRight(emitter.end, __tsplusTrace)(emitter.failCause(cause)), result => result.done ? emitter.end : tsplus_module_4.zipRight(fromAsyncIterableLoop(iterator, emitter, __tsplusTrace), __tsplusTrace)(emitter.emit(result.value)), __tsplusTrace)(tsplus_module_4.fromPromiseHalt(iterator.next, __tsplusTrace));
|
|
143
171
|
}
|
|
144
172
|
/**
|
|
145
173
|
* @tsplus static fncts.io.PushOps fromIterable
|
|
146
174
|
*/
|
|
147
175
|
export function fromIterable(iterable) {
|
|
148
|
-
return
|
|
176
|
+
return tsplus_module_10.makePush(emitter => tsplus_module_4.defer(() => fromIterableLoop(iterable[Symbol.iterator](), emitter), fileName_1 + ":245:36"));
|
|
149
177
|
}
|
|
150
178
|
function fromIterableLoop(iterator, emitter) {
|
|
151
|
-
return
|
|
179
|
+
return tsplus_module_4.defer(() => {
|
|
152
180
|
const value = iterator.next();
|
|
153
|
-
return value.done ? emitter.end :
|
|
154
|
-
}, fileName_1 + ":
|
|
181
|
+
return value.done ? emitter.end : tsplus_module_4.zipRight(fromIterableLoop(iterator, emitter), fileName_1 + ":251:66")(emitter.emit(value.value));
|
|
182
|
+
}, fileName_1 + ":249:18");
|
|
155
183
|
}
|
|
156
184
|
/**
|
|
157
185
|
* @tsplus getter fncts.io.Push multicast
|
|
@@ -166,44 +194,44 @@ export class Multicast {
|
|
|
166
194
|
this.observers = [];
|
|
167
195
|
}
|
|
168
196
|
run(emitter) {
|
|
169
|
-
return
|
|
197
|
+
return tsplus_module_4.flatMap(environment => tsplus_module_4.flatMap(future => tsplus_module_4.flatMap(() => tsplus_module_1.wait(future, fileName_1 + ":296:22"), fileName_1 + ":283:8")(tsplus_module_4.defer(() => {
|
|
170
198
|
this.observers.push({
|
|
171
199
|
emitter,
|
|
172
200
|
environment,
|
|
173
201
|
future
|
|
174
202
|
});
|
|
175
203
|
if (this.fiber) {
|
|
176
|
-
return
|
|
204
|
+
return tsplus_module_4.unit;
|
|
177
205
|
} else {
|
|
178
|
-
return
|
|
206
|
+
return tsplus_module_4.tap(fiber => tsplus_module_4.succeed(() => this.fiber = fiber, fileName_1 + ":292:44"), fileName_1 + ":292:30")(tsplus_module_12.forkScoped(tsplus_module_25.schedule(() => tsplus_module_24.asap, fileName_1 + ":291:24")(this.push.run(this)), fileName_1 + ":291:39"));
|
|
179
207
|
}
|
|
180
|
-
}, fileName_1 + ":
|
|
208
|
+
}, fileName_1 + ":284:17")), fileName_1 + ":282:28")(tsplus_module_9.make(fileName_1 + ":282:40")), fileName_1 + ":281:28")(tsplus_module_26.environment(fileName_1 + ":281:43"));
|
|
181
209
|
}
|
|
182
210
|
emit(value) {
|
|
183
|
-
return
|
|
211
|
+
return tsplus_module_4.defer(() => tsplus_module_4.foreachDiscard(this.observers.slice(), observer => this.runEvent(value, observer), fileName_1 + ":301:38"), fileName_1 + ":301:20");
|
|
184
212
|
}
|
|
185
213
|
failCause(cause) {
|
|
186
|
-
return
|
|
214
|
+
return tsplus_module_4.zipRight(tsplus_module_4.defer(() => this.cleanup(), fileName_1 + ":307:15"), fileName_1 + ":306:110")(tsplus_module_4.defer(() => tsplus_module_4.foreachDiscard(this.observers.slice(), observer => this.runFailCause(cause, observer), fileName_1 + ":306:33"), fileName_1 + ":306:15"));
|
|
187
215
|
}
|
|
188
216
|
get end() {
|
|
189
|
-
return
|
|
217
|
+
return tsplus_module_4.zipRight(tsplus_module_4.defer(() => this.cleanup(), fileName_1 + ":314:15"), fileName_1 + ":313:97")(tsplus_module_4.defer(() => tsplus_module_4.foreachDiscard(this.observers.slice(), observer => this.runEnd(observer), fileName_1 + ":313:33"), fileName_1 + ":313:15"));
|
|
190
218
|
}
|
|
191
219
|
runEvent(value, observer) {
|
|
192
|
-
return
|
|
220
|
+
return tsplus_module_26.provideEnvironment(observer.environment, fileName_1 + ":322:26")(tsplus_module_4.tapErrorCause(cause => this.runFailCause(cause, observer), fileName_1 + ":321:21")(observer.emitter.emit(value)));
|
|
193
221
|
}
|
|
194
222
|
runFailCause(cause, observer) {
|
|
195
223
|
this.observers.splice(this.observers.indexOf(observer), 1);
|
|
196
|
-
return
|
|
224
|
+
return tsplus_module_26.provideEnvironment(observer.environment, fileName_1 + ":327:89")(tsplus_module_6.fulfill(observer.future, fileName_1 + ":327:53")(observer.emitter.failCause(cause)));
|
|
197
225
|
}
|
|
198
226
|
runEnd(observer) {
|
|
199
227
|
this.observers.splice(this.observers.indexOf(observer), 1);
|
|
200
|
-
return
|
|
228
|
+
return tsplus_module_26.provideEnvironment(observer.environment, fileName_1 + ":332:76")(tsplus_module_6.fulfill(observer.future, fileName_1 + ":332:40")(observer.emitter.end));
|
|
201
229
|
}
|
|
202
230
|
cleanup() {
|
|
203
231
|
if (this.fiber) {
|
|
204
|
-
return
|
|
232
|
+
return tsplus_module_4.zipRight(tsplus_module_4.succeed(() => this.fiber = undefined, fileName_1 + ":337:39"), fileName_1 + ":337:36")(tsplus_module_17.interrupt(this.fiber));
|
|
205
233
|
}
|
|
206
|
-
return
|
|
234
|
+
return tsplus_module_4.unit;
|
|
207
235
|
}
|
|
208
236
|
}
|
|
209
237
|
_a = PushTypeId;
|
|
@@ -217,60 +245,60 @@ export class Hold extends Multicast {
|
|
|
217
245
|
constructor(push) {
|
|
218
246
|
super(push);
|
|
219
247
|
this.push = push;
|
|
220
|
-
this.value = new AtomicReference(
|
|
248
|
+
this.value = new AtomicReference(tsplus_module_27.nothing(fileName_1 + ":351:47"));
|
|
221
249
|
this.pendingEmitters = [];
|
|
222
250
|
this.scheduledFiber = null;
|
|
223
251
|
}
|
|
224
252
|
run(emitter) {
|
|
225
253
|
if (this.shouldScheduleFlush()) {
|
|
226
|
-
return
|
|
254
|
+
return tsplus_module_4.flatMap(() => super.run(emitter), fileName_1 + ":361:49")(this.scheduleFlush(emitter));
|
|
227
255
|
}
|
|
228
256
|
const value = this.value.get;
|
|
229
|
-
if (
|
|
230
|
-
return
|
|
257
|
+
if (tsplus_module_28.isJust(value) && this.observers.length === 0) {
|
|
258
|
+
return tsplus_module_4.flatMap(() => super.run(emitter), fileName_1 + ":366:47")(emitter.emit(value.value));
|
|
231
259
|
}
|
|
232
260
|
return super.run(emitter);
|
|
233
261
|
}
|
|
234
262
|
emit(value) {
|
|
235
|
-
return
|
|
263
|
+
return tsplus_module_4.defer(() => {
|
|
236
264
|
this.addValue(value);
|
|
237
|
-
return
|
|
238
|
-
}, fileName_1 + ":
|
|
265
|
+
return tsplus_module_4.flatMap(() => super.emit(value), fileName_1 + ":375:41")(this.flushPending());
|
|
266
|
+
}, fileName_1 + ":373:20");
|
|
239
267
|
}
|
|
240
268
|
failCause(cause) {
|
|
241
|
-
return
|
|
269
|
+
return tsplus_module_4.defer(() => tsplus_module_4.flatMap(() => super.failCause(cause), fileName_1 + ":380:48")(this.flushPending()), fileName_1 + ":380:20");
|
|
242
270
|
}
|
|
243
271
|
get end() {
|
|
244
|
-
return
|
|
272
|
+
return tsplus_module_4.defer(() => tsplus_module_4.flatMap(() => super.end, fileName_1 + ":384:48")(this.flushPending()), fileName_1 + ":384:20");
|
|
245
273
|
}
|
|
246
274
|
shouldScheduleFlush() {
|
|
247
|
-
return
|
|
275
|
+
return tsplus_module_28.isJust(this.value.get) && this.observers.length > 0;
|
|
248
276
|
}
|
|
249
277
|
scheduleFlush(observer) {
|
|
250
|
-
this.pendingEmitters.push([observer,
|
|
251
|
-
const interrupt = this.scheduledFiber ?
|
|
278
|
+
this.pendingEmitters.push([observer, tsplus_module_21.match(() => [], a => [a])(this.value.get)]);
|
|
279
|
+
const interrupt = this.scheduledFiber ? tsplus_module_30.interruptAsFork(this.scheduledFiber, tsplus_module_29.none) : tsplus_module_4.unit;
|
|
252
280
|
this.scheduledFiber = null;
|
|
253
|
-
return
|
|
281
|
+
return tsplus_module_4.tap(fiber => tsplus_module_4.succeed(() => this.scheduledFiber = fiber, fileName_1 + ":404:9"), fileName_1 + ":403:87")(tsplus_module_12.forkScoped(tsplus_module_4.zipRight(tsplus_module_4.flatMap(() => this.flushPending(), fileName_1 + ":403:44")(interrupt), fileName_1 + ":403:26")(tsplus_module_4.yieldNow), fileName_1 + ":403:72"));
|
|
254
282
|
}
|
|
255
283
|
flushPending() {
|
|
256
284
|
if (this.pendingEmitters.length === 0) {
|
|
257
|
-
return
|
|
285
|
+
return tsplus_module_4.unit;
|
|
258
286
|
}
|
|
259
287
|
const emitters = this.pendingEmitters;
|
|
260
288
|
this.pendingEmitters = [];
|
|
261
|
-
return
|
|
262
|
-
return
|
|
289
|
+
return tsplus_module_4.foreachDiscard(emitters, pendingEmitter => {
|
|
290
|
+
return tsplus_module_4.defer(() => {
|
|
263
291
|
const [emitter, values] = pendingEmitter;
|
|
264
292
|
const observer = this.observers.find(observer => observer.emitter === emitter);
|
|
265
293
|
if (!observer) {
|
|
266
|
-
return
|
|
294
|
+
return tsplus_module_4.unit;
|
|
267
295
|
}
|
|
268
|
-
return
|
|
269
|
-
}, fileName_1 + ":
|
|
270
|
-
}, fileName_1 + ":
|
|
296
|
+
return tsplus_module_4.foreachDiscard(values, value => this.runEvent(value, observer), fileName_1 + ":423:33");
|
|
297
|
+
}, fileName_1 + ":417:22");
|
|
298
|
+
}, fileName_1 + ":416:29");
|
|
271
299
|
}
|
|
272
300
|
addValue(value) {
|
|
273
|
-
this.value.set(
|
|
301
|
+
this.value.set(tsplus_module_27.just(value, fileName_1 + ":429:24"));
|
|
274
302
|
this.pendingEmitters.forEach(([, values]) => {
|
|
275
303
|
values.push(value);
|
|
276
304
|
});
|
|
@@ -281,7 +309,7 @@ export class Hold extends Multicast {
|
|
|
281
309
|
*/
|
|
282
310
|
function map_1(f) {
|
|
283
311
|
return self => {
|
|
284
|
-
return mapIO_1(a =>
|
|
312
|
+
return mapIO_1(a => tsplus_module_4.succeedNow(f(a), fileName_1 + ":441:43"))(self);
|
|
285
313
|
};
|
|
286
314
|
}
|
|
287
315
|
/**
|
|
@@ -289,7 +317,7 @@ function map_1(f) {
|
|
|
289
317
|
*/
|
|
290
318
|
export function mapError(f) {
|
|
291
319
|
return self => {
|
|
292
|
-
return
|
|
320
|
+
return tsplus_module_10.makePush(emitter => self.run(tsplus_module_10.makeEmitter(value => emitter.emit(value), cause => emitter.failCause(tsplus_module_31.map(f)(cause)), emitter.end)));
|
|
293
321
|
};
|
|
294
322
|
}
|
|
295
323
|
/**
|
|
@@ -297,14 +325,14 @@ export function mapError(f) {
|
|
|
297
325
|
*/
|
|
298
326
|
export function mapErrorCause(f) {
|
|
299
327
|
return self => {
|
|
300
|
-
return
|
|
328
|
+
return tsplus_module_10.makePush(emitter => self.run(tsplus_module_10.makeEmitter(value => emitter.emit(value), cause => emitter.failCause(f(cause)), emitter.end)));
|
|
301
329
|
};
|
|
302
330
|
}
|
|
303
331
|
/**
|
|
304
332
|
* @tsplus pipeable fncts.io.Push mapIO
|
|
305
333
|
*/
|
|
306
334
|
function mapIO_1(f) {
|
|
307
|
-
return self =>
|
|
335
|
+
return self => tsplus_module_10.makePush(emitter => self.run(tsplus_module_10.makeEmitter(value => tsplus_module_4.matchCauseIO(cause => emitter.failCause(cause), b => emitter.emit(b), fileName_1 + ":488:34")(f(value)), cause => emitter.failCause(cause), emitter.end)));
|
|
308
336
|
}
|
|
309
337
|
/**
|
|
310
338
|
* @tsplus pipeable fncts.io.Push merge
|
|
@@ -315,82 +343,90 @@ export function merge(that) {
|
|
|
315
343
|
};
|
|
316
344
|
}
|
|
317
345
|
function mergeAll_1(streams) {
|
|
318
|
-
return
|
|
346
|
+
return tsplus_module_10.makePush(emitter => tsplus_module_4.flatMap(latch => tsplus_module_4.flatMap(() => tsplus_module_4.map(() => void 0, fileName_1 + ":531:8")(tsplus_module_4.zipRight(emitter.end, fileName_1 + ":531:22")(latch.await)), fileName_1 + ":519:8")(tsplus_module_32.foreachConcurrent(streams, stream => tsplus_module_12.forkScoped(stream.run(tsplus_module_10.makeEmitter(value => emitter.emit(value), cause => emitter.failCause(cause), latch.countDown)), fileName_1 + ":528:14"), fileName_1 + ":520:37")), fileName_1 + ":518:22")(tsplus_module_13.make(tsplus_module_14.size(streams))));
|
|
347
|
+
}
|
|
348
|
+
/**
|
|
349
|
+
* @tsplus pipeable fncts.io.Push observe
|
|
350
|
+
*/
|
|
351
|
+
export function observe(f, __tsplusTrace) {
|
|
352
|
+
return self => {
|
|
353
|
+
return tsplus_module_4.flatMap(future => tsplus_module_4.flatMap(fiber => tsplus_module_4.flatMap(() => tsplus_module_4.map(() => void 0, __tsplusTrace)(tsplus_module_33.interruptFork(fiber, __tsplusTrace)), __tsplusTrace)(tsplus_module_1.wait(future, __tsplusTrace)), __tsplusTrace)(tsplus_module_12.forkScoped(self.run(tsplus_module_10.makeEmitter(a => tsplus_module_4.catchAllCause(cause => tsplus_module_1.failCause(cause, __tsplusTrace)(future), __tsplusTrace)(f(a)), cause => tsplus_module_1.failCause(cause, __tsplusTrace)(future), tsplus_module_1.succeed_(undefined, __tsplusTrace)(future))), __tsplusTrace)), __tsplusTrace)(tsplus_module_9.make(__tsplusTrace));
|
|
354
|
+
};
|
|
319
355
|
}
|
|
320
356
|
/**
|
|
321
357
|
* @tsplus static fncts.io.PushOps repeatIOMaybe
|
|
322
358
|
*/
|
|
323
359
|
export function repeatIOMaybe(io, __tsplusTrace) {
|
|
324
|
-
return unfoldIO_1(undefined, () =>
|
|
360
|
+
return unfoldIO_1(undefined, () => tsplus_module_4.catchAll(maybeError => tsplus_module_21.match(() => tsplus_module_4.succeedNow(tsplus_module_27.nothing(__tsplusTrace), __tsplusTrace), tsplus_module_4.failNow)(maybeError), __tsplusTrace)(tsplus_module_4.map(a => tsplus_module_27.just([a, undefined], __tsplusTrace), __tsplusTrace)(io)));
|
|
325
361
|
}
|
|
326
362
|
/**
|
|
327
363
|
* @tsplus getter fncts.io.Push runCollect
|
|
328
364
|
*/
|
|
329
365
|
export function runCollect(self) {
|
|
330
|
-
return
|
|
366
|
+
return tsplus_module_4.defer(() => {
|
|
331
367
|
const out = [];
|
|
332
|
-
return
|
|
333
|
-
}, fileName_1 + ":
|
|
368
|
+
return tsplus_module_4.flatMap(future => tsplus_module_4.zipRight(tsplus_module_4.succeed(() => tsplus_module_34.fromArray(out), fileName_1 + ":586:11"), fileName_1 + ":585:23")(tsplus_module_4.zipRight(tsplus_module_1.wait(future, fileName_1 + ":585:15"), fileName_1 + ":584:12")(self.run(tsplus_module_10.makeEmitter(value => tsplus_module_4.succeed(() => out.push(value), fileName_1 + ":580:26"), cause => tsplus_module_1.failCause(cause, fileName_1 + ":581:40")(future), tsplus_module_1.succeed_(undefined, fileName_1 + ":582:27")(future))))), fileName_1 + ":576:42")(tsplus_module_9.make(fileName_1 + ":576:23"));
|
|
369
|
+
}, fileName_1 + ":574:18");
|
|
334
370
|
}
|
|
335
371
|
/**
|
|
336
372
|
* @tsplus getter fncts.io.Push runDrain
|
|
337
373
|
*/
|
|
338
374
|
export function runDrain(self) {
|
|
339
|
-
return
|
|
375
|
+
return tsplus_module_4.flatMap(future => tsplus_module_4.zipRight(tsplus_module_1.wait(future, fileName_1 + ":603:17"), fileName_1 + ":603:10")(self.run(tsplus_module_10.makeEmitter(() => tsplus_module_4.unit, cause => tsplus_module_1.failCause(cause, fileName_1 + ":600:38")(future), tsplus_module_1.succeed_(undefined, fileName_1 + ":601:25")(future)))), fileName_1 + ":595:40")(tsplus_module_9.make(fileName_1 + ":595:21"));
|
|
340
376
|
}
|
|
341
377
|
/**
|
|
342
378
|
* @tsplus static fncts.io.PushOps scoped
|
|
343
379
|
*/
|
|
344
380
|
function scoped_1(io, __tsplusTrace) {
|
|
345
|
-
return
|
|
381
|
+
return tsplus_module_10.makePush(emitter => tsplus_module_4.zipRight(emitter.end, __tsplusTrace)(tsplus_module_4.matchCauseIO(cause => emitter.failCause(cause), value => emitter.emit(value), __tsplusTrace)(tsplus_module_35.scoped(tsplus_module_4.defer(io, __tsplusTrace), __tsplusTrace))));
|
|
346
382
|
}
|
|
347
383
|
/**
|
|
348
384
|
* @tsplus static fncts.io.PushOps succeed
|
|
349
385
|
*/
|
|
350
386
|
export function succeed(value) {
|
|
351
|
-
return fromIO_1(() =>
|
|
387
|
+
return fromIO_1(() => tsplus_module_4.succeed(value, fileName_1 + ":624:32"));
|
|
352
388
|
}
|
|
353
389
|
/**
|
|
354
390
|
* @tsplus pipeable fncts.io.PushOps switchMap
|
|
355
391
|
*/
|
|
356
392
|
export function switchMap(f) {
|
|
357
393
|
return self => {
|
|
358
|
-
return
|
|
359
|
-
const innerEmitter =
|
|
360
|
-
return
|
|
361
|
-
}, fileName_1 + ":
|
|
394
|
+
return tsplus_module_10.makePush(emitter => tsplus_module_4.flatMap(current => tsplus_module_4.flatMap(latch => {
|
|
395
|
+
const innerEmitter = tsplus_module_10.makeEmitter(value => emitter.emit(value), cause => tsplus_module_4.zipRight(emitter.failCause(cause), fileName_1 + ":638:41")(tsplus_module_36.set(null, fileName_1 + ":638:33")(current)), latch.countDown);
|
|
396
|
+
return tsplus_module_4.flatMap(() => tsplus_module_4.map(() => void 0, fileName_1 + ":653:10")(tsplus_module_4.zipRight(emitter.end, fileName_1 + ":653:24")(latch.await)), fileName_1 + ":641:10")(self.run(tsplus_module_10.makeEmitter(value => tsplus_module_18.updateIO(fiber => tsplus_module_4.zipRight(tsplus_module_12.forkScoped(f(value).run(innerEmitter), fileName_1 + ":646:98"), fileName_1 + ":646:71")(fiber ? tsplus_module_17.interrupt(fiber) : latch.increment), fileName_1 + ":645:33")(current), cause => emitter.failCause(cause), latch.countDown)));
|
|
397
|
+
}, fileName_1 + ":635:31")(tsplus_module_13.make(1)), fileName_1 + ":634:31")(tsplus_module_19.makeSynchronized(() => null, fileName_1 + ":634:53")));
|
|
362
398
|
};
|
|
363
399
|
}
|
|
364
400
|
/**
|
|
365
401
|
* @tsplus pipeable fncts.io.Push transform
|
|
366
402
|
*/
|
|
367
403
|
function transform_1(f) {
|
|
368
|
-
return self =>
|
|
404
|
+
return self => tsplus_module_10.makePush(emitter => f(self.run(emitter)));
|
|
369
405
|
}
|
|
370
406
|
function unfoldLoop(s, f, emitter) {
|
|
371
|
-
return
|
|
407
|
+
return tsplus_module_21.match(() => emitter.end, ([a, s]) => tsplus_module_4.zipRight(unfoldLoop(s, f, emitter), fileName_1 + ":673:34")(emitter.emit(a)))(f(s));
|
|
372
408
|
}
|
|
373
409
|
/**
|
|
374
410
|
* @tsplus static fncts.io.PushOps unfold
|
|
375
411
|
*/
|
|
376
412
|
export function unfold(s, f) {
|
|
377
|
-
return
|
|
413
|
+
return tsplus_module_10.makePush(emitter => unfoldLoop(s, f, emitter));
|
|
378
414
|
}
|
|
379
415
|
function unfoldIOLoop(s, f, emitter) {
|
|
380
|
-
return
|
|
416
|
+
return tsplus_module_4.catchAllCause(cause => emitter.failCause(cause), fileName_1 + ":696:19")(tsplus_module_4.flatMap(result => tsplus_module_21.match(() => emitter.end, ([a, s]) => tsplus_module_4.zipRight(unfoldIOLoop(s, f, emitter), fileName_1 + ":693:38")(emitter.emit(a)))(result), fileName_1 + ":690:13")(f(s)));
|
|
381
417
|
}
|
|
382
418
|
/**
|
|
383
419
|
* @tsplus static fncts.io.PushOps unfoldIO
|
|
384
420
|
*/
|
|
385
421
|
function unfoldIO_1(s, f) {
|
|
386
|
-
return
|
|
422
|
+
return tsplus_module_10.makePush(emitter => unfoldIOLoop(s, f, emitter));
|
|
387
423
|
}
|
|
388
424
|
/**
|
|
389
425
|
* @tsplus pipeable fncts.io.Push untilFuture
|
|
390
426
|
*/
|
|
391
427
|
export function untilFuture(future) {
|
|
392
428
|
return self => {
|
|
393
|
-
return
|
|
429
|
+
return tsplus_module_10.makePush(emitter => tsplus_module_4.flatMap(futureFiber => tsplus_module_4.flatMap(streamFiber => tsplus_module_4.map(() => void 0, fileName_1 + ":722:10")(tsplus_module_4.via(tsplus_module_37.joinAll([futureFiber, streamFiber], fileName_1 + ":722:24"), onEarlyExit(emitter.end))), fileName_1 + ":721:30")(tsplus_module_12.forkScoped(self.run(emitter), fileName_1 + ":721:48")), fileName_1 + ":713:30")(tsplus_module_12.forkScoped(tsplus_module_4.zipRight(earlyExit, fileName_1 + ":719:22")(tsplus_module_4.matchCauseIO(cause => emitter.failCause(cause), () => tsplus_module_4.unit, fileName_1 + ":715:26")(tsplus_module_1.wait(future, fileName_1 + ":714:17"))), fileName_1 + ":719:33")));
|
|
394
430
|
};
|
|
395
431
|
}
|
|
396
432
|
/**
|
|
@@ -398,7 +434,7 @@ export function untilFuture(future) {
|
|
|
398
434
|
*/
|
|
399
435
|
export function untilPush(signal) {
|
|
400
436
|
return self => {
|
|
401
|
-
return
|
|
437
|
+
return tsplus_module_10.makePush(emitter => tsplus_module_4.flatMap(signalFiber => tsplus_module_4.flatMap(streamFiber => tsplus_module_4.map(() => void 0, fileName_1 + ":745:10")(tsplus_module_4.via(tsplus_module_37.joinAll([signalFiber, streamFiber], fileName_1 + ":745:24"), onEarlyExit(emitter.end))), fileName_1 + ":744:30")(tsplus_module_12.forkScoped(self.run(emitter), fileName_1 + ":744:48")), fileName_1 + ":735:30")(tsplus_module_12.forkScoped(signal.run(tsplus_module_10.makeEmitter(() => earlyExit, cause => emitter.failCause(cause), earlyExit)), fileName_1 + ":742:12")));
|
|
402
438
|
};
|
|
403
439
|
}
|
|
404
440
|
/**
|
|
@@ -416,5 +452,5 @@ export function unwrapScoped(self, __tsplusTrace) {
|
|
|
416
452
|
/**
|
|
417
453
|
* @tsplus static fncts.io.PushOps never
|
|
418
454
|
*/
|
|
419
|
-
export const never = /*#__PURE__*/fromIO_1(() =>
|
|
455
|
+
export const never = /*#__PURE__*/fromIO_1(() => tsplus_module_38.never);
|
|
420
456
|
//# sourceMappingURL=api.mjs.map
|