effect 3.7.2 → 3.8.0

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 (246) hide show
  1. package/Mailbox/package.json +6 -0
  2. package/dist/cjs/Deferred.js.map +1 -1
  3. package/dist/cjs/Duration.js +99 -35
  4. package/dist/cjs/Duration.js.map +1 -1
  5. package/dist/cjs/Effect.js +30 -3
  6. package/dist/cjs/Effect.js.map +1 -1
  7. package/dist/cjs/Fiber.js.map +1 -1
  8. package/dist/cjs/FiberRef.js.map +1 -1
  9. package/dist/cjs/Iterable.js +0 -1
  10. package/dist/cjs/Iterable.js.map +1 -1
  11. package/dist/cjs/List.js +0 -2
  12. package/dist/cjs/List.js.map +1 -1
  13. package/dist/cjs/Logger.js +29 -1
  14. package/dist/cjs/Logger.js.map +1 -1
  15. package/dist/cjs/Mailbox.js +95 -0
  16. package/dist/cjs/Mailbox.js.map +1 -0
  17. package/dist/cjs/Micro.js +1 -0
  18. package/dist/cjs/Micro.js.map +1 -1
  19. package/dist/cjs/MutableHashMap.js +13 -1
  20. package/dist/cjs/MutableHashMap.js.map +1 -1
  21. package/dist/cjs/Number.js +20 -1
  22. package/dist/cjs/Number.js.map +1 -1
  23. package/dist/cjs/Queue.js.map +1 -1
  24. package/dist/cjs/RcMap.js +6 -1
  25. package/dist/cjs/RcMap.js.map +1 -1
  26. package/dist/cjs/RcRef.js.map +1 -1
  27. package/dist/cjs/Ref.js.map +1 -1
  28. package/dist/cjs/Stream.js +11 -2
  29. package/dist/cjs/Stream.js.map +1 -1
  30. package/dist/cjs/SubscriptionRef.js.map +1 -1
  31. package/dist/cjs/SynchronizedRef.js.map +1 -1
  32. package/dist/cjs/TestClock.js +8 -2
  33. package/dist/cjs/TestClock.js.map +1 -1
  34. package/dist/cjs/index.js +4 -2
  35. package/dist/cjs/index.js.map +1 -1
  36. package/dist/cjs/internal/core.js +32 -25
  37. package/dist/cjs/internal/core.js.map +1 -1
  38. package/dist/cjs/internal/defaultServices/console.js.map +1 -1
  39. package/dist/cjs/internal/defaultServices.js +8 -5
  40. package/dist/cjs/internal/defaultServices.js.map +1 -1
  41. package/dist/cjs/internal/effect/circular.js +81 -8
  42. package/dist/cjs/internal/effect/circular.js.map +1 -1
  43. package/dist/cjs/internal/fiber.js +51 -26
  44. package/dist/cjs/internal/fiber.js.map +1 -1
  45. package/dist/cjs/internal/fiberRefs.js.map +1 -1
  46. package/dist/cjs/internal/fiberRuntime.js +126 -97
  47. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  48. package/dist/cjs/internal/groupBy.js +6 -1
  49. package/dist/cjs/internal/groupBy.js.map +1 -1
  50. package/dist/cjs/internal/hashMap/node.js +0 -1
  51. package/dist/cjs/internal/hashMap/node.js.map +1 -1
  52. package/dist/cjs/internal/hashMap.js +0 -1
  53. package/dist/cjs/internal/hashMap.js.map +1 -1
  54. package/dist/cjs/internal/layer.js +3 -3
  55. package/dist/cjs/internal/layer.js.map +1 -1
  56. package/dist/cjs/internal/logger.js +4 -1
  57. package/dist/cjs/internal/logger.js.map +1 -1
  58. package/dist/cjs/internal/mailbox.js +408 -0
  59. package/dist/cjs/internal/mailbox.js.map +1 -0
  60. package/dist/cjs/internal/managedRuntime.js +1 -1
  61. package/dist/cjs/internal/managedRuntime.js.map +1 -1
  62. package/dist/cjs/internal/pubsub.js +6 -1
  63. package/dist/cjs/internal/pubsub.js.map +1 -1
  64. package/dist/cjs/internal/queue.js +6 -1
  65. package/dist/cjs/internal/queue.js.map +1 -1
  66. package/dist/cjs/internal/rcMap.js +7 -1
  67. package/dist/cjs/internal/rcMap.js.map +1 -1
  68. package/dist/cjs/internal/rcRef.js +10 -6
  69. package/dist/cjs/internal/rcRef.js.map +1 -1
  70. package/dist/cjs/internal/ref.js +7 -7
  71. package/dist/cjs/internal/ref.js.map +1 -1
  72. package/dist/cjs/internal/runtime.js +1 -1
  73. package/dist/cjs/internal/runtime.js.map +1 -1
  74. package/dist/cjs/internal/stream.js +7 -2
  75. package/dist/cjs/internal/stream.js.map +1 -1
  76. package/dist/cjs/internal/subscriptionRef.js +7 -8
  77. package/dist/cjs/internal/subscriptionRef.js.map +1 -1
  78. package/dist/cjs/internal/version.js +1 -1
  79. package/dist/dts/Deferred.d.ts +21 -2
  80. package/dist/dts/Deferred.d.ts.map +1 -1
  81. package/dist/dts/Duration.d.ts +38 -1
  82. package/dist/dts/Duration.d.ts.map +1 -1
  83. package/dist/dts/Effect.d.ts +45 -0
  84. package/dist/dts/Effect.d.ts.map +1 -1
  85. package/dist/dts/Fiber.d.ts +69 -2
  86. package/dist/dts/Fiber.d.ts.map +1 -1
  87. package/dist/dts/FiberRef.d.ts +21 -2
  88. package/dist/dts/FiberRef.d.ts.map +1 -1
  89. package/dist/dts/List.d.ts.map +1 -1
  90. package/dist/dts/Logger.d.ts +28 -0
  91. package/dist/dts/Logger.d.ts.map +1 -1
  92. package/dist/dts/Mailbox.d.ts +220 -0
  93. package/dist/dts/Mailbox.d.ts.map +1 -0
  94. package/dist/dts/Micro.d.ts.map +1 -1
  95. package/dist/dts/MutableHashMap.d.ts +5 -0
  96. package/dist/dts/MutableHashMap.d.ts.map +1 -1
  97. package/dist/dts/Number.d.ts +19 -0
  98. package/dist/dts/Number.d.ts.map +1 -1
  99. package/dist/dts/Queue.d.ts +40 -1
  100. package/dist/dts/Queue.d.ts.map +1 -1
  101. package/dist/dts/RcMap.d.ts +5 -0
  102. package/dist/dts/RcMap.d.ts.map +1 -1
  103. package/dist/dts/RcRef.d.ts +22 -2
  104. package/dist/dts/RcRef.d.ts.map +1 -1
  105. package/dist/dts/Ref.d.ts +22 -2
  106. package/dist/dts/Ref.d.ts.map +1 -1
  107. package/dist/dts/ScheduleDecision.d.ts.map +1 -1
  108. package/dist/dts/Stream.d.ts +30 -0
  109. package/dist/dts/Stream.d.ts.map +1 -1
  110. package/dist/dts/SubscriptionRef.d.ts +20 -0
  111. package/dist/dts/SubscriptionRef.d.ts.map +1 -1
  112. package/dist/dts/SynchronizedRef.d.ts +20 -0
  113. package/dist/dts/SynchronizedRef.d.ts.map +1 -1
  114. package/dist/dts/TestClock.d.ts.map +1 -1
  115. package/dist/dts/index.d.ts +5 -0
  116. package/dist/dts/index.d.ts.map +1 -1
  117. package/dist/dts/internal/core.d.ts.map +1 -1
  118. package/dist/dts/internal/fiber.d.ts.map +1 -1
  119. package/dist/dts/internal/fiberRuntime.d.ts.map +1 -1
  120. package/dist/dts/internal/logger.d.ts.map +1 -1
  121. package/dist/dts/internal/mailbox.d.ts +2 -0
  122. package/dist/dts/internal/mailbox.d.ts.map +1 -0
  123. package/dist/dts/internal/stream.d.ts +22 -0
  124. package/dist/dts/internal/stream.d.ts.map +1 -1
  125. package/dist/esm/Deferred.js.map +1 -1
  126. package/dist/esm/Duration.js +92 -33
  127. package/dist/esm/Duration.js.map +1 -1
  128. package/dist/esm/Effect.js +27 -0
  129. package/dist/esm/Effect.js.map +1 -1
  130. package/dist/esm/Fiber.js.map +1 -1
  131. package/dist/esm/FiberRef.js.map +1 -1
  132. package/dist/esm/Iterable.js +0 -1
  133. package/dist/esm/Iterable.js.map +1 -1
  134. package/dist/esm/List.js +0 -2
  135. package/dist/esm/List.js.map +1 -1
  136. package/dist/esm/Logger.js +28 -0
  137. package/dist/esm/Logger.js.map +1 -1
  138. package/dist/esm/Mailbox.js +85 -0
  139. package/dist/esm/Mailbox.js.map +1 -0
  140. package/dist/esm/Micro.js +1 -0
  141. package/dist/esm/Micro.js.map +1 -1
  142. package/dist/esm/MutableHashMap.js +11 -0
  143. package/dist/esm/MutableHashMap.js.map +1 -1
  144. package/dist/esm/Number.js +19 -0
  145. package/dist/esm/Number.js.map +1 -1
  146. package/dist/esm/Queue.js.map +1 -1
  147. package/dist/esm/RcMap.js +5 -0
  148. package/dist/esm/RcMap.js.map +1 -1
  149. package/dist/esm/RcRef.js.map +1 -1
  150. package/dist/esm/Ref.js.map +1 -1
  151. package/dist/esm/Stream.js +9 -0
  152. package/dist/esm/Stream.js.map +1 -1
  153. package/dist/esm/SubscriptionRef.js.map +1 -1
  154. package/dist/esm/SynchronizedRef.js.map +1 -1
  155. package/dist/esm/TestClock.js +8 -2
  156. package/dist/esm/TestClock.js.map +1 -1
  157. package/dist/esm/index.js +5 -0
  158. package/dist/esm/index.js.map +1 -1
  159. package/dist/esm/internal/core.js +33 -26
  160. package/dist/esm/internal/core.js.map +1 -1
  161. package/dist/esm/internal/defaultServices/console.js.map +1 -1
  162. package/dist/esm/internal/defaultServices.js +6 -4
  163. package/dist/esm/internal/defaultServices.js.map +1 -1
  164. package/dist/esm/internal/effect/circular.js +77 -6
  165. package/dist/esm/internal/effect/circular.js.map +1 -1
  166. package/dist/esm/internal/fiber.js +51 -26
  167. package/dist/esm/internal/fiber.js.map +1 -1
  168. package/dist/esm/internal/fiberRefs.js.map +1 -1
  169. package/dist/esm/internal/fiberRuntime.js +124 -96
  170. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  171. package/dist/esm/internal/groupBy.js +6 -1
  172. package/dist/esm/internal/groupBy.js.map +1 -1
  173. package/dist/esm/internal/hashMap/node.js +0 -1
  174. package/dist/esm/internal/hashMap/node.js.map +1 -1
  175. package/dist/esm/internal/hashMap.js +0 -1
  176. package/dist/esm/internal/hashMap.js.map +1 -1
  177. package/dist/esm/internal/layer.js +3 -3
  178. package/dist/esm/internal/layer.js.map +1 -1
  179. package/dist/esm/internal/logger.js +3 -0
  180. package/dist/esm/internal/logger.js.map +1 -1
  181. package/dist/esm/internal/mailbox.js +395 -0
  182. package/dist/esm/internal/mailbox.js.map +1 -0
  183. package/dist/esm/internal/managedRuntime.js +1 -1
  184. package/dist/esm/internal/managedRuntime.js.map +1 -1
  185. package/dist/esm/internal/pubsub.js +6 -1
  186. package/dist/esm/internal/pubsub.js.map +1 -1
  187. package/dist/esm/internal/queue.js +6 -1
  188. package/dist/esm/internal/queue.js.map +1 -1
  189. package/dist/esm/internal/rcMap.js +5 -0
  190. package/dist/esm/internal/rcMap.js.map +1 -1
  191. package/dist/esm/internal/rcRef.js +10 -6
  192. package/dist/esm/internal/rcRef.js.map +1 -1
  193. package/dist/esm/internal/ref.js +7 -7
  194. package/dist/esm/internal/ref.js.map +1 -1
  195. package/dist/esm/internal/runtime.js +1 -1
  196. package/dist/esm/internal/runtime.js.map +1 -1
  197. package/dist/esm/internal/stream.js +5 -0
  198. package/dist/esm/internal/stream.js.map +1 -1
  199. package/dist/esm/internal/subscriptionRef.js +7 -8
  200. package/dist/esm/internal/subscriptionRef.js.map +1 -1
  201. package/dist/esm/internal/version.js +1 -1
  202. package/package.json +9 -1
  203. package/src/Deferred.ts +21 -2
  204. package/src/Duration.ts +112 -35
  205. package/src/Effect.ts +52 -0
  206. package/src/Fiber.ts +78 -2
  207. package/src/FiberRef.ts +21 -2
  208. package/src/Iterable.ts +1 -1
  209. package/src/List.ts +0 -2
  210. package/src/Logger.ts +30 -0
  211. package/src/Mailbox.ts +236 -0
  212. package/src/Micro.ts +1 -0
  213. package/src/MutableHashMap.ts +12 -0
  214. package/src/Number.ts +23 -0
  215. package/src/Queue.ts +42 -1
  216. package/src/RcMap.ts +6 -0
  217. package/src/RcRef.ts +24 -2
  218. package/src/Ref.ts +22 -2
  219. package/src/Stream.ts +36 -0
  220. package/src/SubscriptionRef.ts +22 -0
  221. package/src/SynchronizedRef.ts +20 -0
  222. package/src/TestClock.ts +10 -2
  223. package/src/index.ts +6 -0
  224. package/src/internal/core.ts +31 -28
  225. package/src/internal/defaultServices/console.ts +1 -0
  226. package/src/internal/defaultServices.ts +9 -10
  227. package/src/internal/effect/circular.ts +83 -6
  228. package/src/internal/fiber.ts +56 -29
  229. package/src/internal/fiberRefs.ts +1 -2
  230. package/src/internal/fiberRuntime.ts +134 -103
  231. package/src/internal/groupBy.ts +7 -1
  232. package/src/internal/hashMap/node.ts +1 -1
  233. package/src/internal/hashMap.ts +1 -1
  234. package/src/internal/layer.ts +3 -3
  235. package/src/internal/logger.ts +4 -0
  236. package/src/internal/mailbox.ts +461 -0
  237. package/src/internal/managedRuntime.ts +1 -1
  238. package/src/internal/pubsub.ts +9 -2
  239. package/src/internal/queue.ts +7 -1
  240. package/src/internal/rcMap.ts +8 -0
  241. package/src/internal/rcRef.ts +10 -6
  242. package/src/internal/ref.ts +7 -7
  243. package/src/internal/runtime.ts +1 -1
  244. package/src/internal/stream.ts +53 -0
  245. package/src/internal/subscriptionRef.ts +7 -8
  246. package/src/internal/version.ts +1 -1
@@ -3,14 +3,14 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.zipWithOptions = exports.zipRightOptions = exports.zipOptions = exports.zipLeftOptions = exports.withTracerScoped = exports.withSpanScoped = exports.withRuntimeFlagsScoped = exports.withRandomScoped = exports.withEarlyRelease = exports.withConfigProviderScoped = exports.withClockScoped = exports.validateWith = exports.validateFirst = exports.validateAllParDiscard = exports.validateAllPar = exports.validateAll = exports.validate = exports.using = exports.unsafeMakeChildFiber = exports.unsafeForkUnstarted = exports.unsafeFork = exports.tracerLogger = exports.tagMetricsScoped = exports.structuredLogger = exports.sequentialFinalizers = exports.scopedEffect = exports.scopeWith = exports.scopeUse = exports.scopeTag = exports.scopeMake = exports.scopeExtend = exports.scope = exports.replicateEffect = exports.replicate = exports.reduceEffect = exports.raceWith = exports.raceFibersWith = exports.raceAll = exports.race = exports.prettyLogger = exports.partition = exports.parallelNFinalizers = exports.parallelFinalizers = exports.mergeAll = exports.makeSpanScoped = exports.loggerWithSpanAnnotations = exports.loggerWithConsoleLog = exports.loggerWithConsoleError = exports.logFmtLogger = exports.labelMetricsScoped = exports.jsonLogger = exports.invokeWithInterrupt = exports.interruptWhenPossible = exports.forkWithErrorHandler = exports.forkDaemon = exports.fork = exports.forEachParUnbounded = exports.forEachParN = exports.forEachConcurrentDiscard = exports.forEach = exports.finalizersMaskInternal = exports.finalizersMask = exports.filter = exports.fiberSuccesses = exports.fiberStarted = exports.fiberScoped = exports.fiberRefUnsafeMakeSupervisor = exports.fiberRefMakeWith = exports.fiberRefMakeRuntimeFlags = exports.fiberRefMakeContext = exports.fiberRefMake = exports.fiberRefLocallyScopedWith = exports.fiberRefLocallyScoped = exports.fiberLifetimes = exports.fiberJoinAll = exports.fiberInterruptFork = exports.fiberFailures = exports.fiberAwaitAll = exports.fiberAll = exports.fiberActive = exports.exists = exports.ensuring = exports.disconnect = exports.defaultLogger = exports.daemonChildren = exports.currentSupervisor = exports.currentRuntimeFlags = exports.currentMinimumLogLevel = exports.currentLoggers = exports.batchedLogger = exports.annotateLogsScoped = exports.allWith = exports.allSuccesses = exports.all = exports.addFinalizer = exports.acquireReleaseInterruptible = exports.acquireRelease = exports.FiberRuntime = void 0;
6
+ exports.zipWithOptions = exports.zipRightOptions = exports.zipOptions = exports.zipLeftOptions = exports.withTracerScoped = exports.withSpanScoped = exports.withRuntimeFlagsScoped = exports.withRandomScoped = exports.withEarlyRelease = exports.withConfigProviderScoped = exports.withClockScoped = exports.validateWith = exports.validateFirst = exports.validateAllParDiscard = exports.validateAllPar = exports.validateAll = exports.validate = exports.using = exports.unsafeMakeChildFiber = exports.unsafeForkUnstarted = exports.unsafeFork = exports.tracerLogger = exports.tagMetricsScoped = exports.structuredLogger = exports.sequentialFinalizers = exports.scopedEffect = exports.scopeWith = exports.scopeUse = exports.scopeTag = exports.scopeMake = exports.scopeExtend = exports.scope = exports.replicateEffect = exports.replicate = exports.reduceEffect = exports.raceWith = exports.raceFibersWith = exports.raceAll = exports.race = exports.prettyLogger = exports.partition = exports.parallelNFinalizers = exports.parallelFinalizers = exports.mergeAll = exports.makeSpanScoped = exports.loggerWithSpanAnnotations = exports.loggerWithLeveledLog = exports.loggerWithConsoleLog = exports.loggerWithConsoleError = exports.logFmtLogger = exports.labelMetricsScoped = exports.jsonLogger = exports.invokeWithInterrupt = exports.interruptWhenPossible = exports.forkWithErrorHandler = exports.forkDaemon = exports.fork = exports.forEachParUnbounded = exports.forEachParN = exports.forEachConcurrentDiscard = exports.forEach = exports.finalizersMaskInternal = exports.finalizersMask = exports.filter = exports.fiberSuccesses = exports.fiberStarted = exports.fiberScoped = exports.fiberRefUnsafeMakeSupervisor = exports.fiberRefMakeWith = exports.fiberRefMakeRuntimeFlags = exports.fiberRefMakeContext = exports.fiberRefMake = exports.fiberRefLocallyScopedWith = exports.fiberRefLocallyScoped = exports.fiberLifetimes = exports.fiberJoinAll = exports.fiberInterruptFork = exports.fiberFailures = exports.fiberAwaitAll = exports.fiberAll = exports.fiberActive = exports.exists = exports.ensuring = exports.disconnect = exports.defaultLogger = exports.daemonChildren = exports.currentSupervisor = exports.currentRuntimeFlags = exports.currentMinimumLogLevel = exports.currentLoggers = exports.batchedLogger = exports.annotateLogsScoped = exports.allWith = exports.allSuccesses = exports.all = exports.addFinalizer = exports.acquireReleaseInterruptible = exports.acquireRelease = exports.FiberRuntime = void 0;
7
7
  var _Utils = require("effect/Utils");
8
8
  var RA = _interopRequireWildcard(require("../Array.js"));
9
9
  var Boolean = _interopRequireWildcard(require("../Boolean.js"));
10
10
  var Chunk = _interopRequireWildcard(require("../Chunk.js"));
11
11
  var Context = _interopRequireWildcard(require("../Context.js"));
12
12
  var Deferred = _interopRequireWildcard(require("../Deferred.js"));
13
- var _Effectable = require("../Effectable.js");
13
+ var Effectable = _interopRequireWildcard(require("../Effectable.js"));
14
14
  var ExecutionStrategy = _interopRequireWildcard(require("../ExecutionStrategy.js"));
15
15
  var FiberId = _interopRequireWildcard(require("../FiberId.js"));
16
16
  var FiberRefs = _interopRequireWildcard(require("../FiberRefs.js"));
@@ -110,8 +110,8 @@ const contOpSuccess = {
110
110
  return (0, _Utils.internalCall)(() => cont.effect_instruction_i2(value));
111
111
  },
112
112
  [OpCodes.OP_REVERT_FLAGS]: (self, cont, value) => {
113
- self.patchRuntimeFlags(self._runtimeFlags, cont.patch);
114
- if (_runtimeFlags.interruptible(self._runtimeFlags) && self.isInterrupted()) {
113
+ self.patchRuntimeFlags(self.currentRuntimeFlags, cont.patch);
114
+ if (_runtimeFlags.interruptible(self.currentRuntimeFlags) && self.isInterrupted()) {
115
115
  return core.exitFailCause(self.getInterruptedCause());
116
116
  } else {
117
117
  return core.exitSucceed(value);
@@ -161,15 +161,11 @@ const runBlockedRequests = self => core.forEachSequentialDiscard(_RequestBlock.f
161
161
  })), _completedRequestMap.currentRequestMap, map);
162
162
  }, false, false));
163
163
  /** @internal */
164
- class FiberRuntime {
164
+ class FiberRuntime extends Effectable.Class {
165
165
  [internalFiber.FiberTypeId] = internalFiber.fiberVariance;
166
166
  [internalFiber.RuntimeFiberTypeId] = runtimeFiberVariance;
167
- pipe() {
168
- return (0, _Pipeable.pipeArguments)(this, arguments);
169
- }
170
167
  _fiberRefs;
171
168
  _fiberId;
172
- _runtimeFlags;
173
169
  _queue = /*#__PURE__*/new Array();
174
170
  _children = null;
175
171
  _observers = /*#__PURE__*/new Array();
@@ -179,23 +175,29 @@ class FiberRuntime {
179
175
  _asyncBlockingOn = null;
180
176
  _exitValue = null;
181
177
  _steps = [];
182
- _supervisor;
183
- _scheduler;
184
- _tracer;
178
+ _isYielding = false;
179
+ currentRuntimeFlags;
185
180
  currentOpCount = 0;
186
- isYielding = false;
181
+ currentSupervisor;
182
+ currentScheduler;
183
+ currentTracer;
184
+ currentSpan;
185
+ currentContext;
186
+ currentDefaultServices;
187
187
  constructor(fiberId, fiberRefs0, runtimeFlags0) {
188
- this._runtimeFlags = runtimeFlags0;
188
+ super();
189
+ this.currentRuntimeFlags = runtimeFlags0;
189
190
  this._fiberId = fiberId;
190
191
  this._fiberRefs = fiberRefs0;
191
- this._supervisor = this.getFiberRef(currentSupervisor);
192
- this._scheduler = this.getFiberRef(_Scheduler.currentScheduler);
193
192
  if (_runtimeFlags.runtimeMetrics(runtimeFlags0)) {
194
193
  const tags = this.getFiberRef(core.currentMetricLabels);
195
194
  fiberStarted.unsafeUpdate(1, tags);
196
195
  fiberActive.unsafeUpdate(1, tags);
197
196
  }
198
- this._tracer = Context.get(this.getFiberRef(defaultServices.currentServices), tracer.tracerTag);
197
+ this.refreshRefCache();
198
+ }
199
+ commit() {
200
+ return internalFiber.join(this);
199
201
  }
200
202
  /**
201
203
  * The identity of the fiber.
@@ -223,7 +225,7 @@ class FiberRuntime {
223
225
  get runtimeFlags() {
224
226
  return this.ask((state, status) => {
225
227
  if (FiberStatus.isDone(status)) {
226
- return state._runtimeFlags;
228
+ return state.currentRuntimeFlags;
227
229
  }
228
230
  return status.runtimeFlags;
229
231
  });
@@ -377,7 +379,7 @@ class FiberRuntime {
377
379
  * log annotations and log level) may not be up-to-date.
378
380
  */
379
381
  getFiberRefs() {
380
- this.setFiberRef(currentRuntimeFlags, this._runtimeFlags);
382
+ this.setFiberRef(currentRuntimeFlags, this.currentRuntimeFlags);
381
383
  return this._fiberRefs;
382
384
  }
383
385
  /**
@@ -415,9 +417,12 @@ class FiberRuntime {
415
417
  this.refreshRefCache();
416
418
  }
417
419
  refreshRefCache() {
418
- this._tracer = Context.get(this.getFiberRef(defaultServices.currentServices), tracer.tracerTag);
419
- this._supervisor = this.getFiberRef(currentSupervisor);
420
- this._scheduler = this.getFiberRef(_Scheduler.currentScheduler);
420
+ this.currentDefaultServices = this.getFiberRef(defaultServices.currentServices);
421
+ this.currentTracer = this.currentDefaultServices.unsafeMap.get(tracer.tracerTag.key);
422
+ this.currentSupervisor = this.getFiberRef(currentSupervisor);
423
+ this.currentScheduler = this.getFiberRef(_Scheduler.currentScheduler);
424
+ this.currentContext = this.getFiberRef(core.currentContext);
425
+ this.currentSpan = this.currentContext.unsafeMap.get(tracer.spanTag.key);
421
426
  }
422
427
  /**
423
428
  * Wholesale replaces all fiber refs of this fiber.
@@ -491,7 +496,7 @@ class FiberRuntime {
491
496
  * **NOTE**: This method must be invoked by the fiber itself.
492
497
  */
493
498
  drainQueueLaterOnExecutor() {
494
- this._scheduler.scheduleTask(this.run, this.getFiberRef(core.currentSchedulingPriority));
499
+ this.currentScheduler.scheduleTask(this.run, this.getFiberRef(core.currentSchedulingPriority));
495
500
  }
496
501
  /**
497
502
  * Drains the fiber's message queue while the fiber is actively running,
@@ -589,7 +594,7 @@ class FiberRuntime {
589
594
  return null;
590
595
  }
591
596
  reportExitValue(exit) {
592
- if (_runtimeFlags.runtimeMetrics(this._runtimeFlags)) {
597
+ if (_runtimeFlags.runtimeMetrics(this.currentRuntimeFlags)) {
593
598
  const tags = this.getFiberRef(core.currentMetricLabels);
594
599
  const startTimeMillis = this.id().startTimeMillis;
595
600
  const endTimeMillis = Date.now();
@@ -683,7 +688,7 @@ class FiberRuntime {
683
688
  }
684
689
  case FiberMessage.OP_STATEFUL:
685
690
  {
686
- message.onFiber(this, this._exitValue !== null ? FiberStatus.done : FiberStatus.suspended(this._runtimeFlags, this._asyncBlockingOn));
691
+ message.onFiber(this, this._exitValue !== null ? FiberStatus.done : FiberStatus.suspended(this.currentRuntimeFlags, this._asyncBlockingOn));
687
692
  return EvaluationSignalContinue;
688
693
  }
689
694
  default:
@@ -698,9 +703,9 @@ class FiberRuntime {
698
703
  * **NOTE**: This method must be invoked by the fiber itself.
699
704
  */
700
705
  evaluateEffect(effect0) {
701
- this._supervisor.onResume(this);
706
+ this.currentSupervisor.onResume(this);
702
707
  try {
703
- let effect = _runtimeFlags.interruptible(this._runtimeFlags) && this.isInterrupted() ? core.exitFailCause(this.getInterruptedCause()) : effect0;
708
+ let effect = _runtimeFlags.interruptible(this.currentRuntimeFlags) && this.isInterrupted() ? core.exitFailCause(this.getInterruptedCause()) : effect0;
704
709
  while (effect !== null) {
705
710
  const eff = effect;
706
711
  const exit = this.runLoop(eff);
@@ -708,7 +713,7 @@ class FiberRuntime {
708
713
  const op = yieldedOpChannel.currentOp;
709
714
  yieldedOpChannel.currentOp = null;
710
715
  if (op._op === OpCodes.OP_YIELD) {
711
- if (_runtimeFlags.cooperativeYielding(this._runtimeFlags)) {
716
+ if (_runtimeFlags.cooperativeYielding(this.currentRuntimeFlags)) {
712
717
  this.tell(FiberMessage.yieldNow());
713
718
  this.tell(FiberMessage.resume(core.exitVoid));
714
719
  effect = null;
@@ -720,7 +725,7 @@ class FiberRuntime {
720
725
  effect = null;
721
726
  }
722
727
  } else {
723
- this._runtimeFlags = (0, _Function.pipe)(this._runtimeFlags, _runtimeFlags.enable(_runtimeFlags.WindDown));
728
+ this.currentRuntimeFlags = (0, _Function.pipe)(this.currentRuntimeFlags, _runtimeFlags.enable(_runtimeFlags.WindDown));
724
729
  const interruption = this.interruptAllChildren();
725
730
  if (interruption !== null) {
726
731
  effect = core.flatMap(interruption, () => exit);
@@ -739,7 +744,7 @@ class FiberRuntime {
739
744
  }
740
745
  }
741
746
  } finally {
742
- this._supervisor.onSuspend(this);
747
+ this.currentSupervisor.onSuspend(this);
743
748
  }
744
749
  }
745
750
  /**
@@ -791,7 +796,7 @@ class FiberRuntime {
791
796
  patchRuntimeFlags(oldRuntimeFlags, patch) {
792
797
  const newRuntimeFlags = _runtimeFlags.patch(oldRuntimeFlags, patch);
793
798
  globalThis[internalFiber.currentFiberURI] = this;
794
- this._runtimeFlags = newRuntimeFlags;
799
+ this.currentRuntimeFlags = newRuntimeFlags;
795
800
  return newRuntimeFlags;
796
801
  }
797
802
  /**
@@ -823,7 +828,7 @@ class FiberRuntime {
823
828
  if (cont._op === "OnStep") {
824
829
  this._steps.push({
825
830
  refs: this.getFiberRefs(),
826
- flags: this._runtimeFlags
831
+ flags: this.currentRuntimeFlags
827
832
  });
828
833
  }
829
834
  }
@@ -856,7 +861,7 @@ class FiberRuntime {
856
861
  }
857
862
  }
858
863
  [OpCodes.OP_TAG](op) {
859
- return core.map(core.fiberRefGet(core.currentContext), context => Context.unsafeGet(context, op));
864
+ return core.sync(() => Context.unsafeGet(this.currentContext, op));
860
865
  }
861
866
  ["Left"](op) {
862
867
  return core.fail(op.left);
@@ -939,7 +944,7 @@ class FiberRuntime {
939
944
  case OpCodes.OP_ON_FAILURE:
940
945
  case OpCodes.OP_ON_SUCCESS_AND_FAILURE:
941
946
  {
942
- if (!(_runtimeFlags.interruptible(this._runtimeFlags) && this.isInterrupted())) {
947
+ if (!(_runtimeFlags.interruptible(this.currentRuntimeFlags) && this.isInterrupted())) {
943
948
  return (0, _Utils.internalCall)(() => cont.effect_instruction_i1(cause));
944
949
  } else {
945
950
  return core.exitFailCause(internalCause.stripFailures(cause));
@@ -947,7 +952,7 @@ class FiberRuntime {
947
952
  }
948
953
  case "OnStep":
949
954
  {
950
- if (!(_runtimeFlags.interruptible(this._runtimeFlags) && this.isInterrupted())) {
955
+ if (!(_runtimeFlags.interruptible(this.currentRuntimeFlags) && this.isInterrupted())) {
951
956
  return core.exitSucceed(core.exitFailCause(cause));
952
957
  } else {
953
958
  return core.exitFailCause(internalCause.stripFailures(cause));
@@ -955,8 +960,8 @@ class FiberRuntime {
955
960
  }
956
961
  case OpCodes.OP_REVERT_FLAGS:
957
962
  {
958
- this.patchRuntimeFlags(this._runtimeFlags, cont.patch);
959
- if (_runtimeFlags.interruptible(this._runtimeFlags) && this.isInterrupted()) {
963
+ this.patchRuntimeFlags(this.currentRuntimeFlags, cont.patch);
964
+ if (_runtimeFlags.interruptible(this.currentRuntimeFlags) && this.isInterrupted()) {
960
965
  return core.exitFailCause(internalCause.sequential(cause, this.getInterruptedCause()));
961
966
  } else {
962
967
  return core.exitFailCause(cause);
@@ -973,11 +978,11 @@ class FiberRuntime {
973
978
  }
974
979
  }
975
980
  [OpCodes.OP_WITH_RUNTIME](op) {
976
- return (0, _Utils.internalCall)(() => op.effect_instruction_i0(this, FiberStatus.running(this._runtimeFlags)));
981
+ return (0, _Utils.internalCall)(() => op.effect_instruction_i0(this, FiberStatus.running(this.currentRuntimeFlags)));
977
982
  }
978
983
  ["Blocked"](op) {
979
984
  const refs = this.getFiberRefs();
980
- const flags = this._runtimeFlags;
985
+ const flags = this.currentRuntimeFlags;
981
986
  if (this._steps.length > 0) {
982
987
  const frames = [];
983
988
  const snap = this._steps[this._steps.length - 1];
@@ -987,7 +992,7 @@ class FiberRuntime {
987
992
  frame = this.popStack();
988
993
  }
989
994
  this.setFiberRefs(snap.refs);
990
- this._runtimeFlags = snap.flags;
995
+ this.currentRuntimeFlags = snap.flags;
991
996
  const patchRefs = FiberRefsPatch.diff(snap.refs, refs);
992
997
  const patchFlags = _runtimeFlags.diff(snap.flags, flags);
993
998
  return core.exitSucceed(core.blocked(op.effect_instruction_i0, core.withFiberRuntime(newFiber => {
@@ -995,7 +1000,7 @@ class FiberRuntime {
995
1000
  newFiber.pushStack(frames.pop());
996
1001
  }
997
1002
  newFiber.setFiberRefs(FiberRefsPatch.patch(newFiber.id(), newFiber.getFiberRefs())(patchRefs));
998
- newFiber._runtimeFlags = _runtimeFlags.patch(patchFlags)(newFiber._runtimeFlags);
1003
+ newFiber.currentRuntimeFlags = _runtimeFlags.patch(patchFlags)(newFiber.currentRuntimeFlags);
999
1004
  return op.effect_instruction_i1;
1000
1005
  })));
1001
1006
  }
@@ -1006,7 +1011,7 @@ class FiberRuntime {
1006
1011
  }
1007
1012
  [OpCodes.OP_UPDATE_RUNTIME_FLAGS](op) {
1008
1013
  const updateFlags = op.effect_instruction_i0;
1009
- const oldRuntimeFlags = this._runtimeFlags;
1014
+ const oldRuntimeFlags = this.currentRuntimeFlags;
1010
1015
  const newRuntimeFlags = _runtimeFlags.patch(oldRuntimeFlags, updateFlags);
1011
1016
  // One more chance to short circuit: if we're immediately going
1012
1017
  // to interrupt. Interruption will cause immediate reversion of
@@ -1016,7 +1021,7 @@ class FiberRuntime {
1016
1021
  return core.exitFailCause(this.getInterruptedCause());
1017
1022
  } else {
1018
1023
  // Impossible to short circuit, so record the changes
1019
- this.patchRuntimeFlags(this._runtimeFlags, updateFlags);
1024
+ this.patchRuntimeFlags(this.currentRuntimeFlags, updateFlags);
1020
1025
  if (op.effect_instruction_i1) {
1021
1026
  // Since we updated the flags, we need to revert them
1022
1027
  const revertFlags = _runtimeFlags.diff(newRuntimeFlags, oldRuntimeFlags);
@@ -1045,12 +1050,12 @@ class FiberRuntime {
1045
1050
  }
1046
1051
  [OpCodes.OP_ASYNC](op) {
1047
1052
  this._asyncBlockingOn = op.effect_instruction_i1;
1048
- this.initiateAsync(this._runtimeFlags, op.effect_instruction_i0);
1053
+ this.initiateAsync(this.currentRuntimeFlags, op.effect_instruction_i0);
1049
1054
  yieldedOpChannel.currentOp = op;
1050
1055
  return YieldedOp;
1051
1056
  }
1052
1057
  [OpCodes.OP_YIELD](op) {
1053
- this.isYielding = false;
1058
+ this._isYielding = false;
1054
1059
  yieldedOpChannel.currentOp = op;
1055
1060
  return YieldedOp;
1056
1061
  }
@@ -1075,19 +1080,18 @@ class FiberRuntime {
1075
1080
  runLoop(effect0) {
1076
1081
  let cur = effect0;
1077
1082
  this.currentOpCount = 0;
1078
- // eslint-disable-next-line no-constant-condition
1079
1083
  while (true) {
1080
- if ((this._runtimeFlags & _runtimeFlags2.OpSupervision) !== 0) {
1081
- this._supervisor.onEffect(this, cur);
1084
+ if ((this.currentRuntimeFlags & _runtimeFlags2.OpSupervision) !== 0) {
1085
+ this.currentSupervisor.onEffect(this, cur);
1082
1086
  }
1083
1087
  if (this._queue.length > 0) {
1084
- cur = this.drainQueueWhileRunning(this._runtimeFlags, cur);
1088
+ cur = this.drainQueueWhileRunning(this.currentRuntimeFlags, cur);
1085
1089
  }
1086
- if (!this.isYielding) {
1090
+ if (!this._isYielding) {
1087
1091
  this.currentOpCount += 1;
1088
- const shouldYield = this._scheduler.shouldYield(this);
1092
+ const shouldYield = this.currentScheduler.shouldYield(this);
1089
1093
  if (shouldYield !== false) {
1090
- this.isYielding = true;
1094
+ this._isYielding = true;
1091
1095
  this.currentOpCount = 0;
1092
1096
  const oldCur = cur;
1093
1097
  cur = core.flatMap(core.yieldNow({
@@ -1101,9 +1105,9 @@ class FiberRuntime {
1101
1105
  absurd(cur);
1102
1106
  }
1103
1107
  // @ts-expect-error
1104
- cur = this._tracer.context(() => {
1105
- if (version.getCurrentVersion() !== cur[_Effectable.EffectTypeId]._V) {
1106
- return core.dieMessage(`Cannot execute an Effect versioned ${cur[_Effectable.EffectTypeId]._V} with a Runtime of version ${version.getCurrentVersion()}`);
1108
+ cur = this.currentTracer.context(() => {
1109
+ if (version.getCurrentVersion() !== cur[core.EffectTypeId]._V) {
1110
+ return core.dieMessage(`Cannot execute an Effect versioned ${cur[core.EffectTypeId]._V} with a Runtime of version ${version.getCurrentVersion()}`);
1107
1111
  }
1108
1112
  // @ts-expect-error
1109
1113
  return this[cur._op](cur);
@@ -1142,6 +1146,27 @@ const loggerWithConsoleLog = self => internalLogger.makeLogger(opts => {
1142
1146
  });
1143
1147
  /** @internal */
1144
1148
  exports.loggerWithConsoleLog = loggerWithConsoleLog;
1149
+ const loggerWithLeveledLog = self => internalLogger.makeLogger(opts => {
1150
+ const services = FiberRefs.getOrDefault(opts.context, defaultServices.currentServices);
1151
+ const unsafeLogger = Context.get(services, _console.consoleTag).unsafe;
1152
+ switch (opts.logLevel._tag) {
1153
+ case "Debug":
1154
+ return unsafeLogger.debug(self.log(opts));
1155
+ case "Info":
1156
+ return unsafeLogger.info(self.log(opts));
1157
+ case "Trace":
1158
+ return unsafeLogger.trace(self.log(opts));
1159
+ case "Warning":
1160
+ return unsafeLogger.warn(self.log(opts));
1161
+ case "Error":
1162
+ case "Fatal":
1163
+ return unsafeLogger.error(self.log(opts));
1164
+ default:
1165
+ return unsafeLogger.log(self.log(opts));
1166
+ }
1167
+ });
1168
+ /** @internal */
1169
+ exports.loggerWithLeveledLog = loggerWithLeveledLog;
1145
1170
  const loggerWithConsoleError = self => internalLogger.makeLogger(opts => {
1146
1171
  const services = FiberRefs.getOrDefault(opts.context, defaultServices.currentServices);
1147
1172
  Context.get(services, _console.consoleTag).unsafe.error(self.log(opts));
@@ -1154,7 +1179,7 @@ const jsonLogger = exports.jsonLogger = /*#__PURE__*/(0, _GlobalValue.globalValu
1154
1179
  /** @internal */
1155
1180
  const logFmtLogger = exports.logFmtLogger = /*#__PURE__*/(0, _GlobalValue.globalValue)( /*#__PURE__*/Symbol.for("effect/Logger/logFmtLogger"), () => loggerWithConsoleLog(internalLogger.logfmtLogger));
1156
1181
  /** @internal */
1157
- const prettyLogger = exports.prettyLogger = /*#__PURE__*/(0, _GlobalValue.globalValue)( /*#__PURE__*/Symbol.for("effect/Logger/prettyLogger"), () => internalLogger.prettyLogger());
1182
+ const prettyLogger = exports.prettyLogger = /*#__PURE__*/(0, _GlobalValue.globalValue)( /*#__PURE__*/Symbol.for("effect/Logger/prettyLogger"), () => internalLogger.prettyLoggerDefault);
1158
1183
  /** @internal */
1159
1184
  const structuredLogger = exports.structuredLogger = /*#__PURE__*/(0, _GlobalValue.globalValue)( /*#__PURE__*/Symbol.for("effect/Logger/structuredLogger"), () => loggerWithConsoleLog(internalLogger.structuredLogger));
1160
1185
  /** @internal */
@@ -1230,10 +1255,10 @@ const acquireReleaseInterruptible = exports.acquireReleaseInterruptible = /*#__P
1230
1255
  /* @internal */
1231
1256
  const addFinalizer = finalizer => core.withFiberRuntime(runtime => {
1232
1257
  const acquireRefs = runtime.getFiberRefs();
1233
- const acquireFlags = runtime._runtimeFlags;
1258
+ const acquireFlags = runtime.currentRuntimeFlags;
1234
1259
  return core.flatMap(scope, scope => core.scopeAddFinalizerExit(scope, exit => core.withFiberRuntime(runtimeFinalizer => {
1235
1260
  const preRefs = runtimeFinalizer.getFiberRefs();
1236
- const preFlags = runtimeFinalizer._runtimeFlags;
1261
+ const preFlags = runtimeFinalizer.currentRuntimeFlags;
1237
1262
  const patchRefs = FiberRefsPatch.diff(preRefs, acquireRefs);
1238
1263
  const patchFlags = _runtimeFlags.diff(preFlags, acquireFlags);
1239
1264
  const inverseRefs = FiberRefsPatch.diff(acquireRefs, preRefs);
@@ -1389,7 +1414,7 @@ const forEachConcurrentDiscard = (self, f, batching, processAll, n) => core.unin
1389
1414
  const fibers = new Set();
1390
1415
  const results = new Array();
1391
1416
  const interruptAll = () => fibers.forEach(fiber => {
1392
- fiber._scheduler.scheduleTask(() => {
1417
+ fiber.currentScheduler.scheduleTask(() => {
1393
1418
  fiber.unsafeInterruptAsFork(parent.id());
1394
1419
  }, 0);
1395
1420
  });
@@ -1409,8 +1434,8 @@ const forEachConcurrentDiscard = (self, f, batching, processAll, n) => core.unin
1409
1434
  };
1410
1435
  const runFiber = (eff, interruptImmediately = false) => {
1411
1436
  const runnable = core.uninterruptible(graft(eff));
1412
- const fiber = unsafeForkUnstarted(runnable, parent, parent._runtimeFlags, fiberScope.globalScope);
1413
- parent._scheduler.scheduleTask(() => {
1437
+ const fiber = unsafeForkUnstarted(runnable, parent, parent.currentRuntimeFlags, fiberScope.globalScope);
1438
+ parent.currentScheduler.scheduleTask(() => {
1414
1439
  if (interruptImmediately) {
1415
1440
  fiber.unsafeInterruptAsFork(parent.id());
1416
1441
  }
@@ -1464,7 +1489,7 @@ const forEachConcurrentDiscard = (self, f, batching, processAll, n) => core.unin
1464
1489
  startOrder.push(fiber);
1465
1490
  fibers.add(fiber);
1466
1491
  if (interrupted) {
1467
- fiber._scheduler.scheduleTask(() => {
1492
+ fiber.currentScheduler.scheduleTask(() => {
1468
1493
  fiber.unsafeInterruptAsFork(parent.id());
1469
1494
  }, 0);
1470
1495
  }
@@ -1578,7 +1603,7 @@ const unsafeMakeChildFiber = (effect, parentFiber, parentRuntimeFlags, overrideS
1578
1603
  const childFiberRefs = fiberRefs.forkAs(parentFiberRefs, childId);
1579
1604
  const childFiber = new FiberRuntime(childId, childFiberRefs, parentRuntimeFlags);
1580
1605
  const childContext = fiberRefs.getOrDefault(childFiberRefs, core.currentContext);
1581
- const supervisor = childFiber._supervisor;
1606
+ const supervisor = childFiber.currentSupervisor;
1582
1607
  supervisor.onStart(childContext, effect, Option.some(parentFiber), childFiber);
1583
1608
  childFiber.addObserver(exit => supervisor.onEnd(exit, childFiber));
1584
1609
  const parentScope = overrideScope !== null ? overrideScope : (0, _Function.pipe)(parentFiber.getFiberRef(core.currentForkScopeOverride), Option.getOrElse(() => parentFiber.scope()));
@@ -1886,41 +1911,45 @@ const currentSupervisor = exports.currentSupervisor = /*#__PURE__*/fiberRefUnsaf
1886
1911
  const fiberAwaitAll = fibers => forEach(fibers, internalFiber._await);
1887
1912
  /** @internal */
1888
1913
  exports.fiberAwaitAll = fiberAwaitAll;
1889
- const fiberAll = fibers => ({
1890
- [internalFiber.FiberTypeId]: internalFiber.fiberVariance,
1891
- id: () => RA.fromIterable(fibers).reduce((id, fiber) => FiberId.combine(id, fiber.id()), FiberId.none),
1892
- await: core.exit(forEachParUnbounded(fibers, fiber => core.flatten(fiber.await), false)),
1893
- children: core.map(forEachParUnbounded(fibers, fiber => fiber.children, false), RA.flatten),
1894
- inheritAll: core.forEachSequentialDiscard(fibers, fiber => fiber.inheritAll),
1895
- poll: core.map(core.forEachSequential(fibers, fiber => fiber.poll), RA.reduceRight(Option.some(core.exitSucceed(new Array())), (optionB, optionA) => {
1896
- switch (optionA._tag) {
1897
- case "None":
1898
- {
1899
- return Option.none();
1900
- }
1901
- case "Some":
1902
- {
1903
- switch (optionB._tag) {
1904
- case "None":
1905
- {
1906
- return Option.none();
1907
- }
1908
- case "Some":
1909
- {
1910
- return Option.some(core.exitZipWith(optionA.value, optionB.value, {
1911
- onSuccess: (a, chunk) => [a, ...chunk],
1912
- onFailure: internalCause.parallel
1913
- }));
1914
- }
1914
+ const fiberAll = fibers => {
1915
+ const _fiberAll = {
1916
+ ...Effectable.CommitPrototype,
1917
+ commit() {
1918
+ return internalFiber.join(this);
1919
+ },
1920
+ [internalFiber.FiberTypeId]: internalFiber.fiberVariance,
1921
+ id: () => RA.fromIterable(fibers).reduce((id, fiber) => FiberId.combine(id, fiber.id()), FiberId.none),
1922
+ await: core.exit(forEachParUnbounded(fibers, fiber => core.flatten(fiber.await), false)),
1923
+ children: core.map(forEachParUnbounded(fibers, fiber => fiber.children, false), RA.flatten),
1924
+ inheritAll: core.forEachSequentialDiscard(fibers, fiber => fiber.inheritAll),
1925
+ poll: core.map(core.forEachSequential(fibers, fiber => fiber.poll), RA.reduceRight(Option.some(core.exitSucceed(new Array())), (optionB, optionA) => {
1926
+ switch (optionA._tag) {
1927
+ case "None":
1928
+ {
1929
+ return Option.none();
1915
1930
  }
1916
- }
1917
- }
1918
- })),
1919
- interruptAsFork: fiberId => core.forEachSequentialDiscard(fibers, fiber => fiber.interruptAsFork(fiberId)),
1920
- pipe() {
1921
- return (0, _Pipeable.pipeArguments)(this, arguments);
1922
- }
1923
- });
1931
+ case "Some":
1932
+ {
1933
+ switch (optionB._tag) {
1934
+ case "None":
1935
+ {
1936
+ return Option.none();
1937
+ }
1938
+ case "Some":
1939
+ {
1940
+ return Option.some(core.exitZipWith(optionA.value, optionB.value, {
1941
+ onSuccess: (a, chunk) => [a, ...chunk],
1942
+ onFailure: internalCause.parallel
1943
+ }));
1944
+ }
1945
+ }
1946
+ }
1947
+ }
1948
+ })),
1949
+ interruptAsFork: fiberId => core.forEachSequentialDiscard(fibers, fiber => fiber.interruptAsFork(fiberId))
1950
+ };
1951
+ return _fiberAll;
1952
+ };
1924
1953
  /* @internal */
1925
1954
  exports.fiberAll = fiberAll;
1926
1955
  const fiberInterruptFork = self => core.asVoid(forkDaemon(core.interruptFiber(self)));