@fncts/io 0.0.8 → 0.0.11
Sign up to get free protection for your applications and to get access to all the features.
- package/Channel/api.d.ts +27 -4
- package/Channel/internal/MergeDecision.d.ts +14 -0
- package/IO/api/onTermination.d.ts +9 -0
- package/IO.d.ts +1 -0
- package/STM/api.d.ts +7 -0
- package/Sink/api.d.ts +637 -8
- package/TReentrantLock/api.d.ts +97 -0
- package/TReentrantLock/definition.d.ts +65 -0
- package/TReentrantLock.d.ts +2 -0
- package/_cjs/Cached/api.cjs +5 -5
- package/_cjs/Cached/api.cjs.map +1 -1
- package/_cjs/Channel/api/mapOutIOC.cjs +9 -9
- package/_cjs/Channel/api/mapOutIOC.cjs.map +1 -1
- package/_cjs/Channel/api/mergeAllWith.cjs +18 -18
- package/_cjs/Channel/api/mergeAllWith.cjs.map +1 -1
- package/_cjs/Channel/api/mergeWith.cjs +5 -5
- package/_cjs/Channel/api/mergeWith.cjs.map +1 -1
- package/_cjs/Channel/api/run.cjs +3 -3
- package/_cjs/Channel/api/runCollect.cjs +3 -3
- package/_cjs/Channel/api/runDrain.cjs +3 -3
- package/_cjs/Channel/api.cjs +90 -35
- package/_cjs/Channel/api.cjs.map +1 -1
- package/_cjs/Channel/internal/ChannelExecutor.cjs +16 -16
- package/_cjs/Channel/internal/ChannelExecutor.cjs.map +1 -1
- package/_cjs/Channel/internal/MergeDecision.cjs +11 -2
- package/_cjs/Channel/internal/MergeDecision.cjs.map +1 -1
- package/_cjs/Channel/internal/SingleProducerAsyncInput.cjs +20 -20
- package/_cjs/Channel/internal/SingleProducerAsyncInput.cjs.map +1 -1
- package/_cjs/Fiber/api/awaitAll.cjs +1 -1
- package/_cjs/Fiber/api/awaitAll.cjs.map +1 -1
- package/_cjs/Fiber/api/fromIO.cjs +1 -1
- package/_cjs/Fiber/api/fromIO.cjs.map +1 -1
- package/_cjs/Fiber/api/interruptFork.cjs +3 -3
- package/_cjs/Fiber/api/interruptFork.cjs.map +1 -1
- package/_cjs/Fiber/api/zipWith.cjs +1 -1
- package/_cjs/Fiber/api/zipWith.cjs.map +1 -1
- package/_cjs/FiberRef/api/locallyScoped.cjs +3 -3
- package/_cjs/FiberRef/api/locallyScoped.cjs.map +1 -1
- package/_cjs/FiberRef/constructors.cjs +1 -1
- package/_cjs/FiberRef/constructors.cjs.map +1 -1
- package/_cjs/Future/api.cjs +1 -1
- package/_cjs/Future/api.cjs.map +1 -1
- package/_cjs/Hub/internal.cjs +1 -1
- package/_cjs/Hub/internal.cjs.map +1 -1
- package/_cjs/IO/api/asyncIO.cjs +4 -4
- 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/environment.cjs +5 -5
- package/_cjs/IO/api/environment.cjs.map +1 -1
- package/_cjs/IO/api/foreachC.cjs +3 -3
- package/_cjs/IO/api/foreachC.cjs.map +1 -1
- package/_cjs/IO/api/foreachExec.cjs +3 -3
- package/_cjs/IO/api/foreachExec.cjs.map +1 -1
- package/_cjs/IO/api/forkAll.cjs +1 -1
- package/_cjs/IO/api/forkAll.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 +4 -4
- package/_cjs/IO/api/interrupt.cjs.map +1 -1
- package/_cjs/IO/api/memoize.cjs +4 -4
- package/_cjs/IO/api/memoize.cjs.map +1 -1
- package/_cjs/IO/api/onTermination.cjs +28 -0
- package/_cjs/IO/api/onTermination.cjs.map +1 -0
- package/_cjs/IO/api/raceFirst.cjs +1 -1
- package/_cjs/IO/api/raceFirst.cjs.map +1 -1
- package/_cjs/IO/api/repeat.cjs +2 -2
- package/_cjs/IO/api/repeat.cjs.map +1 -1
- package/_cjs/IO/api/retry.cjs +2 -2
- package/_cjs/IO/api/retry.cjs.map +1 -1
- package/_cjs/IO/api/schedule.cjs +2 -2
- package/_cjs/IO/api/schedule.cjs.map +1 -1
- package/_cjs/IO/api/timeout.cjs +3 -3
- package/_cjs/IO/api/timeout.cjs.map +1 -1
- package/_cjs/IO/api/zipC.cjs +5 -5
- package/_cjs/IO/api/zipC.cjs.map +1 -1
- package/_cjs/IO/api.cjs +4 -4
- package/_cjs/IO/api.cjs.map +1 -1
- package/_cjs/IO.cjs +13 -0
- package/_cjs/IO.cjs.map +1 -1
- package/_cjs/Layer/MemoMap.cjs +24 -24
- package/_cjs/Layer/MemoMap.cjs.map +1 -1
- package/_cjs/Layer/api.cjs +4 -4
- package/_cjs/Layer/api.cjs.map +1 -1
- package/_cjs/Ref/DerivedAll.cjs +1 -1
- package/_cjs/Ref/DerivedAll.cjs.map +1 -1
- package/_cjs/Ref/Synchronized/api.cjs +3 -3
- package/_cjs/Ref/Synchronized/api.cjs.map +1 -1
- package/_cjs/Ref/Synchronized/constructors.cjs +3 -3
- package/_cjs/Ref/Synchronized/constructors.cjs.map +1 -1
- package/_cjs/Ref/Synchronized/definition.cjs +3 -3
- package/_cjs/Ref/Synchronized/definition.cjs.map +1 -1
- package/_cjs/Ref/api/modify.cjs +10 -10
- package/_cjs/Ref/api/modify.cjs.map +1 -1
- package/_cjs/STM/api.cjs +15 -6
- package/_cjs/STM/api.cjs.map +1 -1
- package/_cjs/Scope/ReleaseMap/api/releaseAll.cjs +1 -1
- package/_cjs/Scope/ReleaseMap/api/releaseAll.cjs.map +1 -1
- package/_cjs/Scope/ReleaseMap/api.cjs +13 -13
- package/_cjs/Scope/ReleaseMap/api.cjs.map +1 -1
- package/_cjs/ScopedRef/api.cjs +1 -1
- package/_cjs/ScopedRef/api.cjs.map +1 -1
- package/_cjs/Sink/api.cjs +1475 -42
- package/_cjs/Sink/api.cjs.map +1 -1
- package/_cjs/Stream/api.cjs +42 -42
- package/_cjs/Stream/api.cjs.map +1 -1
- package/_cjs/TReentrantLock/api.cjs +297 -0
- package/_cjs/TReentrantLock/api.cjs.map +1 -0
- package/_cjs/TReentrantLock/definition.cjs +125 -0
- package/_cjs/TReentrantLock/definition.cjs.map +1 -0
- package/_cjs/TReentrantLock.cjs +32 -0
- package/_cjs/TReentrantLock.cjs.map +1 -0
- package/_cjs/TRef/api.cjs +7 -7
- package/_cjs/TRef/api.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/dropUntilIO.cjs +38 -0
- package/_cjs/collection/immutable/Conc/dropUntilIO.cjs.map +1 -0
- package/_cjs/collection/immutable/Conc/dropWhileIO.cjs +38 -0
- package/_cjs/collection/immutable/Conc/dropWhileIO.cjs.map +1 -0
- package/_cjs/collection/immutable/Conc/filterIO.cjs +35 -0
- package/_cjs/collection/immutable/Conc/filterIO.cjs.map +1 -0
- package/_cjs/collection/immutable/Conc.cjs +13 -0
- package/_cjs/collection/immutable/Conc.cjs.map +1 -1
- package/_cjs/data/Exit/foreachIO.cjs +1 -1
- package/_cjs/data/Exit/foreachIO.cjs.map +1 -1
- package/_mjs/Cached/api.mjs +5 -5
- package/_mjs/Cached/api.mjs.map +1 -1
- package/_mjs/Channel/api/mapOutIOC.mjs +9 -9
- package/_mjs/Channel/api/mapOutIOC.mjs.map +1 -1
- package/_mjs/Channel/api/mergeAllWith.mjs +18 -18
- package/_mjs/Channel/api/mergeAllWith.mjs.map +1 -1
- package/_mjs/Channel/api/mergeWith.mjs +5 -5
- package/_mjs/Channel/api/mergeWith.mjs.map +1 -1
- package/_mjs/Channel/api/run.mjs +3 -3
- package/_mjs/Channel/api/runCollect.mjs +3 -3
- package/_mjs/Channel/api/runDrain.mjs +3 -3
- package/_mjs/Channel/api.mjs +78 -33
- package/_mjs/Channel/api.mjs.map +1 -1
- package/_mjs/Channel/internal/ChannelExecutor.mjs +16 -16
- package/_mjs/Channel/internal/ChannelExecutor.mjs.map +1 -1
- package/_mjs/Channel/internal/MergeDecision.mjs +7 -0
- package/_mjs/Channel/internal/MergeDecision.mjs.map +1 -1
- package/_mjs/Channel/internal/SingleProducerAsyncInput.mjs +20 -20
- package/_mjs/Channel/internal/SingleProducerAsyncInput.mjs.map +1 -1
- package/_mjs/Fiber/api/awaitAll.mjs +1 -1
- package/_mjs/Fiber/api/awaitAll.mjs.map +1 -1
- package/_mjs/Fiber/api/fromIO.mjs +1 -1
- package/_mjs/Fiber/api/fromIO.mjs.map +1 -1
- package/_mjs/Fiber/api/interruptFork.mjs +3 -3
- package/_mjs/Fiber/api/interruptFork.mjs.map +1 -1
- package/_mjs/Fiber/api/zipWith.mjs +1 -1
- package/_mjs/Fiber/api/zipWith.mjs.map +1 -1
- package/_mjs/FiberRef/api/locallyScoped.mjs +3 -3
- package/_mjs/FiberRef/api/locallyScoped.mjs.map +1 -1
- package/_mjs/FiberRef/constructors.mjs +1 -1
- package/_mjs/FiberRef/constructors.mjs.map +1 -1
- package/_mjs/Future/api.mjs +1 -1
- package/_mjs/Future/api.mjs.map +1 -1
- package/_mjs/Hub/internal.mjs +1 -1
- package/_mjs/Hub/internal.mjs.map +1 -1
- package/_mjs/IO/api/asyncIO.mjs +4 -4
- 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/environment.mjs +5 -5
- package/_mjs/IO/api/environment.mjs.map +1 -1
- package/_mjs/IO/api/foreachC.mjs +3 -3
- package/_mjs/IO/api/foreachC.mjs.map +1 -1
- package/_mjs/IO/api/foreachExec.mjs +3 -3
- package/_mjs/IO/api/foreachExec.mjs.map +1 -1
- package/_mjs/IO/api/forkAll.mjs +1 -1
- package/_mjs/IO/api/forkAll.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 +4 -4
- package/_mjs/IO/api/interrupt.mjs.map +1 -1
- package/_mjs/IO/api/memoize.mjs +4 -4
- package/_mjs/IO/api/memoize.mjs.map +1 -1
- package/_mjs/IO/api/onTermination.mjs +13 -0
- package/_mjs/IO/api/onTermination.mjs.map +1 -0
- package/_mjs/IO/api/raceFirst.mjs +1 -1
- package/_mjs/IO/api/raceFirst.mjs.map +1 -1
- package/_mjs/IO/api/repeat.mjs +2 -2
- package/_mjs/IO/api/repeat.mjs.map +1 -1
- package/_mjs/IO/api/retry.mjs +2 -2
- package/_mjs/IO/api/retry.mjs.map +1 -1
- package/_mjs/IO/api/schedule.mjs +2 -2
- package/_mjs/IO/api/schedule.mjs.map +1 -1
- package/_mjs/IO/api/timeout.mjs +3 -3
- package/_mjs/IO/api/timeout.mjs.map +1 -1
- package/_mjs/IO/api/zipC.mjs +5 -5
- package/_mjs/IO/api/zipC.mjs.map +1 -1
- package/_mjs/IO/api.mjs +4 -4
- package/_mjs/IO/api.mjs.map +1 -1
- package/_mjs/IO.mjs +1 -0
- package/_mjs/IO.mjs.map +1 -1
- package/_mjs/Layer/MemoMap.mjs +24 -24
- package/_mjs/Layer/MemoMap.mjs.map +1 -1
- package/_mjs/Layer/api.mjs +4 -4
- package/_mjs/Layer/api.mjs.map +1 -1
- package/_mjs/Ref/DerivedAll.mjs +1 -1
- package/_mjs/Ref/DerivedAll.mjs.map +1 -1
- package/_mjs/Ref/Synchronized/api.mjs +3 -3
- package/_mjs/Ref/Synchronized/api.mjs.map +1 -1
- package/_mjs/Ref/Synchronized/constructors.mjs +3 -3
- package/_mjs/Ref/Synchronized/constructors.mjs.map +1 -1
- package/_mjs/Ref/Synchronized/definition.mjs +3 -3
- package/_mjs/Ref/Synchronized/definition.mjs.map +1 -1
- package/_mjs/Ref/api/modify.mjs +10 -10
- package/_mjs/Ref/api/modify.mjs.map +1 -1
- package/_mjs/STM/api.mjs +13 -6
- package/_mjs/STM/api.mjs.map +1 -1
- package/_mjs/Scope/ReleaseMap/api/releaseAll.mjs +1 -1
- package/_mjs/Scope/ReleaseMap/api/releaseAll.mjs.map +1 -1
- package/_mjs/Scope/ReleaseMap/api.mjs +13 -13
- package/_mjs/Scope/ReleaseMap/api.mjs.map +1 -1
- package/_mjs/ScopedRef/api.mjs +1 -1
- package/_mjs/ScopedRef/api.mjs.map +1 -1
- package/_mjs/Sink/api.mjs +1287 -37
- package/_mjs/Sink/api.mjs.map +1 -1
- package/_mjs/Stream/api.mjs +42 -42
- package/_mjs/Stream/api.mjs.map +1 -1
- package/_mjs/TReentrantLock/api.mjs +243 -0
- package/_mjs/TReentrantLock/api.mjs.map +1 -0
- package/_mjs/TReentrantLock/definition.mjs +102 -0
- package/_mjs/TReentrantLock/definition.mjs.map +1 -0
- package/_mjs/TReentrantLock.mjs +4 -0
- package/_mjs/TReentrantLock.mjs.map +1 -0
- package/_mjs/TRef/api.mjs +7 -7
- package/_mjs/TRef/api.mjs.map +1 -1
- package/_mjs/collection/immutable/Conc/dropUntilIO.mjs +26 -0
- package/_mjs/collection/immutable/Conc/dropUntilIO.mjs.map +1 -0
- package/_mjs/collection/immutable/Conc/dropWhileIO.mjs +26 -0
- package/_mjs/collection/immutable/Conc/dropWhileIO.mjs.map +1 -0
- package/_mjs/collection/immutable/Conc/filterIO.mjs +22 -0
- package/_mjs/collection/immutable/Conc/filterIO.mjs.map +1 -0
- package/_mjs/collection/immutable/Conc.mjs +1 -0
- package/_mjs/collection/immutable/Conc.mjs.map +1 -1
- package/_mjs/data/Exit/foreachIO.mjs +1 -1
- package/_mjs/data/Exit/foreachIO.mjs.map +1 -1
- package/_src/Channel/api.ts +98 -11
- package/_src/Channel/internal/MergeDecision.ts +15 -0
- package/_src/IO/api/onTermination.ts +17 -0
- package/_src/IO/api.ts +1 -1
- package/_src/IO.ts +1 -0
- package/_src/STM/api.ts +9 -0
- package/_src/Sink/api.ts +1725 -36
- package/_src/TFuture/definition.ts +1 -1
- package/_src/TReentrantLock/api.ts +193 -0
- package/_src/TReentrantLock/definition.ts +86 -0
- package/_src/TReentrantLock.ts +4 -0
- package/_src/collection/immutable/Conc/dropUntilIO.ts +24 -0
- package/_src/collection/immutable/Conc/dropWhileIO.ts +26 -0
- package/_src/collection/immutable/Conc/filterIO.ts +16 -0
- package/_src/collection/immutable/Conc.ts +1 -0
- package/collection/immutable/Conc/dropUntilIO.d.ts +7 -0
- package/collection/immutable/Conc/dropWhileIO.d.ts +7 -0
- package/collection/immutable/Conc/filterIO.d.ts +7 -0
- package/collection/immutable/Conc.d.ts +1 -0
- package/package.json +3 -3
@@ -0,0 +1,102 @@
|
|
1
|
+
import * as tsplus_module_1 from "@fncts/base/typeclass/Equatable/api";
|
2
|
+
import * as tsplus_module_2 from "@fncts/base/collection/immutable/HashMap/api";
|
3
|
+
import * as tsplus_module_3 from "@fncts/base/collection/Iterable/api";
|
4
|
+
import * as tsplus_module_4 from "@fncts/base/data/Maybe/api";
|
5
|
+
import * as tsplus_module_5 from "@fncts/base/data/FiberId/api";
|
6
|
+
/**
|
7
|
+
* A `TReentrantLock` is a reentrant read/write lock. Multiple readers may all
|
8
|
+
* concurrently acquire read locks. Only one writer is allowed to acquire a
|
9
|
+
* write lock at any given time. Read locks may be upgraded into write locks. A
|
10
|
+
* fiber that has a write lock may acquire other write locks or read locks.
|
11
|
+
*
|
12
|
+
* The two primary methods of this structure are `readLock`, which acquires a
|
13
|
+
* read lock in a scoped context, and `writeLock`, which acquires a write lock
|
14
|
+
* in a scoped context.
|
15
|
+
*
|
16
|
+
* Although located in the STM package, there is no need for locks within STM
|
17
|
+
* transactions. However, this lock can be quite useful in effectful code, to
|
18
|
+
* provide consistent read/write access to mutable state; and being in STM
|
19
|
+
* allows this structure to be composed into more complicated concurrent
|
20
|
+
* structures that are consumed from effectful code.
|
21
|
+
*
|
22
|
+
* @tsplus type fncts.io.TReentrantLock
|
23
|
+
* @tsplus companion fncts.io.TReentrantLockOps
|
24
|
+
*/
|
25
|
+
|
26
|
+
export class TReentrantLock {
|
27
|
+
constructor(data) {
|
28
|
+
this.data = data;
|
29
|
+
}
|
30
|
+
|
31
|
+
}
|
32
|
+
/**
|
33
|
+
* @tsplus type fncts.io.TReentrantLock.WriteLock
|
34
|
+
* @tsplus companion fncts.io.TReentrantLock.WriteLockOps
|
35
|
+
*/
|
36
|
+
|
37
|
+
export class WriteLock {
|
38
|
+
constructor(writeLocks, readLocks, fiberId) {
|
39
|
+
this.writeLocks = writeLocks;
|
40
|
+
this.readLocks = readLocks;
|
41
|
+
this.fiberId = fiberId;
|
42
|
+
this._tag = 0
|
43
|
+
/* LockTag.WriteLock */
|
44
|
+
;
|
45
|
+
}
|
46
|
+
|
47
|
+
readLocksHeld(fiberId) {
|
48
|
+
return tsplus_module_1.strictEquals(this.fiberId, fiberId) ? this.readLocks : 0;
|
49
|
+
}
|
50
|
+
|
51
|
+
writeLocksHeld(fiberId) {
|
52
|
+
return tsplus_module_1.strictEquals(this.fiberId, fiberId) ? this.writeLocks : 0;
|
53
|
+
}
|
54
|
+
|
55
|
+
}
|
56
|
+
/**
|
57
|
+
* @tsplus type fncts.io.TReentrantLock.ReadLock
|
58
|
+
* @tsplus companion fncts.io.TReentrantLock.ReadLockOps
|
59
|
+
*/
|
60
|
+
|
61
|
+
export class ReadLock {
|
62
|
+
constructor(readers) {
|
63
|
+
this.readers = readers;
|
64
|
+
this._tag = 1
|
65
|
+
/* LockTag.ReadLock */
|
66
|
+
;
|
67
|
+
this.writeLocks = 0;
|
68
|
+
}
|
69
|
+
|
70
|
+
get readLocks() {
|
71
|
+
return tsplus_module_3.sum(tsplus_module_2.values(this.readers));
|
72
|
+
}
|
73
|
+
|
74
|
+
readLocksHeld(fiberId) {
|
75
|
+
return tsplus_module_4.getOrElse_(tsplus_module_2.get_(this.readers, fiberId), () => 0);
|
76
|
+
}
|
77
|
+
|
78
|
+
writeLocksHeld(_fiberId) {
|
79
|
+
return 0;
|
80
|
+
}
|
81
|
+
|
82
|
+
noOtherHolder(fiberId) {
|
83
|
+
return tsplus_module_2.isEmpty(this.readers) || this.readers.size === 1 && tsplus_module_2.has_(this.readers, fiberId);
|
84
|
+
}
|
85
|
+
|
86
|
+
adjust(fiberId, adjust) {
|
87
|
+
const total = this.readLocksHeld(fiberId);
|
88
|
+
const newTotal = total + adjust;
|
89
|
+
|
90
|
+
if (newTotal < 0) {
|
91
|
+
throw new Error(`Defect: Fiber ${tsplus_module_5.threadName(fiberId)} releasing read lock it does not hold`);
|
92
|
+
}
|
93
|
+
|
94
|
+
if (newTotal === 0) {
|
95
|
+
return new ReadLock(tsplus_module_2.remove_(this.readers, fiberId));
|
96
|
+
}
|
97
|
+
|
98
|
+
return new ReadLock(tsplus_module_2.set_(this.readers, fiberId, newTotal));
|
99
|
+
}
|
100
|
+
|
101
|
+
}
|
102
|
+
//# sourceMappingURL=definition.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"definition.mjs","mappings":";;;;;AAAA;;;;;;;;;;;;;;;;;;;;AAmBA,OAAM,MAAOA,cAAP,CAAqB;EACzBC,YAAqBC,IAArB,EAA2C;IAAtB;EAA0B;;AADtB;AAgB3B;;;;;AAIA,OAAM,MAAOC,SAAP,CAAgB;EAEpBF,YAAqBG,UAArB,EAAkDC,SAAlD,EAA8EC,OAA9E,EAA8F;IAAzE;IAA6B;IAA4B;IADrE,YAAI;IAAA;IAAJ;EACyF;;EAClGC,aAAa,CAACD,OAAD,EAAiB;IAC5B,OAAOE,kCAAKF,OAAL,EAAgBA,OAAhB,IAA0B,KAAKD,SAA/B,GAA2C,CAAlD;EACD;;EACDI,cAAc,CAACH,OAAD,EAAiB;IAC7B,OAAOE,kCAAKF,OAAL,EAAgBA,OAAhB,IAA0B,KAAKF,UAA/B,GAA4C,CAAnD;EACD;;AARmB;AAWtB;;;;;AAIA,OAAM,MAAOM,QAAP,CAAe;EAEnBT,YAAqBU,OAArB,EAAsD;IAAjC;IADZ,YAAI;IAAA;IAAJ;IAKT,kBAAa,CAAb;EAJ0D;;EAC7C,IAATN,SAAS;IACX,2BAAQO,4BAAKD,OAAL,CAAR;EACD;;EAGDJ,aAAa,CAACD,OAAD,EAAiB;IAC5B,OAAOO,qDAAKF,OAAL,EAAiBL,OAAjB,GAAyB,MAAW,CAApC,CAAP;EACD;;EACDG,cAAc,CAACK,QAAD,EAAkB;IAC9B,OAAO,CAAP;EACD;;EAEDC,aAAa,CAACT,OAAD,EAAiB;IAC5B,OAAOM,6BAAKD,OAAL,KAAyB,KAAKA,OAAL,CAAaK,IAAb,KAAsB,CAAtB,IAA2BJ,0BAAKD,OAAL,EAAiBL,OAAjB,CAA3D;EACD;;EACDW,MAAM,CAACX,OAAD,EAAmBW,MAAnB,EAAiC;IACrC,MAAMC,KAAK,GAAM,KAAKX,aAAL,CAAmBD,OAAnB,CAAjB;IACA,MAAMa,QAAQ,GAAGD,KAAK,GAAGD,MAAzB;;IACA,IAAIE,QAAQ,GAAG,CAAf,EAAkB;MAChB,MAAM,IAAIC,KAAJ,CAAU,iBAAiBC,mCAAkB,uCAA7C,CAAN;IACD;;IACD,IAAIF,QAAQ,KAAK,CAAjB,EAAoB;MAClB,OAAO,IAAIT,QAAJ,CAAaE,6BAAKD,OAAL,EAAoBL,OAApB,CAAb,CAAP;IACD;;IACD,OAAO,IAAII,QAAJ,CAAaE,0BAAKD,OAAL,EAAiBL,OAAjB,EAA0Ba,QAA1B,CAAb,CAAP;EACD;;AA5BkB","names":["TReentrantLock","constructor","data","WriteLock","writeLocks","readLocks","fiberId","readLocksHeld","tsplus_module_1","writeLocksHeld","ReadLock","readers","tsplus_module_2","tsplus_module_4","_fiberId","noOtherHolder","size","adjust","total","newTotal","Error","tsplus_module_5"],"sourceRoot":"","sources":["../../_src/TReentrantLock/definition.ts"],"sourcesContent":[null]}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"TReentrantLock.mjs","mappings":"AAAA;AACA,cAAc,0BAAd;AACA,cAAc,iCAAd","names":[],"sourceRoot":"","sources":["../_src/TReentrantLock.ts"],"sourcesContent":[null]}
|
package/_mjs/TRef/api.mjs
CHANGED
@@ -2,8 +2,8 @@ import * as tsplus_module_1 from "@fncts/io/STM/internal/Entry";
|
|
2
2
|
import * as tsplus_module_2 from "@fncts/io/STM/api/core-constructors";
|
3
3
|
import * as tsplus_module_3 from "@fncts/base/data/Either/destructors";
|
4
4
|
import * as tsplus_module_4 from "@fncts/io/STM/api/core-api";
|
5
|
-
import * as tsplus_module_5 from "@fncts/
|
6
|
-
import * as tsplus_module_6 from "@fncts/
|
5
|
+
import * as tsplus_module_5 from "@fncts/base/data/Either/constructors";
|
6
|
+
import * as tsplus_module_6 from "@fncts/io/STM/api";
|
7
7
|
import * as tsplus_module_7 from "@fncts/base/data/Maybe/api";
|
8
8
|
import * as tsplus_module_8 from "@fncts/base/data/Maybe/definition";
|
9
9
|
import * as tsplus_module_9 from "@fncts/base/data/Maybe/destructors";
|
@@ -79,17 +79,17 @@ function modify_1(self, f) {
|
|
79
79
|
|
80
80
|
case "Derived":
|
81
81
|
{
|
82
|
-
return
|
82
|
+
return tsplus_module_6.absolve(self.use((getEither, setEither, value, _atomic) => modify_1(value, s => tsplus_module_3.match_(getEither(s), e => [tsplus_module_5.left(e), s], a1 => {
|
83
83
|
const [b, a2] = f(a1);
|
84
|
-
return tsplus_module_3.match_(setEither(a2), e => [
|
84
|
+
return tsplus_module_3.match_(setEither(a2), e => [tsplus_module_5.left(e), s], s => [tsplus_module_5.right(b), s]);
|
85
85
|
}))));
|
86
86
|
}
|
87
87
|
|
88
88
|
case "DerivedAll":
|
89
89
|
{
|
90
|
-
return
|
90
|
+
return tsplus_module_6.absolve(self.use((getEither, setEither, value, atomic) => modify_1(value, s => tsplus_module_3.match_(getEither(s), e => [tsplus_module_5.left(e), s], a1 => {
|
91
91
|
const [b, a2] = f(a1);
|
92
|
-
return tsplus_module_3.match_(setEither(a2)(s), e => [
|
92
|
+
return tsplus_module_3.match_(setEither(a2)(s), e => [tsplus_module_5.left(e), s], s => [tsplus_module_5.right(b), s]);
|
93
93
|
}))));
|
94
94
|
}
|
95
95
|
}
|
@@ -120,7 +120,7 @@ function set_1(self, a) {
|
|
120
120
|
|
121
121
|
case "DerivedAll":
|
122
122
|
{
|
123
|
-
return
|
123
|
+
return tsplus_module_6.absolve(self.use((_getEither, setEither, value, _atomic) => modify_1(value, s => tsplus_module_3.match_(setEither(a)(s), e => [tsplus_module_5.left(e), s], s => [tsplus_module_5.right(undefined), s]))));
|
124
124
|
}
|
125
125
|
}
|
126
126
|
}
|
package/_mjs/TRef/api.mjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"api.mjs","mappings":"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","names":["get","modify_","set_","update_","updateAndGet_","Effect","concrete","getOrMakeEntry","self","journal","has","entry","tsplus_module_1","set","_tag","use","_","unsafeGet","getEither","_setEither","value","_atomic","tsplus_module_4","s","tsplus_module_3","tsplus_module_2","f","oldValue","retValue","newValue","unsafeSet","setEither","modify_1","e","
|
1
|
+
{"version":3,"file":"api.mjs","mappings":"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","names":["get","modify_","set_","update_","updateAndGet_","Effect","concrete","getOrMakeEntry","self","journal","has","entry","tsplus_module_1","set","_tag","use","_","unsafeGet","getEither","_setEither","value","_atomic","tsplus_module_4","s","tsplus_module_3","tsplus_module_2","f","oldValue","retValue","newValue","unsafeSet","setEither","modify_1","e","tsplus_module_5","a1","b","a2","atomic","a","_getEither","set_1","undefined","unsafeGet_","_value","modifyJust_","tsplus_module_7","getAndSet_","oldA","getAndUpdate_","getAndUpdateJust_","v","tsplus_module_8","tsplus_module_9","updateJust_","update_1","updateJustAndGet_","updateAndGet_1","unsafeSet_"],"sourceRoot":"","sources":["../../_src/TRef/api.ts"],"sourcesContent":[null]}
|
@@ -0,0 +1,26 @@
|
|
1
|
+
import * as tsplus_module_1 from "@fncts/base/collection/immutable/Conc";
|
2
|
+
import * as tsplus_module_2 from "@fncts/io/IO/api";
|
3
|
+
/**
|
4
|
+
* @tsplus fluent fncts.Conc dropUntilIO
|
5
|
+
*/
|
6
|
+
|
7
|
+
export function dropUntilIO(self, p, __tsplusTrace) {
|
8
|
+
return tsplus_module_2.defer(() => {
|
9
|
+
const builder = new tsplus_module_1.ConcBuilder();
|
10
|
+
let dropping = tsplus_module_2.succeedNow(false, __tsplusTrace);
|
11
|
+
|
12
|
+
for (const elem of self) {
|
13
|
+
dropping = tsplus_module_2.flatMap_(dropping, b => {
|
14
|
+
if (b) {
|
15
|
+
builder.append(elem);
|
16
|
+
return tsplus_module_2.succeedNow(true, __tsplusTrace);
|
17
|
+
} else {
|
18
|
+
return p(elem);
|
19
|
+
}
|
20
|
+
}, __tsplusTrace);
|
21
|
+
}
|
22
|
+
|
23
|
+
return tsplus_module_2.as_(dropping, () => builder.result());
|
24
|
+
}, __tsplusTrace);
|
25
|
+
}
|
26
|
+
//# sourceMappingURL=dropUntilIO.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"dropUntilIO.mjs","mappings":";;AAAA;;;;AAGA,OAAM,SAAUA,WAAV,CACJC,IADI,EAEJC,CAFI,EAGJC,aAHI,EAGkB;EAEtB,OAAOC,sBAAS,MAAK;IACnB,MAAMC,OAAO,GAAqB,oBAAIC,WAAJ,EAAlC;IACA,IAAIC,QAAQ,GAAsBH,2BAAc,KAAd,EAJpCD,aAIoC,CAAlC;;IACA,KAAK,MAAMK,IAAX,IAAmBP,IAAnB,EAAyB;MACvBM,QAAQ,GAAGH,mCAAkBK,CAAD,IAAM;QAChC,IAAIA,CAAJ,EAAO;UACLJ,OAAO,CAACK,MAAR,CAAeF,IAAf;UACA,OAAOJ,2BAAc,IAAd,EATfD,aASe,CAAP;QACD,CAHD,MAGO;UACL,OAAOD,CAAC,CAACM,IAAD,CAAR;QACD;MACF,CAPU,EANfL,aAMe,CAAX;IAQD;;IACD,OAAOC,8BAAQ,MAAIC,OAAO,CAACM,MAAR,EAAZ,CAAP;EACD,CAdM,EAFPR,aAEO,CAAP;AAeD","names":["dropUntilIO","self","p","__tsplusTrace","tsplus_module_2","builder","ConcBuilder","dropping","elem","b","append","result"],"sourceRoot":"","sources":["../../../../_src/collection/immutable/Conc/dropUntilIO.ts"],"sourcesContent":[null]}
|
@@ -0,0 +1,26 @@
|
|
1
|
+
import * as tsplus_module_1 from "@fncts/base/collection/immutable/Conc";
|
2
|
+
import * as tsplus_module_2 from "@fncts/io/IO/api";
|
3
|
+
/**
|
4
|
+
* @tsplus fluent fncts.Conc dropWhileIO
|
5
|
+
*/
|
6
|
+
|
7
|
+
export function dropWhileIO(self, p, __tsplusTrace) {
|
8
|
+
return tsplus_module_2.defer(() => {
|
9
|
+
const builder = new tsplus_module_1.ConcBuilder();
|
10
|
+
let dropping = tsplus_module_2.succeedNow(true, __tsplusTrace);
|
11
|
+
|
12
|
+
for (const elem of self) {
|
13
|
+
dropping = tsplus_module_2.flatMap_(dropping, d => tsplus_module_2.map_(d ? p(elem) : tsplus_module_2.succeedNow(false, __tsplusTrace), b => {
|
14
|
+
if (b) {
|
15
|
+
return true;
|
16
|
+
} else {
|
17
|
+
builder.append(elem);
|
18
|
+
return false;
|
19
|
+
}
|
20
|
+
}, __tsplusTrace), __tsplusTrace);
|
21
|
+
}
|
22
|
+
|
23
|
+
return tsplus_module_2.as_(dropping, () => builder.result());
|
24
|
+
}, __tsplusTrace);
|
25
|
+
}
|
26
|
+
//# sourceMappingURL=dropWhileIO.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"dropWhileIO.mjs","mappings":";;AAAA;;;;AAGA,OAAM,SAAUA,WAAV,CACJC,IADI,EAEJC,CAFI,EAGJC,aAHI,EAGkB;EAEtB,OAAOC,sBAAS,MAAK;IACnB,MAAMC,OAAO,GAAqB,oBAAIC,WAAJ,EAAlC;IACA,IAAIC,QAAQ,GAAsBH,2BAAc,IAAd,EAJpCD,aAIoC,CAAlC;;IACA,KAAK,MAAMK,IAAX,IAAmBP,IAAnB,EAAyB;MACvBM,QAAQ,GAAGH,mCAAkBK,CAAD,IAC1BL,qBAACK,CAAC,GAAGP,CAAC,CAACM,IAAD,CAAJ,GAAaJ,2BAAc,KAAd,EAPrBD,aAOqB,CAAf,EAA0CO,CAAD,IAAM;QAC7C,IAAIA,CAAJ,EAAO;UACL,OAAO,IAAP;QACD,CAFD,MAEO;UACLL,OAAO,CAACM,MAAR,CAAeH,IAAf;UACA,OAAO,KAAP;QACD;MACF,CAPD,EAPNL,aAOM,CADS,EANfA,aAMe,CAAX;IAUD;;IACD,OAAOC,8BAAQ,MAAIC,OAAO,CAACO,MAAR,EAAZ,CAAP;EACD,CAhBM,EAFPT,aAEO,CAAP;AAiBD","names":["dropWhileIO","self","p","__tsplusTrace","tsplus_module_2","builder","ConcBuilder","dropping","elem","d","b","append","result"],"sourceRoot":"","sources":["../../../../_src/collection/immutable/Conc/dropWhileIO.ts"],"sourcesContent":[null]}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
const fileName_1 = "(@fncts/io) src/collection/immutable/Conc/filterIO.ts";
|
2
|
+
import * as tsplus_module_1 from "@fncts/base/collection/immutable/Conc";
|
3
|
+
import * as tsplus_module_2 from "@fncts/io/IO/api";
|
4
|
+
/**
|
5
|
+
* @tsplus fluent fncts.Conc filterIO
|
6
|
+
*/
|
7
|
+
|
8
|
+
export function filterIO(self, p) {
|
9
|
+
return tsplus_module_2.defer(() => {
|
10
|
+
const builder = new tsplus_module_1.ConcBuilder();
|
11
|
+
let dest = tsplus_module_2.succeedNow(builder, fileName_1 + ":7:55");
|
12
|
+
|
13
|
+
for (const a of self) {
|
14
|
+
dest = tsplus_module_2.zipWith_(dest, p(a), (builder, res) => {
|
15
|
+
if (res) return builder.append(a);else return builder;
|
16
|
+
});
|
17
|
+
}
|
18
|
+
|
19
|
+
return tsplus_module_2.map_(dest, builder => builder.result(), fileName_1 + ":14:20");
|
20
|
+
}, fileName_1 + ":5:18");
|
21
|
+
}
|
22
|
+
//# sourceMappingURL=filterIO.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"filterIO.mjs","mappings":";;;AAAA;;;;AAGA,OAAM,SAAUA,QAAV,CAA4BC,IAA5B,EAA2CC,CAA3C,EAAyE;EAC7E,OAAOC,sBAAS,MAAK;IACnB,MAAMC,OAAO,GAAG,oBAAIC,WAAJ,EAAhB;IACA,IAAIC,IAAI,GAA6BH,2BAAcC,OAAd,EAAqBG,oBAArB,CAArC;;IACA,KAAK,MAAMC,CAAX,IAAgBP,IAAhB,EAAsB;MACpBK,IAAI,GAAGH,+BAAaD,CAAC,CAACM,CAAD,CAAd,EAAmB,CAACJ,OAAD,EAAUK,GAAV,KAAiB;QACzC,IAAIA,GAAJ,EAAS,OAAOL,OAAO,CAACM,MAAR,CAAeF,CAAf,CAAP,CAAT,KACK,OAAOJ,OAAP;MACN,CAHM,CAAP;IAID;;IACD,OAAOD,2BAAUC,OAAD,IAAaA,OAAO,CAACO,MAAR,EAAtB,EAAsCJ,qBAAtC,CAAP;EACD,CAVM,EAUNA,oBAVM,CAAP;AAWD","names":["filterIO","self","p","tsplus_module_2","builder","ConcBuilder","dest","fileName_1","a","res","append","result"],"sourceRoot":"","sources":["../../../../_src/collection/immutable/Conc/filterIO.ts"],"sourcesContent":[null]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Conc.mjs","mappings":"AAAA;AACA,cAAc,mBAAd;AACA,cAAc,kBAAd;AACA,cAAc,wBAAd","names":[],"sourceRoot":"","sources":["../../../_src/collection/immutable/Conc.ts"],"sourcesContent":[null]}
|
1
|
+
{"version":3,"file":"Conc.mjs","mappings":"AAAA;AACA,cAAc,qBAAd;AACA,cAAc,mBAAd;AACA,cAAc,kBAAd;AACA,cAAc,wBAAd","names":[],"sourceRoot":"","sources":["../../../_src/collection/immutable/Conc.ts"],"sourcesContent":[null]}
|
@@ -10,6 +10,6 @@ import * as tsplus_module_3 from "@fncts/base/data/Exit/api";
|
|
10
10
|
*/
|
11
11
|
|
12
12
|
export function foreachIO_(exit, f) {
|
13
|
-
return tsplus_module_3.match_(exit, c => tsplus_module_2.succeedNow(tsplus_module_1.failCause(c), fileName_1 + ":12:51"), a => tsplus_module_2.result(f(a)));
|
13
|
+
return tsplus_module_3.match_(exit, c => tsplus_module_2.succeedNow(tsplus_module_1.failCause(c), fileName_1 + ":12:51"), a => tsplus_module_2.result(f(a), fileName_1 + ":13:16"));
|
14
14
|
}
|
15
15
|
//# sourceMappingURL=foreachIO.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"foreachIO.mjs","mappings":";;;;AAAA;;;;;;;AAMA,OAAM,SAAUA,UAAV,CACJC,IADI,EAEJC,CAFI,EAEqB;EAEzB,OAAOC,6BACJC,CAAD,IAAiCC,2BAAcC,0BAAeF,CAAf,CAAd,EAA+BG,qBAA/B,CAD5B,EAEJC,CAAD,IAAMH,uBAACH,CAAC,CAACM,CAAD,CAAF,CAFD,CAAP;AAID","names":["foreachIO_","exit","f","tsplus_module_3","c","tsplus_module_2","tsplus_module_1","fileName_1","a"],"sourceRoot":"","sources":["../../../_src/data/Exit/foreachIO.ts"],"sourcesContent":[null]}
|
1
|
+
{"version":3,"file":"foreachIO.mjs","mappings":";;;;AAAA;;;;;;;AAMA,OAAM,SAAUA,UAAV,CACJC,IADI,EAEJC,CAFI,EAEqB;EAEzB,OAAOC,6BACJC,CAAD,IAAiCC,2BAAcC,0BAAeF,CAAf,CAAd,EAA+BG,qBAA/B,CAD5B,EAEJC,CAAD,IAAMH,uBAACH,CAAC,CAACM,CAAD,CAAF,EAAKD,qBAAL,CAFD,CAAP;AAID","names":["foreachIO_","exit","f","tsplus_module_3","c","tsplus_module_2","tsplus_module_1","fileName_1","a"],"sourceRoot":"","sources":["../../../_src/data/Exit/foreachIO.ts"],"sourcesContent":[null]}
|
package/_src/Channel/api.ts
CHANGED
@@ -231,6 +231,23 @@ export function catchAllCause_<
|
|
231
231
|
>(self, new ContinuationK((_) => Channel.endNow(_), f));
|
232
232
|
}
|
233
233
|
|
234
|
+
/**
|
235
|
+
* @tsplus getter fncts.io.Channel collectElements
|
236
|
+
*/
|
237
|
+
export function collectElements<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>(
|
238
|
+
self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
|
239
|
+
): Channel<Env, InErr, InElem, InDone, OutErr, never, readonly [Conc<OutElem>, OutDone]> {
|
240
|
+
return Channel.defer(() => {
|
241
|
+
const builder = new ConcBuilder<OutElem>(Conc.empty());
|
242
|
+
const reader: Channel<Env, OutErr, OutElem, OutDone, OutErr, never, OutDone> = Channel.readWith(
|
243
|
+
(out) => Channel.succeed(builder.append(out)) > reader,
|
244
|
+
Channel.failNow,
|
245
|
+
Channel.succeedNow,
|
246
|
+
);
|
247
|
+
return self.pipeTo(reader).flatMap((z) => Channel.succeedNow([builder.result(), z]));
|
248
|
+
});
|
249
|
+
}
|
250
|
+
|
234
251
|
/**
|
235
252
|
* @tsplus getter fncts.io.Channel concatAll
|
236
253
|
*/
|
@@ -735,9 +752,9 @@ export function fromQueue<Err, Elem, Done>(
|
|
735
752
|
*/
|
736
753
|
export function provideEnvironment_<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>(
|
737
754
|
self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
|
738
|
-
env: Environment<Env
|
755
|
+
env: Lazy<Environment<Env>>,
|
739
756
|
): Channel<unknown, InErr, InElem, InDone, OutErr, OutElem, OutDone> {
|
740
|
-
return new Provide(env, self);
|
757
|
+
return Channel.defer(new Provide(env(), self));
|
741
758
|
}
|
742
759
|
|
743
760
|
/**
|
@@ -945,6 +962,49 @@ export function matchCauseChannel_<
|
|
945
962
|
);
|
946
963
|
}
|
947
964
|
|
965
|
+
/**
|
966
|
+
* Fold the channel exposing success and full error cause
|
967
|
+
*
|
968
|
+
* @tsplus fluent fncts.io.Channel matchChannel
|
969
|
+
*/
|
970
|
+
export function matchChannel_<
|
971
|
+
Env,
|
972
|
+
Env1,
|
973
|
+
Env2,
|
974
|
+
InErr,
|
975
|
+
InErr1,
|
976
|
+
InErr2,
|
977
|
+
InElem,
|
978
|
+
InElem1,
|
979
|
+
InElem2,
|
980
|
+
InDone,
|
981
|
+
InDone1,
|
982
|
+
InDone2,
|
983
|
+
OutErr,
|
984
|
+
OutErr2,
|
985
|
+
OutErr3,
|
986
|
+
OutElem,
|
987
|
+
OutElem1,
|
988
|
+
OutElem2,
|
989
|
+
OutDone,
|
990
|
+
OutDone2,
|
991
|
+
OutDone3,
|
992
|
+
>(
|
993
|
+
channel: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
|
994
|
+
onError: (e: OutErr) => Channel<Env1, InErr1, InElem1, InDone1, OutErr2, OutElem1, OutDone2>,
|
995
|
+
onSuccess: (o: OutDone) => Channel<Env2, InErr2, InElem2, InDone2, OutErr3, OutElem2, OutDone3>,
|
996
|
+
): Channel<
|
997
|
+
Env & Env1 & Env2,
|
998
|
+
InErr & InErr1 & InErr2,
|
999
|
+
InElem & InElem1 & InElem2,
|
1000
|
+
InDone & InDone1 & InDone2,
|
1001
|
+
OutErr2 | OutErr3,
|
1002
|
+
OutElem | OutElem1 | OutElem2,
|
1003
|
+
OutDone2 | OutDone3
|
1004
|
+
> {
|
1005
|
+
return channel.matchCauseChannel((cause) => cause.failureOrCause.match(onError, Channel.failCauseNow), onSuccess);
|
1006
|
+
}
|
1007
|
+
|
948
1008
|
export const never: Channel<unknown, unknown, unknown, unknown, never, never, never> = Channel.fromIO(IO.never);
|
949
1009
|
|
950
1010
|
/**
|
@@ -1007,6 +1067,7 @@ export function orHaltWith_<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone
|
|
1007
1067
|
* Pipe the output of a channel into the input of another
|
1008
1068
|
*
|
1009
1069
|
* @tsplus fluent fncts.io.Channel pipeTo
|
1070
|
+
* @tsplus operator fncts.io.Channel >>>
|
1010
1071
|
*/
|
1011
1072
|
export function pipeTo_<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone, Env1, OutErr1, OutElem1, OutDone1>(
|
1012
1073
|
left: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>,
|
@@ -1174,16 +1235,24 @@ export function repeated<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>(
|
|
1174
1235
|
}
|
1175
1236
|
|
1176
1237
|
/**
|
1177
|
-
* @tsplus static fncts.io.
|
1238
|
+
* @tsplus static fncts.io.ChannelOps toQueue
|
1178
1239
|
*/
|
1179
1240
|
export function toQueue<Err, Done, Elem>(
|
1180
|
-
queue: Queue.Enqueue<Either<Exit<Err, Done>, Elem
|
1181
|
-
): Channel<unknown, Err, Elem, Done, never, never,
|
1182
|
-
return
|
1183
|
-
|
1184
|
-
|
1185
|
-
|
1186
|
-
|
1241
|
+
queue: Lazy<Queue.Enqueue<Either<Exit<Err, Done>, Elem>>>,
|
1242
|
+
): Channel<unknown, Err, Elem, Done, never, never, unknown> {
|
1243
|
+
return Channel.defer(() => {
|
1244
|
+
function toQueue<Err, Done, Elem>(
|
1245
|
+
queue: Queue.Enqueue<Either<Exit<Err, Done>, Elem>>,
|
1246
|
+
): Channel<unknown, Err, Elem, Done, never, never, unknown> {
|
1247
|
+
return Channel.readWithCause(
|
1248
|
+
(inp) => Channel.fromIO(queue.offer(Either.right(inp))) > toQueue(queue),
|
1249
|
+
(cause) => Channel.fromIO(queue.offer(Either.left(Exit.failCause(cause)))),
|
1250
|
+
(done) => Channel.fromIO(queue.offer(Either.left(Exit.succeed(done)))),
|
1251
|
+
);
|
1252
|
+
}
|
1253
|
+
|
1254
|
+
return toQueue(queue());
|
1255
|
+
});
|
1187
1256
|
}
|
1188
1257
|
|
1189
1258
|
/**
|
@@ -1249,10 +1318,28 @@ export function unwrap<R, E, Env, InErr, InElem, InDone, OutErr, OutElem, OutDon
|
|
1249
1318
|
* @tsplus static fncts.io.ChannelOps unwrapScoped
|
1250
1319
|
*/
|
1251
1320
|
export function unwrapScoped<R, E, Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>(
|
1252
|
-
self: IO<R & Has<Scope>, E, Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone
|
1321
|
+
self: Lazy<IO<R & Has<Scope>, E, Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>>>,
|
1253
1322
|
): Channel<R & Env, InErr, InElem, InDone, E | OutErr, OutElem, OutDone> {
|
1254
1323
|
return Channel.scoped(self).concatAllWith(
|
1255
1324
|
(d, _) => d,
|
1256
1325
|
(d, _) => d,
|
1257
1326
|
);
|
1258
1327
|
}
|
1328
|
+
|
1329
|
+
/**
|
1330
|
+
* @tsplus static fncts.io.ChannelOps fromHubScoped
|
1331
|
+
*/
|
1332
|
+
export function fromHubScoped<Err, Done, Elem>(
|
1333
|
+
hub: Lazy<Hub<Either<Exit<Err, Done>, Elem>>>,
|
1334
|
+
): IO<Has<Scope>, never, Channel<unknown, unknown, unknown, unknown, Err, Elem, Done>> {
|
1335
|
+
return IO.defer(hub().subscribe.map(Channel.fromQueue));
|
1336
|
+
}
|
1337
|
+
|
1338
|
+
/**
|
1339
|
+
* @tsplus static fncts.io.ChannelOps toHub
|
1340
|
+
*/
|
1341
|
+
export function toHub<Err, Done, Elem>(
|
1342
|
+
hub: Lazy<Hub<Either<Exit<Err, Done>, Elem>>>,
|
1343
|
+
): Channel<unknown, Err, Elem, Done, never, never, unknown> {
|
1344
|
+
return Channel.toQueue(hub);
|
1345
|
+
}
|
@@ -19,6 +19,21 @@ export abstract class MergeDecision<R, E0, Z0, E, Z> {
|
|
19
19
|
readonly _Z!: () => Z;
|
20
20
|
}
|
21
21
|
|
22
|
+
/**
|
23
|
+
* @tsplus unify fncts.io.Channel.MergeDecision
|
24
|
+
*/
|
25
|
+
export function unifyMergeDecision<X extends MergeDecision<any, any, any, any, any>>(
|
26
|
+
_: X,
|
27
|
+
): MergeDecision<
|
28
|
+
[X] extends [MergeDecision<infer R, any, any, any, any>] ? R : never,
|
29
|
+
[X] extends [MergeDecision<any, infer E0, any, any, any>] ? E0 : never,
|
30
|
+
[X] extends [MergeDecision<any, any, infer Z0, any, any>] ? Z0 : never,
|
31
|
+
[X] extends [MergeDecision<any, any, any, infer E, any>] ? E : never,
|
32
|
+
[X] extends [MergeDecision<any, any, any, any, infer Z>] ? Z : never
|
33
|
+
> {
|
34
|
+
return _;
|
35
|
+
}
|
36
|
+
|
22
37
|
/**
|
23
38
|
* @tsplus fluent fncts.io.Channel.MergeDecision concrete
|
24
39
|
* @tsplus macro remove
|
@@ -0,0 +1,17 @@
|
|
1
|
+
/**
|
2
|
+
* @tsplus fluent fncts.io.IO onTermination
|
3
|
+
*/
|
4
|
+
export function onTermination<R, E, A, R1>(
|
5
|
+
self: Lazy<IO<R, E, A>>,
|
6
|
+
cleanup: (cause: Cause<never>) => URIO<R1, any>,
|
7
|
+
__tsPlusTrace?: string,
|
8
|
+
): IO<R & R1, E, A> {
|
9
|
+
return IO.unit.bracketExit(
|
10
|
+
() => self(),
|
11
|
+
(_, exit: Exit<E, A>) =>
|
12
|
+
exit.match(
|
13
|
+
(cause) => cause.failureOrCause.match(() => IO.unit, cleanup),
|
14
|
+
() => IO.unit,
|
15
|
+
),
|
16
|
+
);
|
17
|
+
}
|
package/_src/IO/api.ts
CHANGED
@@ -99,7 +99,7 @@ export function asyncInterrupt<R, E, A>(
|
|
99
99
|
* @tsplus fluent fncts.io.IO absorbWith
|
100
100
|
*/
|
101
101
|
export function absorbWith_<R, E, A>(ma: IO<R, E, A>, f: (e: E) => unknown, __tsplusTrace?: string) {
|
102
|
-
return ma.sandbox.matchIO((cause) => IO.failNow(cause.squashWith(f)), IO.succeedNow)
|
102
|
+
return ma.sandbox.matchIO((cause) => IO.failNow(cause.squashWith(f)), IO.succeedNow);
|
103
103
|
}
|
104
104
|
|
105
105
|
/**
|
package/_src/IO.ts
CHANGED
@@ -31,6 +31,7 @@ export * from "./IO/api/interrupt.js";
|
|
31
31
|
export * from "./IO/api/memoize.js";
|
32
32
|
export * from "./IO/api/once.js";
|
33
33
|
export * from "./IO/api/onExit.js";
|
34
|
+
export * from "./IO/api/onTermination.js";
|
34
35
|
export * from "./IO/api/provideLayer.js";
|
35
36
|
export * from "./IO/api/provideSomeLayer.js";
|
36
37
|
export * from "./IO/api/race.js";
|
package/_src/STM/api.ts
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
import type { Journal} from "./internal/Journal.js";
|
2
|
+
|
1
3
|
import { identity } from "@fncts/base/data/function";
|
2
4
|
import { AtomicReference } from "@fncts/base/internal/AtomicReference";
|
3
5
|
import { TxnId } from "@fncts/io/TxnId";
|
@@ -44,6 +46,13 @@ export function absolve<R, E, E1, A>(z: STM<R, E, Either<E1, A>>): STM<R, E | E1
|
|
44
46
|
return z.flatMap(STM.fromEitherNow);
|
45
47
|
}
|
46
48
|
|
49
|
+
/**
|
50
|
+
* @tsplus static fncts.io.STMOps Effect
|
51
|
+
*/
|
52
|
+
export function makeEffect<R, E, A>(f: (journal: Journal, fiberId: FiberId, r: R) => A): STM<R, E, A> {
|
53
|
+
return new Effect(f);
|
54
|
+
}
|
55
|
+
|
47
56
|
/**
|
48
57
|
* Retrieves the environment inside an stm.
|
49
58
|
*
|