@fncts/io 0.0.23 → 0.0.25

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.
Files changed (223) hide show
  1. package/FiberRef/api.d.ts +0 -63
  2. package/FiberRef/operations.d.ts +64 -0
  3. package/FiberRef.d.ts +1 -0
  4. package/FiberRefs/api.d.ts +6 -1
  5. package/FiberRefs.d.ts +0 -1
  6. package/IO/api/daemonChildren.d.ts +6 -0
  7. package/IO/api/descriptor.d.ts +12 -0
  8. package/IO/api/disconnect.d.ts +17 -0
  9. package/IO/api/fork.d.ts +4 -0
  10. package/IO/api/forkDaemon.d.ts +10 -0
  11. package/IO/api/interrupt.d.ts +1 -20
  12. package/IO/api/race.d.ts +7 -1
  13. package/IO/api/raceWith.d.ts +17 -0
  14. package/IO/api/transplant.d.ts +13 -0
  15. package/IO/api.d.ts +1 -12
  16. package/IO.d.ts +6 -1
  17. package/RefSubject/Atomic.d.ts +1 -1
  18. package/_cjs/Cached/api.cjs +1 -1
  19. package/_cjs/Channel/api/mergeAllWith.cjs +1 -1
  20. package/_cjs/Channel/api/mergeWith.cjs +17 -16
  21. package/_cjs/Channel/api/mergeWith.cjs.map +1 -1
  22. package/_cjs/Channel/api.cjs +1 -3
  23. package/_cjs/Channel/api.cjs.map +1 -1
  24. package/_cjs/Fiber/FiberRuntime.cjs +16 -17
  25. package/_cjs/Fiber/FiberRuntime.cjs.map +1 -1
  26. package/_cjs/FiberRef/api/locallyScoped.cjs +1 -1
  27. package/_cjs/FiberRef/api/locallyScopedWith.cjs +1 -1
  28. package/_cjs/FiberRef/api.cjs +0 -124
  29. package/_cjs/FiberRef/api.cjs.map +1 -1
  30. package/_cjs/FiberRef/constructors.cjs +1 -1
  31. package/_cjs/FiberRef/operations.cjs +130 -0
  32. package/_cjs/FiberRef/operations.cjs.map +1 -0
  33. package/_cjs/FiberRef.cjs +11 -0
  34. package/_cjs/FiberRef.cjs.map +1 -1
  35. package/_cjs/FiberRefs/api.cjs +90 -0
  36. package/_cjs/FiberRefs/api.cjs.map +1 -1
  37. package/_cjs/FiberRefs.cjs +0 -11
  38. package/_cjs/FiberRefs.cjs.map +1 -1
  39. package/_cjs/Future/api.cjs +1 -3
  40. package/_cjs/Future/api.cjs.map +1 -1
  41. package/_cjs/IO/api/asyncIO.cjs +1 -3
  42. package/_cjs/IO/api/asyncIO.cjs.map +1 -1
  43. package/_cjs/IO/api/bracketExit.cjs +1 -3
  44. package/_cjs/IO/api/bracketExit.cjs.map +1 -1
  45. package/_cjs/IO/api/clockWith.cjs +1 -1
  46. package/_cjs/IO/api/concurrency.cjs +1 -1
  47. package/_cjs/IO/api/consoleWith.cjs +1 -1
  48. package/_cjs/IO/api/daemonChildren.cjs +19 -0
  49. package/_cjs/IO/api/daemonChildren.cjs.map +1 -0
  50. package/_cjs/IO/api/descriptor.cjs +30 -0
  51. package/_cjs/IO/api/descriptor.cjs.map +1 -0
  52. package/_cjs/IO/api/disconnect.cjs +31 -0
  53. package/_cjs/IO/api/disconnect.cjs.map +1 -0
  54. package/_cjs/IO/api/environment.cjs +1 -1
  55. package/_cjs/IO/api/foreachConcurrent.cjs +19 -20
  56. package/_cjs/IO/api/foreachConcurrent.cjs.map +1 -1
  57. package/_cjs/IO/api/fork.cjs +8 -3
  58. package/_cjs/IO/api/fork.cjs.map +1 -1
  59. package/_cjs/IO/api/forkDaemon.cjs +21 -0
  60. package/_cjs/IO/api/forkDaemon.cjs.map +1 -0
  61. package/_cjs/IO/api/forkIn.cjs +2 -4
  62. package/_cjs/IO/api/forkIn.cjs.map +1 -1
  63. package/_cjs/IO/api/forkScoped.cjs +2 -4
  64. package/_cjs/IO/api/forkScoped.cjs.map +1 -1
  65. package/_cjs/IO/api/fulfill.cjs +1 -3
  66. package/_cjs/IO/api/fulfill.cjs.map +1 -1
  67. package/_cjs/IO/api/interrupt.cjs +8 -59
  68. package/_cjs/IO/api/interrupt.cjs.map +1 -1
  69. package/_cjs/IO/api/race.cjs +24 -12
  70. package/_cjs/IO/api/race.cjs.map +1 -1
  71. package/_cjs/IO/api/{core-scope.cjs → raceWith.cjs} +15 -56
  72. package/_cjs/IO/api/raceWith.cjs.map +1 -0
  73. package/_cjs/IO/api/randomWith.cjs +1 -1
  74. package/_cjs/IO/api/supervised.cjs +1 -1
  75. package/_cjs/IO/api/transplant.cjs +31 -0
  76. package/_cjs/IO/api/transplant.cjs.map +1 -0
  77. package/_cjs/IO/api/zipConcurrent.cjs +5 -6
  78. package/_cjs/IO/api/zipConcurrent.cjs.map +1 -1
  79. package/_cjs/IO/api.cjs +52 -70
  80. package/_cjs/IO/api.cjs.map +1 -1
  81. package/_cjs/IO.cjs +59 -4
  82. package/_cjs/IO.cjs.map +1 -1
  83. package/_cjs/Layer/MemoMap.cjs +1 -3
  84. package/_cjs/Layer/MemoMap.cjs.map +1 -1
  85. package/_cjs/RefSubject/Atomic.cjs +2 -2
  86. package/_cjs/RefSubject/Atomic.cjs.map +1 -1
  87. package/_cjs/Reloadable/constructors.cjs +1 -1
  88. package/_cjs/Reloadable/definition.cjs +1 -1
  89. package/_cjs/STM/api/atomically.cjs +2 -4
  90. package/_cjs/STM/api/atomically.cjs.map +1 -1
  91. package/_cjs/ScopedRef/api.cjs +2 -6
  92. package/_cjs/ScopedRef/api.cjs.map +1 -1
  93. package/_cjs/State/api.cjs +1 -1
  94. package/_cjs/Stream/api.cjs +137 -135
  95. package/_cjs/Stream/api.cjs.map +1 -1
  96. package/_cjs/TReentrantLock/api.cjs +2 -6
  97. package/_cjs/TReentrantLock/api.cjs.map +1 -1
  98. package/_cjs/TSemaphore/api.cjs +1 -3
  99. package/_cjs/TSemaphore/api.cjs.map +1 -1
  100. package/_mjs/Cached/api.mjs +1 -1
  101. package/_mjs/Channel/api/mergeAllWith.mjs +1 -1
  102. package/_mjs/Channel/api/mergeWith.mjs +17 -16
  103. package/_mjs/Channel/api/mergeWith.mjs.map +1 -1
  104. package/_mjs/Channel/api.mjs +1 -3
  105. package/_mjs/Channel/api.mjs.map +1 -1
  106. package/_mjs/Fiber/FiberRuntime.mjs +16 -17
  107. package/_mjs/Fiber/FiberRuntime.mjs.map +1 -1
  108. package/_mjs/FiberRef/api/locallyScoped.mjs +1 -1
  109. package/_mjs/FiberRef/api/locallyScopedWith.mjs +1 -1
  110. package/_mjs/FiberRef/api.mjs +0 -107
  111. package/_mjs/FiberRef/api.mjs.map +1 -1
  112. package/_mjs/FiberRef/constructors.mjs +1 -1
  113. package/_mjs/FiberRef/operations.mjs +109 -0
  114. package/_mjs/FiberRef/operations.mjs.map +1 -0
  115. package/_mjs/FiberRef.mjs +1 -0
  116. package/_mjs/FiberRef.mjs.map +1 -1
  117. package/_mjs/FiberRefs/api.mjs +89 -0
  118. package/_mjs/FiberRefs/api.mjs.map +1 -1
  119. package/_mjs/FiberRefs.mjs +0 -1
  120. package/_mjs/FiberRefs.mjs.map +1 -1
  121. package/_mjs/Future/api.mjs +1 -3
  122. package/_mjs/Future/api.mjs.map +1 -1
  123. package/_mjs/IO/api/asyncIO.mjs +1 -3
  124. package/_mjs/IO/api/asyncIO.mjs.map +1 -1
  125. package/_mjs/IO/api/bracketExit.mjs +1 -3
  126. package/_mjs/IO/api/bracketExit.mjs.map +1 -1
  127. package/_mjs/IO/api/clockWith.mjs +1 -1
  128. package/_mjs/IO/api/concurrency.mjs +1 -1
  129. package/_mjs/IO/api/consoleWith.mjs +1 -1
  130. package/_mjs/IO/api/daemonChildren.mjs +11 -0
  131. package/_mjs/IO/api/daemonChildren.mjs.map +1 -0
  132. package/_mjs/IO/api/descriptor.mjs +20 -0
  133. package/_mjs/IO/api/descriptor.mjs.map +1 -0
  134. package/_mjs/IO/api/disconnect.mjs +23 -0
  135. package/_mjs/IO/api/disconnect.mjs.map +1 -0
  136. package/_mjs/IO/api/environment.mjs +1 -1
  137. package/_mjs/IO/api/foreachConcurrent.mjs +19 -20
  138. package/_mjs/IO/api/foreachConcurrent.mjs.map +1 -1
  139. package/_mjs/IO/api/fork.mjs +6 -2
  140. package/_mjs/IO/api/fork.mjs.map +1 -1
  141. package/_mjs/IO/api/forkDaemon.mjs +13 -0
  142. package/_mjs/IO/api/forkDaemon.mjs.map +1 -0
  143. package/_mjs/IO/api/forkIn.mjs +2 -4
  144. package/_mjs/IO/api/forkIn.mjs.map +1 -1
  145. package/_mjs/IO/api/forkScoped.mjs +2 -4
  146. package/_mjs/IO/api/forkScoped.mjs.map +1 -1
  147. package/_mjs/IO/api/fulfill.mjs +1 -3
  148. package/_mjs/IO/api/fulfill.mjs.map +1 -1
  149. package/_mjs/IO/api/interrupt.mjs +6 -55
  150. package/_mjs/IO/api/interrupt.mjs.map +1 -1
  151. package/_mjs/IO/api/race.mjs +22 -12
  152. package/_mjs/IO/api/race.mjs.map +1 -1
  153. package/_mjs/IO/api/raceWith.mjs +59 -0
  154. package/_mjs/IO/api/raceWith.mjs.map +1 -0
  155. package/_mjs/IO/api/randomWith.mjs +1 -1
  156. package/_mjs/IO/api/supervised.mjs +1 -1
  157. package/_mjs/IO/api/transplant.mjs +23 -0
  158. package/_mjs/IO/api/transplant.mjs.map +1 -0
  159. package/_mjs/IO/api/zipConcurrent.mjs +5 -6
  160. package/_mjs/IO/api/zipConcurrent.mjs.map +1 -1
  161. package/_mjs/IO/api.mjs +51 -67
  162. package/_mjs/IO/api.mjs.map +1 -1
  163. package/_mjs/IO.mjs +6 -1
  164. package/_mjs/IO.mjs.map +1 -1
  165. package/_mjs/Layer/MemoMap.mjs +1 -3
  166. package/_mjs/Layer/MemoMap.mjs.map +1 -1
  167. package/_mjs/RefSubject/Atomic.mjs +1 -1
  168. package/_mjs/RefSubject/Atomic.mjs.map +1 -1
  169. package/_mjs/Reloadable/constructors.mjs +1 -1
  170. package/_mjs/Reloadable/definition.mjs +1 -1
  171. package/_mjs/STM/api/atomically.mjs +2 -4
  172. package/_mjs/STM/api/atomically.mjs.map +1 -1
  173. package/_mjs/ScopedRef/api.mjs +2 -6
  174. package/_mjs/ScopedRef/api.mjs.map +1 -1
  175. package/_mjs/State/api.mjs +1 -1
  176. package/_mjs/Stream/api.mjs +137 -135
  177. package/_mjs/Stream/api.mjs.map +1 -1
  178. package/_mjs/TReentrantLock/api.mjs +2 -6
  179. package/_mjs/TReentrantLock/api.mjs.map +1 -1
  180. package/_mjs/TSemaphore/api.mjs +1 -3
  181. package/_mjs/TSemaphore/api.mjs.map +1 -1
  182. package/_src/Channel/api.ts +1 -1
  183. package/_src/FiberRef/api.ts +0 -114
  184. package/_src/FiberRef/operations.ts +115 -0
  185. package/_src/FiberRef.ts +1 -0
  186. package/_src/FiberRefs/api.ts +72 -0
  187. package/_src/FiberRefs.ts +0 -1
  188. package/_src/Future/api.ts +1 -1
  189. package/_src/IO/api/asyncIO.ts +1 -1
  190. package/_src/IO/api/bracketExit.ts +1 -1
  191. package/_src/IO/api/daemonChildren.ts +6 -0
  192. package/_src/IO/api/descriptor.ts +14 -0
  193. package/_src/IO/api/disconnect.ts +25 -0
  194. package/_src/IO/api/foreachConcurrent.ts +1 -1
  195. package/_src/IO/api/fork.ts +3 -0
  196. package/_src/IO/api/forkDaemon.ts +12 -0
  197. package/_src/IO/api/forkIn.ts +1 -1
  198. package/_src/IO/api/forkScoped.ts +1 -3
  199. package/_src/IO/api/fulfill.ts +1 -1
  200. package/_src/IO/api/interrupt.ts +5 -56
  201. package/_src/IO/api/race.ts +18 -8
  202. package/_src/IO/api/{core-scope.ts → raceWith.ts} +2 -44
  203. package/_src/IO/api/transplant.ts +19 -0
  204. package/_src/IO/api/zipConcurrent.ts +1 -1
  205. package/_src/IO/api.ts +0 -15
  206. package/_src/IO.ts +6 -1
  207. package/_src/Layer/MemoMap.ts +1 -1
  208. package/_src/RefSubject/Atomic.ts +1 -1
  209. package/_src/STM/api/atomically.ts +1 -1
  210. package/_src/ScopedRef/api.ts +2 -2
  211. package/_src/TReentrantLock/api.ts +2 -2
  212. package/_src/TSemaphore/api.ts +1 -1
  213. package/package.json +1 -1
  214. package/FiberRefs/join.d.ts +0 -9
  215. package/IO/api/core-scope.d.ts +0 -43
  216. package/_cjs/FiberRefs/join.cjs +0 -104
  217. package/_cjs/FiberRefs/join.cjs.map +0 -1
  218. package/_cjs/IO/api/core-scope.cjs.map +0 -1
  219. package/_mjs/FiberRefs/join.mjs +0 -96
  220. package/_mjs/FiberRefs/join.mjs.map +0 -1
  221. package/_mjs/IO/api/core-scope.mjs +0 -97
  222. package/_mjs/IO/api/core-scope.mjs.map +0 -1
  223. package/_src/FiberRefs/join.ts +0 -71
@@ -21,7 +21,7 @@ export function atomically<R, E, A>(stm: STM<R, E, A>, __tsplusTrace?: string):
21
21
  const id = TxnId.make();
22
22
  const state = new AtomicReference<CommitState<E, A>>(CommitState.Running);
23
23
  const async = IO.async(tryCommitAsync(result.journal, fiberId, stm, id, state, r, scheduler));
24
- return IO.uninterruptibleMask(({ restore }) =>
24
+ return IO.uninterruptibleMask((restore) =>
25
25
  restore(async).catchAllCause((cause) => {
26
26
  state.compareAndSet(CommitState.Running, CommitState.Interrupted);
27
27
  const newState = state.get;
@@ -2,7 +2,7 @@
2
2
  * @tsplus static fncts.io.ScopedRefOps fromAcquire
3
3
  */
4
4
  export function fromAcquire<R, E, A>(acquire: IO<R, E, A>, __tsplusTrace?: string): IO<R | Scope, E, ScopedRef<A>> {
5
- return IO.uninterruptibleMask(({ restore }) =>
5
+ return IO.uninterruptibleMask((restore) =>
6
6
  Do((_) => {
7
7
  const newScope = _(Scope.make);
8
8
  const a = _(
@@ -23,7 +23,7 @@ class Synch<A> extends ScopedRef<A> {
23
23
  close: UIO<void> = this.ref.get.flatMap(([scope, _]) => scope.close(Exit.unit));
24
24
  set<R, E>(acquire: IO<R, E, A>, __tsplusTrace?: string): IO<Exclude<R, Scope>, E, void> {
25
25
  return this.ref.modifyIO(([oldScope, a]) =>
26
- IO.uninterruptibleMask(({ restore }) =>
26
+ IO.uninterruptibleMask((restore) =>
27
27
  Do((_) => {
28
28
  const newScope = _(Scope.make);
29
29
  const exit = _(restore(acquire.provideSomeService(newScope, Scope.Tag)).result);
@@ -92,7 +92,7 @@ export function releaseWrite(self: TReentrantLock, __tsplusTrace?: string): USTM
92
92
  export function withReadLock<R, E, A>(io: IO<R, E, A>, __tsplusTrace?: string) {
93
93
  return (self: TReentrantLock): IO<R, E, A> => {
94
94
  return IO.uninterruptibleMask(
95
- ({ restore }) => restore(self.acquireRead.commit) > restore(io).ensuring(self.releaseRead.commit),
95
+ (restore) => restore(self.acquireRead.commit) > restore(io).ensuring(self.releaseRead.commit),
96
96
  );
97
97
  };
98
98
  }
@@ -103,7 +103,7 @@ export function withReadLock<R, E, A>(io: IO<R, E, A>, __tsplusTrace?: string) {
103
103
  export function withWriteLock<R, E, A>(io: IO<R, E, A>, __tsplusTrace?: string) {
104
104
  return (self: TReentrantLock): IO<R, E, A> => {
105
105
  return IO.uninterruptibleMask(
106
- ({ restore }) => restore(self.acquireWrite.commit) > restore(io).ensuring(self.releaseWrite.commit),
106
+ (restore) => restore(self.acquireWrite.commit) > restore(io).ensuring(self.releaseWrite.commit),
107
107
  );
108
108
  };
109
109
  }
@@ -56,7 +56,7 @@ export function releaseN(n: number, __tsplusTrace?: string) {
56
56
  export function withPermits(self: TSemaphore, __tsplusTrace?: string) {
57
57
  return (n: number) =>
58
58
  <R, E, A>(io: IO<R, E, A>) =>
59
- IO.uninterruptibleMask(({ restore }) =>
59
+ IO.uninterruptibleMask((restore) =>
60
60
  restore(self.acquireN(n).commit).zipRight(restore(io).ensuring(self.releaseN(n).commit)),
61
61
  );
62
62
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fncts/io",
3
- "version": "0.0.23",
3
+ "version": "0.0.25",
4
4
  "dependencies": {
5
5
  "@fncts/base": "0.0.23",
6
6
  "@fncts/transformers": "0.0.4",
@@ -1,9 +0,0 @@
1
- import { FiberId } from "@fncts/base/data/FiberId/definition";
2
- import { FiberRefs } from "@fncts/io/FiberRefs";
3
- import { Cons, List } from "@fncts/base/collection/immutable/List/definition";
4
- import { FiberRef } from "@fncts/io/FiberRef/definition";
5
- /**
6
- * @tsplus pipeable fncts.io.FiberRefs join
7
- * @tsplus location "@fncts/io/FiberRefs/join"
8
- */
9
- export declare function join(fiberId: FiberId.Runtime, that: FiberRefs): (self: FiberRefs) => FiberRefs;
@@ -1,43 +0,0 @@
1
- import { Lazy } from "@fncts/base/data/function/definition";
2
- import { Exit } from "@fncts/base/data/Exit/definition";
3
- import { Fiber } from "@fncts/io/Fiber/definition";
4
- import { URIO } from "@fncts/io/IO/definition";
5
- import type { FiberRuntime } from "@fncts/io/Fiber/FiberRuntime";
6
- import { IO } from "../definition.js";
7
- /**
8
- * @tsplus getter fncts.io.IO daemonChildren
9
- * @tsplus location "@fncts/io/IO/api/core-scope"
10
- */
11
- export declare function daemonChildren<R, E, A>(self: IO<R, E, A>, __tsplusTrace?: string): IO<R, E, A>;
12
- /**
13
- * @tsplus pipeable fncts.io.IO raceFibersWith
14
- * @tsplus location "@fncts/io/IO/api/core-scope"
15
- */
16
- export declare function raceFibersWith<R, E, A, R1, E1, B, R2, E2, C, R3, E3, D>(right: Lazy<IO<R1, E1, B>>, leftWins: (winner: FiberRuntime<E, A>, loser: FiberRuntime<E1, B>) => IO<R2, E2, C>, rightWins: (winner: FiberRuntime<E1, B>, loser: FiberRuntime<E, A>) => IO<R3, E3, D>, __tsplusTrace?: string): (left: IO<R, E, A>) => IO<R | R1 | R2 | R3, E2 | E3, C | D>;
17
- /**
18
- * Returns an effect that races this effect with the specified effect, calling
19
- * the specified finisher as soon as one result or the other has been computed.
20
- * @tsplus pipeable fncts.io.IO raceWith
21
- * @tsplus location "@fncts/io/IO/api/core-scope"
22
- */
23
- export declare function raceWith<R, E, A, R1, E1, A1, R2, E2, A2, R3, E3, A3>(right: Lazy<IO<R1, E1, A1>>, leftWins: (exit: Exit<E, A>, fiber: Fiber<E1, A1>) => IO<R2, E2, A2>, rightWins: (exit: Exit<E1, A1>, fiber: Fiber<E, A>) => IO<R3, E3, A3>, __tsplusTrace?: string): (left: IO<R, E, A>) => IO<R | R1 | R2 | R3, E2 | E3, A2 | A3>;
24
- export type Grafter = <R, E, A>(effect: IO<R, E, A>) => IO<R, E, A>;
25
- /**
26
- * Transplants specified effects so that when those effects fork other
27
- * effects, the forked effects will be governed by the scope of the
28
- * fiber that executes this effect.
29
- *
30
- * This can be used to "graft" deep grandchildren onto a higher-level
31
- * scope, effectively extending their lifespans into the parent scope.
32
- * @tsplus static fncts.io.IOOps transplant
33
- * @tsplus location "@fncts/io/IO/api/core-scope"
34
- */
35
- export declare function transplant<R, E, A>(f: (_: Grafter) => IO<R, E, A>, __tsplusTrace?: string): IO<R, E, A>;
36
- /**
37
- * Forks the effect into a new fiber attached to the global scope. Because the
38
- * new fiber is attached to the global scope, when the fiber executing the
39
- * returned effect terminates, the forked fiber will continue running.
40
- * @tsplus getter fncts.io.IO forkDaemon
41
- * @tsplus location "@fncts/io/IO/api/core-scope"
42
- */
43
- export declare function forkDaemon<R, E, A>(ma: IO<R, E, A>, __tsplusTrace?: string): URIO<R, FiberRuntime<E, A>>;
@@ -1,104 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.join = join;
7
- var tsplus_module_1 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/FiberRefs"));
8
- var tsplus_module_2 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Equatable/api"));
9
- var tsplus_module_3 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/FiberRef/api"));
10
- var tsplus_module_4 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/collection/immutable/List/constructors"));
11
- var tsplus_module_5 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/collection/immutable/HashMap/api"));
12
- var tsplus_module_6 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/collection/immutable/List/definition"));
13
- var tsplus_module_7 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Maybe/destructors"));
14
- var tsplus_module_8 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/number/instances"));
15
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
16
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
- /**
18
- * @tsplus pipeable fncts.io.FiberRefs join
19
- */
20
- function join(fiberId, that) {
21
- return self => {
22
- const parentFiberRefs = tsplus_module_1.FiberRefs.reverseGet(self);
23
- const childFiberRefs = tsplus_module_1.FiberRefs.reverseGet(that);
24
- const fiberRefLocals = tsplus_module_5.foldLeftWithIndex(parentFiberRefs, (ref, parentFiberRefs, childStack) => {
25
- const childValue = childStack.head[1];
26
- if (tsplus_module_2.strictEquals(childStack.head[0], fiberId)) {
27
- return parentFiberRefs;
28
- }
29
- return tsplus_module_7.match(() => {
30
- if (tsplus_module_2.strictEquals(childValue, tsplus_module_3.initial(ref))) return parentFiberRefs;
31
- return tsplus_module_5.set(ref, tsplus_module_4.cons([fiberId, childValue]))(parentFiberRefs);
32
- }, parentStack => {
33
- const [ancestor, wasModified] = findAncestor(ref, parentStack, childStack);
34
- if (!wasModified) return parentFiberRefs;
35
- const patch = tsplus_module_3.diff(ref)(ancestor, childValue);
36
- const oldValue = parentStack.head[1];
37
- const newValue = tsplus_module_3.join(oldValue, tsplus_module_3.patch(ref)(patch)(oldValue))(ref);
38
- if (oldValue === newValue) return parentFiberRefs;
39
- let newStack;
40
- if (tsplus_module_6.isEmpty(parentStack)) {
41
- newStack = tsplus_module_4.cons([fiberId, newValue]);
42
- } else {
43
- const [parentFiberId] = parentStack.head;
44
- if (tsplus_module_2.strictEquals(parentFiberId, fiberId)) {
45
- newStack = tsplus_module_4.cons([parentFiberId, newValue], parentStack.tail);
46
- } else {
47
- newStack = tsplus_module_4.cons([fiberId, newValue], parentStack);
48
- }
49
- }
50
- return tsplus_module_5.set(ref, newStack)(parentFiberRefs);
51
- })(tsplus_module_5.get(ref)(parentFiberRefs));
52
- })(childFiberRefs);
53
- return tsplus_module_1.FiberRefs.get(fiberRefLocals);
54
- };
55
- }
56
- function compareFiberId(left, right) {
57
- const compare = tsplus_module_8.Ord.compare(right.startTime)(left.startTime);
58
- return compare === 0 ? tsplus_module_8.Ord.compare(right.id)(left.id) : compare;
59
- }
60
- /**
61
- * @tsplus tailRec
62
- */
63
- function findAncestor(ref, parentStack, childStack, childModified = false) {
64
- var ref_1 = ref,
65
- parentStack_1 = parentStack,
66
- childStack_1 = childStack,
67
- childModified_1 = childModified;
68
- var ref_2 = ref,
69
- parentStack_2 = parentStack,
70
- childStack_2 = childStack,
71
- childModified_2 = childModified;
72
- while (1) {
73
- if (tsplus_module_6.isNonEmpty(parentStack_1) && tsplus_module_6.isNonEmpty(childStack_1)) {
74
- const [parentFiberId] = parentStack_1.head;
75
- const [childFiberId, childValue] = childStack_1.head;
76
- const compare = compareFiberId(parentFiberId, childFiberId);
77
- if (compare < 0) {
78
- ref_2 = ref_1;
79
- parentStack_2 = parentStack_1;
80
- childStack_2 = childStack_1.tail;
81
- childModified_2 = true;
82
- ref_1 = ref_2;
83
- parentStack_1 = parentStack_2;
84
- childStack_1 = childStack_2;
85
- childModified_1 = childModified_2;
86
- continue;
87
- } else if (compare > 0) {
88
- ref_2 = ref_1;
89
- parentStack_2 = parentStack_1.tail;
90
- childStack_2 = childStack_1;
91
- childModified_2 = childModified_1;
92
- ref_1 = ref_2;
93
- parentStack_1 = parentStack_2;
94
- childStack_1 = childStack_2;
95
- childModified_1 = childModified_2;
96
- continue;
97
- } else {
98
- return [childValue, childModified_1];
99
- }
100
- }
101
- return [tsplus_module_3.initial(ref_1), true];
102
- }
103
- }
104
- //# sourceMappingURL=join.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"join.cjs","mappings":"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","names":["join","fiberId","that","self","parentFiberRefs","tsplus_module_1","reverseGet","childFiberRefs","fiberRefLocals","tsplus_module_5","ref","childStack","childValue","head","tsplus_module_7","tsplus_module_2","tsplus_module_4","parentStack","ancestor","wasModified","findAncestor","patch","tsplus_module_3","oldValue","newValue","newStack","tsplus_module_6","parentFiberId","tail","get","compareFiberId","left","right","compare","tsplus_module_8","startTime","id","childModified","parentStack_1","childStack_1","childModified_1","parentStack_2","childStack_2","childModified_2","childFiberId"],"sourceRoot":"","sources":["../../_src/FiberRefs/join.ts"],"sourcesContent":[null]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"core-scope.cjs","mappings":"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","names":["daemonChildren","raceFibersWith","self","__tsplusTrace","tsplus_module_4","tsplus_module_2","right","leftWins","rightWins","left","tsplus_module_5","parentState","parentStatus","right0","parentRuntimeFlags","runtimeFlags","complete","winner","loser","cont","ab","cb","compareAndSet","raceIndicator","AtomicBoolean","leftFiber","rightFiber","setFiberRef","scope","addObserver","startFork","raceWith","raceFibersWith_1","exit","_tag","inheritAll","await","transplant","f","fiberState","scopeOverride","getFiberRef","tsplus_module_6","forkDaemon","ma"],"sourceRoot":"","sources":["../../../_src/IO/api/core-scope.ts"],"sourcesContent":[null]}
@@ -1,96 +0,0 @@
1
- import * as tsplus_module_1 from "@fncts/io/FiberRefs";
2
- import * as tsplus_module_2 from "@fncts/base/data/Equatable/api";
3
- import * as tsplus_module_3 from "@fncts/io/FiberRef/api";
4
- import * as tsplus_module_4 from "@fncts/base/collection/immutable/List/constructors";
5
- import * as tsplus_module_5 from "@fncts/base/collection/immutable/HashMap/api";
6
- import * as tsplus_module_6 from "@fncts/base/collection/immutable/List/definition";
7
- import * as tsplus_module_7 from "@fncts/base/data/Maybe/destructors";
8
- import * as tsplus_module_8 from "@fncts/base/data/number/instances";
9
- /**
10
- * @tsplus pipeable fncts.io.FiberRefs join
11
- */
12
- export function join(fiberId, that) {
13
- return self => {
14
- const parentFiberRefs = tsplus_module_1.FiberRefs.reverseGet(self);
15
- const childFiberRefs = tsplus_module_1.FiberRefs.reverseGet(that);
16
- const fiberRefLocals = tsplus_module_5.foldLeftWithIndex(parentFiberRefs, (ref, parentFiberRefs, childStack) => {
17
- const childValue = childStack.head[1];
18
- if (tsplus_module_2.strictEquals(childStack.head[0], fiberId)) {
19
- return parentFiberRefs;
20
- }
21
- return tsplus_module_7.match(() => {
22
- if (tsplus_module_2.strictEquals(childValue, tsplus_module_3.initial(ref))) return parentFiberRefs;
23
- return tsplus_module_5.set(ref, tsplus_module_4.cons([fiberId, childValue]))(parentFiberRefs);
24
- }, parentStack => {
25
- const [ancestor, wasModified] = findAncestor(ref, parentStack, childStack);
26
- if (!wasModified) return parentFiberRefs;
27
- const patch = tsplus_module_3.diff(ref)(ancestor, childValue);
28
- const oldValue = parentStack.head[1];
29
- const newValue = tsplus_module_3.join(oldValue, tsplus_module_3.patch(ref)(patch)(oldValue))(ref);
30
- if (oldValue === newValue) return parentFiberRefs;
31
- let newStack;
32
- if (tsplus_module_6.isEmpty(parentStack)) {
33
- newStack = tsplus_module_4.cons([fiberId, newValue]);
34
- } else {
35
- const [parentFiberId] = parentStack.head;
36
- if (tsplus_module_2.strictEquals(parentFiberId, fiberId)) {
37
- newStack = tsplus_module_4.cons([parentFiberId, newValue], parentStack.tail);
38
- } else {
39
- newStack = tsplus_module_4.cons([fiberId, newValue], parentStack);
40
- }
41
- }
42
- return tsplus_module_5.set(ref, newStack)(parentFiberRefs);
43
- })(tsplus_module_5.get(ref)(parentFiberRefs));
44
- })(childFiberRefs);
45
- return tsplus_module_1.FiberRefs.get(fiberRefLocals);
46
- };
47
- }
48
- function compareFiberId(left, right) {
49
- const compare = tsplus_module_8.Ord.compare(right.startTime)(left.startTime);
50
- return compare === 0 ? tsplus_module_8.Ord.compare(right.id)(left.id) : compare;
51
- }
52
- /**
53
- * @tsplus tailRec
54
- */
55
- function findAncestor(ref, parentStack, childStack, childModified = false) {
56
- var ref_1 = ref,
57
- parentStack_1 = parentStack,
58
- childStack_1 = childStack,
59
- childModified_1 = childModified;
60
- var ref_2 = ref,
61
- parentStack_2 = parentStack,
62
- childStack_2 = childStack,
63
- childModified_2 = childModified;
64
- while (1) {
65
- if (tsplus_module_6.isNonEmpty(parentStack_1) && tsplus_module_6.isNonEmpty(childStack_1)) {
66
- const [parentFiberId] = parentStack_1.head;
67
- const [childFiberId, childValue] = childStack_1.head;
68
- const compare = compareFiberId(parentFiberId, childFiberId);
69
- if (compare < 0) {
70
- ref_2 = ref_1;
71
- parentStack_2 = parentStack_1;
72
- childStack_2 = childStack_1.tail;
73
- childModified_2 = true;
74
- ref_1 = ref_2;
75
- parentStack_1 = parentStack_2;
76
- childStack_1 = childStack_2;
77
- childModified_1 = childModified_2;
78
- continue;
79
- } else if (compare > 0) {
80
- ref_2 = ref_1;
81
- parentStack_2 = parentStack_1.tail;
82
- childStack_2 = childStack_1;
83
- childModified_2 = childModified_1;
84
- ref_1 = ref_2;
85
- parentStack_1 = parentStack_2;
86
- childStack_1 = childStack_2;
87
- childModified_1 = childModified_2;
88
- continue;
89
- } else {
90
- return [childValue, childModified_1];
91
- }
92
- }
93
- return [tsplus_module_3.initial(ref_1), true];
94
- }
95
- }
96
- //# sourceMappingURL=join.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"join.mjs","mappings":"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","names":["join","fiberId","that","self","parentFiberRefs","tsplus_module_1","reverseGet","childFiberRefs","fiberRefLocals","tsplus_module_5","ref","childStack","childValue","head","tsplus_module_7","tsplus_module_2","tsplus_module_4","parentStack","ancestor","wasModified","findAncestor","patch","tsplus_module_3","oldValue","newValue","newStack","tsplus_module_6","parentFiberId","tail","get","compareFiberId","left","right","compare","tsplus_module_8","startTime","id","childModified","parentStack_1","childStack_1","childModified_1","parentStack_2","childStack_2","childModified_2","childFiberId"],"sourceRoot":"","sources":["../../_src/FiberRefs/join.ts"],"sourcesContent":[null]}
@@ -1,97 +0,0 @@
1
- import * as tsplus_module_1 from "@fncts/io/FiberScope/constructors";
2
- import * as tsplus_module_2 from "@fncts/base/data/Maybe/constructors";
3
- import * as tsplus_module_3 from "@fncts/io/FiberRef/unsafe";
4
- import * as tsplus_module_4 from "@fncts/io/FiberRef/api";
5
- import * as tsplus_module_5 from "@fncts/io/IO/api";
6
- import * as tsplus_module_6 from "@fncts/base/data/Maybe/api";
7
- import * as tsplus_module_7 from "@fncts/io/IO/api/fork";
8
- export const daemonChildren = daemonChildren_1;
9
- export const raceFibersWith = raceFibersWith_1;
10
- import { AtomicBoolean } from "@fncts/base/internal/AtomicBoolean";
11
- import { unsafeMakeChildFiber } from "@fncts/io/IO/api/fork";
12
- /**
13
- * @tsplus getter fncts.io.IO daemonChildren
14
- */
15
- function daemonChildren_1(self, __tsplusTrace) {
16
- return tsplus_module_4.locally(tsplus_module_3.forkScopeOverride, tsplus_module_2.just(tsplus_module_1.global), __tsplusTrace)(self);
17
- }
18
- /**
19
- * @tsplus pipeable fncts.io.IO raceFibersWith
20
- */
21
- function raceFibersWith_1(right, leftWins, rightWins, __tsplusTrace) {
22
- return left => {
23
- return tsplus_module_5.withFiberRuntime((parentState, parentStatus) => {
24
- const right0 = right();
25
- const parentRuntimeFlags = parentStatus.runtimeFlags;
26
- function complete(winner, loser, cont, ab, cb) {
27
- if (ab.compareAndSet(true, false)) {
28
- cb(cont(winner, loser));
29
- }
30
- }
31
- const raceIndicator = new AtomicBoolean(true);
32
- const leftFiber = unsafeMakeChildFiber(left, parentState, parentRuntimeFlags, null, __tsplusTrace);
33
- const rightFiber = unsafeMakeChildFiber(right0, parentState, parentRuntimeFlags, null, __tsplusTrace);
34
- leftFiber.setFiberRef(tsplus_module_3.forkScopeOverride, tsplus_module_2.just(parentState.scope));
35
- rightFiber.setFiberRef(tsplus_module_3.forkScopeOverride, tsplus_module_2.just(parentState.scope));
36
- return tsplus_module_5.async(cb => {
37
- leftFiber.addObserver(() => complete(leftFiber, rightFiber, leftWins, raceIndicator, cb));
38
- rightFiber.addObserver(() => complete(rightFiber, leftFiber, rightWins, raceIndicator, cb));
39
- leftFiber.startFork(left);
40
- rightFiber.startFork(right0);
41
- });
42
- }, __tsplusTrace);
43
- };
44
- }
45
- /**
46
- * Returns an effect that races this effect with the specified effect, calling
47
- * the specified finisher as soon as one result or the other has been computed.
48
- *
49
- * @tsplus pipeable fncts.io.IO raceWith
50
- */
51
- export function raceWith(right, leftWins, rightWins, __tsplusTrace) {
52
- return left => {
53
- return raceFibersWith_1(right, (winner, loser) => tsplus_module_5.flatMap(exit => {
54
- switch (exit._tag) {
55
- case "Success" /* ExitTag.Success */:
56
- return tsplus_module_5.flatMap(() => leftWins(exit, loser), __tsplusTrace)(winner.inheritAll);
57
- case "Failure" /* ExitTag.Failure */:
58
- return leftWins(exit, loser);
59
- }
60
- }, __tsplusTrace)(winner.await), (winner, loser) => tsplus_module_5.flatMap(exit => {
61
- switch (exit._tag) {
62
- case "Success" /* ExitTag.Success */:
63
- return tsplus_module_5.flatMap(() => rightWins(exit, loser), __tsplusTrace)(winner.inheritAll);
64
- case "Failure" /* ExitTag.Failure */:
65
- return rightWins(exit, loser);
66
- }
67
- }, __tsplusTrace)(winner.await), __tsplusTrace)(left);
68
- };
69
- }
70
- /**
71
- * Transplants specified effects so that when those effects fork other
72
- * effects, the forked effects will be governed by the scope of the
73
- * fiber that executes this effect.
74
- *
75
- * This can be used to "graft" deep grandchildren onto a higher-level
76
- * scope, effectively extending their lifespans into the parent scope.
77
- *
78
- * @tsplus static fncts.io.IOOps transplant
79
- */
80
- export function transplant(f, __tsplusTrace) {
81
- return tsplus_module_5.withFiberRuntime(fiberState => {
82
- const scopeOverride = fiberState.getFiberRef(tsplus_module_3.forkScopeOverride);
83
- const scope = tsplus_module_6.getOrElse(() => fiberState.scope)(scopeOverride);
84
- return f(tsplus_module_4.locally(tsplus_module_3.forkScopeOverride, tsplus_module_2.just(scope), __tsplusTrace));
85
- }, __tsplusTrace);
86
- }
87
- /**
88
- * Forks the effect into a new fiber attached to the global scope. Because the
89
- * new fiber is attached to the global scope, when the fiber executing the
90
- * returned effect terminates, the forked fiber will continue running.
91
- *
92
- * @tsplus getter fncts.io.IO forkDaemon
93
- */
94
- export function forkDaemon(ma, __tsplusTrace) {
95
- return daemonChildren_1(tsplus_module_7.fork(ma, __tsplusTrace), __tsplusTrace);
96
- }
97
- //# sourceMappingURL=core-scope.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"core-scope.mjs","mappings":"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","names":["daemonChildren","raceFibersWith","AtomicBoolean","unsafeMakeChildFiber","self","__tsplusTrace","tsplus_module_4","tsplus_module_2","right","leftWins","rightWins","left","tsplus_module_5","parentState","parentStatus","right0","parentRuntimeFlags","runtimeFlags","complete","winner","loser","cont","ab","cb","compareAndSet","raceIndicator","leftFiber","rightFiber","setFiberRef","scope","addObserver","startFork","raceWith","raceFibersWith_1","exit","_tag","inheritAll","await","transplant","f","fiberState","scopeOverride","getFiberRef","tsplus_module_6","forkDaemon","ma"],"sourceRoot":"","sources":["../../../_src/IO/api/core-scope.ts"],"sourcesContent":[null]}
@@ -1,71 +0,0 @@
1
- /**
2
- * @tsplus pipeable fncts.io.FiberRefs join
3
- */
4
- export function join(fiberId: FiberId.Runtime, that: FiberRefs) {
5
- return (self: FiberRefs): FiberRefs => {
6
- const parentFiberRefs = FiberRefs.reverseGet(self);
7
- const childFiberRefs = FiberRefs.reverseGet(that);
8
- const fiberRefLocals = childFiberRefs.foldLeftWithIndex(parentFiberRefs, (ref, parentFiberRefs, childStack) => {
9
- const childValue = childStack.head[1];
10
- if (childStack.head[0] == fiberId) {
11
- return parentFiberRefs;
12
- }
13
- return parentFiberRefs.get(ref).match(
14
- () => {
15
- if (Equatable.strictEquals(childValue, ref.initial)) return parentFiberRefs;
16
- return parentFiberRefs.set(ref, Cons([fiberId, childValue] as const));
17
- },
18
- (parentStack) => {
19
- const [ancestor, wasModified] = findAncestor(ref, parentStack, childStack);
20
- if (!wasModified) return parentFiberRefs;
21
- const patch = ref.diff(ancestor, childValue);
22
- const oldValue = parentStack.head[1];
23
- const newValue = ref.join(oldValue, ref.patch(patch)(oldValue));
24
- if (oldValue === newValue) return parentFiberRefs;
25
- let newStack: Cons<readonly [FiberId.Runtime, unknown]>;
26
- if (parentStack.isEmpty()) {
27
- newStack = Cons([fiberId, newValue] as const);
28
- } else {
29
- const [parentFiberId] = parentStack.head;
30
- if (parentFiberId == fiberId) {
31
- newStack = Cons([parentFiberId, newValue], parentStack.tail);
32
- } else {
33
- newStack = Cons([fiberId, newValue], parentStack);
34
- }
35
- }
36
- return parentFiberRefs.set(ref, newStack);
37
- },
38
- );
39
- });
40
- return FiberRefs.get(fiberRefLocals);
41
- };
42
- }
43
-
44
- function compareFiberId(left: FiberId.Runtime, right: FiberId.Runtime): number {
45
- const compare = Number.Ord.compare(right.startTime)(left.startTime);
46
- return compare === 0 ? Number.Ord.compare(right.id)(left.id) : compare;
47
- }
48
-
49
- /**
50
- * @tsplus tailRec
51
- */
52
- function findAncestor(
53
- ref: FiberRef<any>,
54
- parentStack: List<readonly [FiberId.Runtime, any]>,
55
- childStack: List<readonly [FiberId.Runtime, any]>,
56
- childModified = false,
57
- ): readonly [any, boolean] {
58
- if (parentStack.isNonEmpty() && childStack.isNonEmpty()) {
59
- const [parentFiberId] = parentStack.head;
60
- const [childFiberId, childValue] = childStack.head;
61
- const compare = compareFiberId(parentFiberId, childFiberId);
62
- if (compare < 0) {
63
- return findAncestor(ref, parentStack, childStack.tail, true);
64
- } else if (compare > 0) {
65
- return findAncestor(ref, parentStack.tail, childStack, childModified);
66
- } else {
67
- return [childValue, childModified];
68
- }
69
- }
70
- return [ref.initial, true];
71
- }