@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.
Files changed (267) hide show
  1. package/Channel/api.d.ts +27 -4
  2. package/Channel/internal/MergeDecision.d.ts +14 -0
  3. package/IO/api/onTermination.d.ts +9 -0
  4. package/IO.d.ts +1 -0
  5. package/STM/api.d.ts +7 -0
  6. package/Sink/api.d.ts +637 -8
  7. package/TReentrantLock/api.d.ts +97 -0
  8. package/TReentrantLock/definition.d.ts +65 -0
  9. package/TReentrantLock.d.ts +2 -0
  10. package/_cjs/Cached/api.cjs +5 -5
  11. package/_cjs/Cached/api.cjs.map +1 -1
  12. package/_cjs/Channel/api/mapOutIOC.cjs +9 -9
  13. package/_cjs/Channel/api/mapOutIOC.cjs.map +1 -1
  14. package/_cjs/Channel/api/mergeAllWith.cjs +18 -18
  15. package/_cjs/Channel/api/mergeAllWith.cjs.map +1 -1
  16. package/_cjs/Channel/api/mergeWith.cjs +5 -5
  17. package/_cjs/Channel/api/mergeWith.cjs.map +1 -1
  18. package/_cjs/Channel/api/run.cjs +3 -3
  19. package/_cjs/Channel/api/runCollect.cjs +3 -3
  20. package/_cjs/Channel/api/runDrain.cjs +3 -3
  21. package/_cjs/Channel/api.cjs +90 -35
  22. package/_cjs/Channel/api.cjs.map +1 -1
  23. package/_cjs/Channel/internal/ChannelExecutor.cjs +16 -16
  24. package/_cjs/Channel/internal/ChannelExecutor.cjs.map +1 -1
  25. package/_cjs/Channel/internal/MergeDecision.cjs +11 -2
  26. package/_cjs/Channel/internal/MergeDecision.cjs.map +1 -1
  27. package/_cjs/Channel/internal/SingleProducerAsyncInput.cjs +20 -20
  28. package/_cjs/Channel/internal/SingleProducerAsyncInput.cjs.map +1 -1
  29. package/_cjs/Fiber/api/awaitAll.cjs +1 -1
  30. package/_cjs/Fiber/api/awaitAll.cjs.map +1 -1
  31. package/_cjs/Fiber/api/fromIO.cjs +1 -1
  32. package/_cjs/Fiber/api/fromIO.cjs.map +1 -1
  33. package/_cjs/Fiber/api/interruptFork.cjs +3 -3
  34. package/_cjs/Fiber/api/interruptFork.cjs.map +1 -1
  35. package/_cjs/Fiber/api/zipWith.cjs +1 -1
  36. package/_cjs/Fiber/api/zipWith.cjs.map +1 -1
  37. package/_cjs/FiberRef/api/locallyScoped.cjs +3 -3
  38. package/_cjs/FiberRef/api/locallyScoped.cjs.map +1 -1
  39. package/_cjs/FiberRef/constructors.cjs +1 -1
  40. package/_cjs/FiberRef/constructors.cjs.map +1 -1
  41. package/_cjs/Future/api.cjs +1 -1
  42. package/_cjs/Future/api.cjs.map +1 -1
  43. package/_cjs/Hub/internal.cjs +1 -1
  44. package/_cjs/Hub/internal.cjs.map +1 -1
  45. package/_cjs/IO/api/asyncIO.cjs +4 -4
  46. package/_cjs/IO/api/asyncIO.cjs.map +1 -1
  47. package/_cjs/IO/api/bracketExit.cjs +1 -1
  48. package/_cjs/IO/api/bracketExit.cjs.map +1 -1
  49. package/_cjs/IO/api/environment.cjs +5 -5
  50. package/_cjs/IO/api/environment.cjs.map +1 -1
  51. package/_cjs/IO/api/foreachC.cjs +3 -3
  52. package/_cjs/IO/api/foreachC.cjs.map +1 -1
  53. package/_cjs/IO/api/foreachExec.cjs +3 -3
  54. package/_cjs/IO/api/foreachExec.cjs.map +1 -1
  55. package/_cjs/IO/api/forkAll.cjs +1 -1
  56. package/_cjs/IO/api/forkAll.cjs.map +1 -1
  57. package/_cjs/IO/api/forkIn.cjs +1 -1
  58. package/_cjs/IO/api/forkIn.cjs.map +1 -1
  59. package/_cjs/IO/api/forkScoped.cjs +1 -1
  60. package/_cjs/IO/api/forkScoped.cjs.map +1 -1
  61. package/_cjs/IO/api/fulfill.cjs +1 -1
  62. package/_cjs/IO/api/fulfill.cjs.map +1 -1
  63. package/_cjs/IO/api/interrupt.cjs +4 -4
  64. package/_cjs/IO/api/interrupt.cjs.map +1 -1
  65. package/_cjs/IO/api/memoize.cjs +4 -4
  66. package/_cjs/IO/api/memoize.cjs.map +1 -1
  67. package/_cjs/IO/api/onTermination.cjs +28 -0
  68. package/_cjs/IO/api/onTermination.cjs.map +1 -0
  69. package/_cjs/IO/api/raceFirst.cjs +1 -1
  70. package/_cjs/IO/api/raceFirst.cjs.map +1 -1
  71. package/_cjs/IO/api/repeat.cjs +2 -2
  72. package/_cjs/IO/api/repeat.cjs.map +1 -1
  73. package/_cjs/IO/api/retry.cjs +2 -2
  74. package/_cjs/IO/api/retry.cjs.map +1 -1
  75. package/_cjs/IO/api/schedule.cjs +2 -2
  76. package/_cjs/IO/api/schedule.cjs.map +1 -1
  77. package/_cjs/IO/api/timeout.cjs +3 -3
  78. package/_cjs/IO/api/timeout.cjs.map +1 -1
  79. package/_cjs/IO/api/zipC.cjs +5 -5
  80. package/_cjs/IO/api/zipC.cjs.map +1 -1
  81. package/_cjs/IO/api.cjs +4 -4
  82. package/_cjs/IO/api.cjs.map +1 -1
  83. package/_cjs/IO.cjs +13 -0
  84. package/_cjs/IO.cjs.map +1 -1
  85. package/_cjs/Layer/MemoMap.cjs +24 -24
  86. package/_cjs/Layer/MemoMap.cjs.map +1 -1
  87. package/_cjs/Layer/api.cjs +4 -4
  88. package/_cjs/Layer/api.cjs.map +1 -1
  89. package/_cjs/Ref/DerivedAll.cjs +1 -1
  90. package/_cjs/Ref/DerivedAll.cjs.map +1 -1
  91. package/_cjs/Ref/Synchronized/api.cjs +3 -3
  92. package/_cjs/Ref/Synchronized/api.cjs.map +1 -1
  93. package/_cjs/Ref/Synchronized/constructors.cjs +3 -3
  94. package/_cjs/Ref/Synchronized/constructors.cjs.map +1 -1
  95. package/_cjs/Ref/Synchronized/definition.cjs +3 -3
  96. package/_cjs/Ref/Synchronized/definition.cjs.map +1 -1
  97. package/_cjs/Ref/api/modify.cjs +10 -10
  98. package/_cjs/Ref/api/modify.cjs.map +1 -1
  99. package/_cjs/STM/api.cjs +15 -6
  100. package/_cjs/STM/api.cjs.map +1 -1
  101. package/_cjs/Scope/ReleaseMap/api/releaseAll.cjs +1 -1
  102. package/_cjs/Scope/ReleaseMap/api/releaseAll.cjs.map +1 -1
  103. package/_cjs/Scope/ReleaseMap/api.cjs +13 -13
  104. package/_cjs/Scope/ReleaseMap/api.cjs.map +1 -1
  105. package/_cjs/ScopedRef/api.cjs +1 -1
  106. package/_cjs/ScopedRef/api.cjs.map +1 -1
  107. package/_cjs/Sink/api.cjs +1475 -42
  108. package/_cjs/Sink/api.cjs.map +1 -1
  109. package/_cjs/Stream/api.cjs +42 -42
  110. package/_cjs/Stream/api.cjs.map +1 -1
  111. package/_cjs/TReentrantLock/api.cjs +297 -0
  112. package/_cjs/TReentrantLock/api.cjs.map +1 -0
  113. package/_cjs/TReentrantLock/definition.cjs +125 -0
  114. package/_cjs/TReentrantLock/definition.cjs.map +1 -0
  115. package/_cjs/TReentrantLock.cjs +32 -0
  116. package/_cjs/TReentrantLock.cjs.map +1 -0
  117. package/_cjs/TRef/api.cjs +7 -7
  118. package/_cjs/TRef/api.cjs.map +1 -1
  119. package/_cjs/collection/immutable/Conc/dropUntilIO.cjs +38 -0
  120. package/_cjs/collection/immutable/Conc/dropUntilIO.cjs.map +1 -0
  121. package/_cjs/collection/immutable/Conc/dropWhileIO.cjs +38 -0
  122. package/_cjs/collection/immutable/Conc/dropWhileIO.cjs.map +1 -0
  123. package/_cjs/collection/immutable/Conc/filterIO.cjs +35 -0
  124. package/_cjs/collection/immutable/Conc/filterIO.cjs.map +1 -0
  125. package/_cjs/collection/immutable/Conc.cjs +13 -0
  126. package/_cjs/collection/immutable/Conc.cjs.map +1 -1
  127. package/_cjs/data/Exit/foreachIO.cjs +1 -1
  128. package/_cjs/data/Exit/foreachIO.cjs.map +1 -1
  129. package/_mjs/Cached/api.mjs +5 -5
  130. package/_mjs/Cached/api.mjs.map +1 -1
  131. package/_mjs/Channel/api/mapOutIOC.mjs +9 -9
  132. package/_mjs/Channel/api/mapOutIOC.mjs.map +1 -1
  133. package/_mjs/Channel/api/mergeAllWith.mjs +18 -18
  134. package/_mjs/Channel/api/mergeAllWith.mjs.map +1 -1
  135. package/_mjs/Channel/api/mergeWith.mjs +5 -5
  136. package/_mjs/Channel/api/mergeWith.mjs.map +1 -1
  137. package/_mjs/Channel/api/run.mjs +3 -3
  138. package/_mjs/Channel/api/runCollect.mjs +3 -3
  139. package/_mjs/Channel/api/runDrain.mjs +3 -3
  140. package/_mjs/Channel/api.mjs +78 -33
  141. package/_mjs/Channel/api.mjs.map +1 -1
  142. package/_mjs/Channel/internal/ChannelExecutor.mjs +16 -16
  143. package/_mjs/Channel/internal/ChannelExecutor.mjs.map +1 -1
  144. package/_mjs/Channel/internal/MergeDecision.mjs +7 -0
  145. package/_mjs/Channel/internal/MergeDecision.mjs.map +1 -1
  146. package/_mjs/Channel/internal/SingleProducerAsyncInput.mjs +20 -20
  147. package/_mjs/Channel/internal/SingleProducerAsyncInput.mjs.map +1 -1
  148. package/_mjs/Fiber/api/awaitAll.mjs +1 -1
  149. package/_mjs/Fiber/api/awaitAll.mjs.map +1 -1
  150. package/_mjs/Fiber/api/fromIO.mjs +1 -1
  151. package/_mjs/Fiber/api/fromIO.mjs.map +1 -1
  152. package/_mjs/Fiber/api/interruptFork.mjs +3 -3
  153. package/_mjs/Fiber/api/interruptFork.mjs.map +1 -1
  154. package/_mjs/Fiber/api/zipWith.mjs +1 -1
  155. package/_mjs/Fiber/api/zipWith.mjs.map +1 -1
  156. package/_mjs/FiberRef/api/locallyScoped.mjs +3 -3
  157. package/_mjs/FiberRef/api/locallyScoped.mjs.map +1 -1
  158. package/_mjs/FiberRef/constructors.mjs +1 -1
  159. package/_mjs/FiberRef/constructors.mjs.map +1 -1
  160. package/_mjs/Future/api.mjs +1 -1
  161. package/_mjs/Future/api.mjs.map +1 -1
  162. package/_mjs/Hub/internal.mjs +1 -1
  163. package/_mjs/Hub/internal.mjs.map +1 -1
  164. package/_mjs/IO/api/asyncIO.mjs +4 -4
  165. package/_mjs/IO/api/asyncIO.mjs.map +1 -1
  166. package/_mjs/IO/api/bracketExit.mjs +1 -1
  167. package/_mjs/IO/api/bracketExit.mjs.map +1 -1
  168. package/_mjs/IO/api/environment.mjs +5 -5
  169. package/_mjs/IO/api/environment.mjs.map +1 -1
  170. package/_mjs/IO/api/foreachC.mjs +3 -3
  171. package/_mjs/IO/api/foreachC.mjs.map +1 -1
  172. package/_mjs/IO/api/foreachExec.mjs +3 -3
  173. package/_mjs/IO/api/foreachExec.mjs.map +1 -1
  174. package/_mjs/IO/api/forkAll.mjs +1 -1
  175. package/_mjs/IO/api/forkAll.mjs.map +1 -1
  176. package/_mjs/IO/api/forkIn.mjs +1 -1
  177. package/_mjs/IO/api/forkIn.mjs.map +1 -1
  178. package/_mjs/IO/api/forkScoped.mjs +1 -1
  179. package/_mjs/IO/api/forkScoped.mjs.map +1 -1
  180. package/_mjs/IO/api/fulfill.mjs +1 -1
  181. package/_mjs/IO/api/fulfill.mjs.map +1 -1
  182. package/_mjs/IO/api/interrupt.mjs +4 -4
  183. package/_mjs/IO/api/interrupt.mjs.map +1 -1
  184. package/_mjs/IO/api/memoize.mjs +4 -4
  185. package/_mjs/IO/api/memoize.mjs.map +1 -1
  186. package/_mjs/IO/api/onTermination.mjs +13 -0
  187. package/_mjs/IO/api/onTermination.mjs.map +1 -0
  188. package/_mjs/IO/api/raceFirst.mjs +1 -1
  189. package/_mjs/IO/api/raceFirst.mjs.map +1 -1
  190. package/_mjs/IO/api/repeat.mjs +2 -2
  191. package/_mjs/IO/api/repeat.mjs.map +1 -1
  192. package/_mjs/IO/api/retry.mjs +2 -2
  193. package/_mjs/IO/api/retry.mjs.map +1 -1
  194. package/_mjs/IO/api/schedule.mjs +2 -2
  195. package/_mjs/IO/api/schedule.mjs.map +1 -1
  196. package/_mjs/IO/api/timeout.mjs +3 -3
  197. package/_mjs/IO/api/timeout.mjs.map +1 -1
  198. package/_mjs/IO/api/zipC.mjs +5 -5
  199. package/_mjs/IO/api/zipC.mjs.map +1 -1
  200. package/_mjs/IO/api.mjs +4 -4
  201. package/_mjs/IO/api.mjs.map +1 -1
  202. package/_mjs/IO.mjs +1 -0
  203. package/_mjs/IO.mjs.map +1 -1
  204. package/_mjs/Layer/MemoMap.mjs +24 -24
  205. package/_mjs/Layer/MemoMap.mjs.map +1 -1
  206. package/_mjs/Layer/api.mjs +4 -4
  207. package/_mjs/Layer/api.mjs.map +1 -1
  208. package/_mjs/Ref/DerivedAll.mjs +1 -1
  209. package/_mjs/Ref/DerivedAll.mjs.map +1 -1
  210. package/_mjs/Ref/Synchronized/api.mjs +3 -3
  211. package/_mjs/Ref/Synchronized/api.mjs.map +1 -1
  212. package/_mjs/Ref/Synchronized/constructors.mjs +3 -3
  213. package/_mjs/Ref/Synchronized/constructors.mjs.map +1 -1
  214. package/_mjs/Ref/Synchronized/definition.mjs +3 -3
  215. package/_mjs/Ref/Synchronized/definition.mjs.map +1 -1
  216. package/_mjs/Ref/api/modify.mjs +10 -10
  217. package/_mjs/Ref/api/modify.mjs.map +1 -1
  218. package/_mjs/STM/api.mjs +13 -6
  219. package/_mjs/STM/api.mjs.map +1 -1
  220. package/_mjs/Scope/ReleaseMap/api/releaseAll.mjs +1 -1
  221. package/_mjs/Scope/ReleaseMap/api/releaseAll.mjs.map +1 -1
  222. package/_mjs/Scope/ReleaseMap/api.mjs +13 -13
  223. package/_mjs/Scope/ReleaseMap/api.mjs.map +1 -1
  224. package/_mjs/ScopedRef/api.mjs +1 -1
  225. package/_mjs/ScopedRef/api.mjs.map +1 -1
  226. package/_mjs/Sink/api.mjs +1287 -37
  227. package/_mjs/Sink/api.mjs.map +1 -1
  228. package/_mjs/Stream/api.mjs +42 -42
  229. package/_mjs/Stream/api.mjs.map +1 -1
  230. package/_mjs/TReentrantLock/api.mjs +243 -0
  231. package/_mjs/TReentrantLock/api.mjs.map +1 -0
  232. package/_mjs/TReentrantLock/definition.mjs +102 -0
  233. package/_mjs/TReentrantLock/definition.mjs.map +1 -0
  234. package/_mjs/TReentrantLock.mjs +4 -0
  235. package/_mjs/TReentrantLock.mjs.map +1 -0
  236. package/_mjs/TRef/api.mjs +7 -7
  237. package/_mjs/TRef/api.mjs.map +1 -1
  238. package/_mjs/collection/immutable/Conc/dropUntilIO.mjs +26 -0
  239. package/_mjs/collection/immutable/Conc/dropUntilIO.mjs.map +1 -0
  240. package/_mjs/collection/immutable/Conc/dropWhileIO.mjs +26 -0
  241. package/_mjs/collection/immutable/Conc/dropWhileIO.mjs.map +1 -0
  242. package/_mjs/collection/immutable/Conc/filterIO.mjs +22 -0
  243. package/_mjs/collection/immutable/Conc/filterIO.mjs.map +1 -0
  244. package/_mjs/collection/immutable/Conc.mjs +1 -0
  245. package/_mjs/collection/immutable/Conc.mjs.map +1 -1
  246. package/_mjs/data/Exit/foreachIO.mjs +1 -1
  247. package/_mjs/data/Exit/foreachIO.mjs.map +1 -1
  248. package/_src/Channel/api.ts +98 -11
  249. package/_src/Channel/internal/MergeDecision.ts +15 -0
  250. package/_src/IO/api/onTermination.ts +17 -0
  251. package/_src/IO/api.ts +1 -1
  252. package/_src/IO.ts +1 -0
  253. package/_src/STM/api.ts +9 -0
  254. package/_src/Sink/api.ts +1725 -36
  255. package/_src/TFuture/definition.ts +1 -1
  256. package/_src/TReentrantLock/api.ts +193 -0
  257. package/_src/TReentrantLock/definition.ts +86 -0
  258. package/_src/TReentrantLock.ts +4 -0
  259. package/_src/collection/immutable/Conc/dropUntilIO.ts +24 -0
  260. package/_src/collection/immutable/Conc/dropWhileIO.ts +26 -0
  261. package/_src/collection/immutable/Conc/filterIO.ts +16 -0
  262. package/_src/collection/immutable/Conc.ts +1 -0
  263. package/collection/immutable/Conc/dropUntilIO.d.ts +7 -0
  264. package/collection/immutable/Conc/dropWhileIO.d.ts +7 -0
  265. package/collection/immutable/Conc/filterIO.d.ts +7 -0
  266. package/collection/immutable/Conc.d.ts +1 -0
  267. 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,4 @@
1
+ // codegen:start { preset: barrel, include: TReentrantLock/*.ts }
2
+ export * from "./TReentrantLock/api.mjs";
3
+ export * from "./TReentrantLock/definition.mjs";
4
+ //# sourceMappingURL=TReentrantLock.mjs.map
@@ -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/io/STM/api";
6
- import * as tsplus_module_6 from "@fncts/base/data/Either/constructors";
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 tsplus_module_5.absolve(self.use((getEither, setEither, value, _atomic) => modify_1(value, s => tsplus_module_3.match_(getEither(s), e => [tsplus_module_6.left(e), s], a1 => {
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 => [tsplus_module_6.left(e), s], s => [tsplus_module_6.right(b), s]);
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 tsplus_module_5.absolve(self.use((getEither, setEither, value, atomic) => modify_1(value, s => tsplus_module_3.match_(getEither(s), e => [tsplus_module_6.left(e), s], a1 => {
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 => [tsplus_module_6.left(e), s], s => [tsplus_module_6.right(b), s]);
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 tsplus_module_5.absolve(self.use((_getEither, setEither, value, _atomic) => modify_1(value, s => tsplus_module_3.match_(setEither(a)(s), e => [tsplus_module_6.left(e), s], s => [tsplus_module_6.right(undefined), s]))));
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
  }
@@ -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","tsplus_module_6","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]}
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,4 +1,5 @@
1
1
  // codegen:start { preset: barrel, include: ./Conc/*.ts }
2
+ export * from "./Conc/filterIO.mjs";
2
3
  export * from "./Conc/findIO.mjs";
3
4
  export * from "./Conc/mapIO.mjs";
4
5
  export * from "./Conc/takeWhileIO.mjs";
@@ -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]}
@@ -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.Channel toQueue
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, any> {
1182
- return readWithCause(
1183
- (in_: Elem) => Channel.fromIO(queue.offer(Either.right(in_))).apSecond(toQueue(queue)),
1184
- (cause: Cause<Err>) => Channel.fromIO(queue.offer(Either.left(Exit.failCause(cause)))),
1185
- (done: Done) => Channel.fromIO(queue.offer(Either.left(Exit.succeed(done)))),
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
  *