@clayroach/effect 3.19.14-source-capture.8 → 3.19.14-source-trace.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SourceLocation/package.json +6 -0
- package/dist/cjs/Effect.js +2 -28
- package/dist/cjs/Effect.js.map +1 -1
- package/dist/cjs/FiberRef.js +12 -1
- package/dist/cjs/FiberRef.js.map +1 -1
- package/dist/cjs/Layer.js +2 -24
- package/dist/cjs/Layer.js.map +1 -1
- package/dist/cjs/RuntimeFlags.js +1 -29
- package/dist/cjs/RuntimeFlags.js.map +1 -1
- package/dist/cjs/SourceLocation.js +60 -0
- package/dist/cjs/SourceLocation.js.map +1 -0
- package/dist/cjs/Tracer.js +1 -15
- package/dist/cjs/Tracer.js.map +1 -1
- package/dist/cjs/Utils.js +1 -1
- package/dist/cjs/Utils.js.map +1 -1
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/internal/clock.js +1 -1
- package/dist/cjs/internal/clock.js.map +1 -1
- package/dist/cjs/internal/core.js +17 -50
- package/dist/cjs/internal/core.js.map +1 -1
- package/dist/cjs/internal/effect/circular.js +18 -30
- package/dist/cjs/internal/effect/circular.js.map +1 -1
- package/dist/cjs/internal/fiberRuntime.js +16 -65
- package/dist/cjs/internal/fiberRuntime.js.map +1 -1
- package/dist/cjs/internal/layer/circular.js +1 -5
- package/dist/cjs/internal/layer/circular.js.map +1 -1
- package/dist/cjs/internal/layer.js +1 -3
- package/dist/cjs/internal/layer.js.map +1 -1
- package/dist/cjs/internal/logger.js +25 -2
- package/dist/cjs/internal/logger.js.map +1 -1
- package/dist/cjs/internal/runtimeFlags.js +2 -11
- package/dist/cjs/internal/runtimeFlags.js.map +1 -1
- package/dist/cjs/internal/tracer.js +1 -114
- package/dist/cjs/internal/tracer.js.map +1 -1
- package/dist/dts/Config.d.ts +2 -2
- package/dist/dts/Config.d.ts.map +1 -1
- package/dist/dts/Effect.d.ts +8 -29
- package/dist/dts/Effect.d.ts.map +1 -1
- package/dist/dts/FiberRef.d.ts +12 -0
- package/dist/dts/FiberRef.d.ts.map +1 -1
- package/dist/dts/Layer.d.ts +0 -22
- package/dist/dts/Layer.d.ts.map +1 -1
- package/dist/dts/RuntimeFlags.d.ts +0 -28
- package/dist/dts/RuntimeFlags.d.ts.map +1 -1
- package/dist/dts/SourceLocation.d.ts +88 -0
- package/dist/dts/SourceLocation.d.ts.map +1 -0
- package/dist/dts/Tracer.d.ts +0 -15
- package/dist/dts/Tracer.d.ts.map +1 -1
- package/dist/dts/index.d.ts +6 -0
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/internal/core.d.ts.map +1 -1
- package/dist/dts/internal/layer.d.ts.map +1 -1
- package/dist/dts/internal/runtimeFlags.d.ts.map +1 -1
- package/dist/esm/Effect.js +0 -26
- package/dist/esm/Effect.js.map +1 -1
- package/dist/esm/FiberRef.js +11 -0
- package/dist/esm/FiberRef.js.map +1 -1
- package/dist/esm/Layer.js +0 -22
- package/dist/esm/Layer.js.map +1 -1
- package/dist/esm/RuntimeFlags.js +0 -28
- package/dist/esm/RuntimeFlags.js.map +1 -1
- package/dist/esm/SourceLocation.js +51 -0
- package/dist/esm/SourceLocation.js.map +1 -0
- package/dist/esm/Tracer.js +0 -14
- package/dist/esm/Tracer.js.map +1 -1
- package/dist/esm/Utils.js +1 -1
- package/dist/esm/Utils.js.map +1 -1
- package/dist/esm/index.js +6 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/clock.js +1 -1
- package/dist/esm/internal/clock.js.map +1 -1
- package/dist/esm/internal/core.js +12 -45
- package/dist/esm/internal/core.js.map +1 -1
- package/dist/esm/internal/effect/circular.js +18 -30
- package/dist/esm/internal/effect/circular.js.map +1 -1
- package/dist/esm/internal/fiberRuntime.js +13 -60
- package/dist/esm/internal/fiberRuntime.js.map +1 -1
- package/dist/esm/internal/layer/circular.js +0 -4
- package/dist/esm/internal/layer/circular.js.map +1 -1
- package/dist/esm/internal/layer.js +0 -2
- package/dist/esm/internal/layer.js.map +1 -1
- package/dist/esm/internal/logger.js +25 -2
- package/dist/esm/internal/logger.js.map +1 -1
- package/dist/esm/internal/runtimeFlags.js +1 -9
- package/dist/esm/internal/runtimeFlags.js.map +1 -1
- package/dist/esm/internal/tracer.js +0 -111
- package/dist/esm/internal/tracer.js.map +1 -1
- package/package.json +12 -1
- package/src/Arbitrary.ts +1101 -0
- package/src/Array.ts +3589 -0
- package/src/BigDecimal.ts +1349 -0
- package/src/BigInt.ts +643 -0
- package/src/Boolean.ts +287 -0
- package/src/Brand.ts +360 -0
- package/src/Cache.ts +281 -0
- package/src/Cause.ts +1555 -0
- package/src/Channel.ts +2355 -0
- package/src/ChildExecutorDecision.ts +146 -0
- package/src/Chunk.ts +1495 -0
- package/src/Clock.ts +111 -0
- package/src/Config.ts +542 -0
- package/src/ConfigError.ts +270 -0
- package/src/ConfigProvider.ts +333 -0
- package/src/ConfigProviderPathPatch.ts +100 -0
- package/src/Console.ts +226 -0
- package/src/Context.ts +585 -0
- package/src/Cron.ts +706 -0
- package/src/Data.ts +596 -0
- package/src/DateTime.ts +1686 -0
- package/src/DefaultServices.ts +34 -0
- package/src/Deferred.ts +301 -0
- package/src/Differ.ts +450 -0
- package/src/Duration.ts +1000 -0
- package/src/Effect.ts +14817 -0
- package/src/Effectable.ts +107 -0
- package/src/Either.ts +1040 -0
- package/src/Encoding.ts +195 -0
- package/src/Equal.ts +98 -0
- package/src/Equivalence.ts +235 -0
- package/src/ExecutionPlan.ts +308 -0
- package/src/ExecutionStrategy.ts +119 -0
- package/src/Exit.ts +467 -0
- package/src/FastCheck.ts +9 -0
- package/src/Fiber.ts +744 -0
- package/src/FiberHandle.ts +540 -0
- package/src/FiberId.ts +195 -0
- package/src/FiberMap.ts +656 -0
- package/src/FiberRef.ts +444 -0
- package/src/FiberRefs.ts +204 -0
- package/src/FiberRefsPatch.ts +105 -0
- package/src/FiberSet.ts +491 -0
- package/src/FiberStatus.ts +108 -0
- package/src/Function.ts +1222 -0
- package/src/GlobalValue.ts +53 -0
- package/src/Graph.ts +3732 -0
- package/src/GroupBy.ts +103 -0
- package/src/HKT.ts +45 -0
- package/src/Hash.ts +195 -0
- package/src/HashMap.ts +519 -0
- package/src/HashRing.ts +317 -0
- package/src/HashSet.ts +2346 -0
- package/src/Inspectable.ts +287 -0
- package/src/Iterable.ts +1119 -0
- package/src/JSONSchema.ts +1044 -0
- package/src/KeyedPool.ts +167 -0
- package/src/Layer.ts +1228 -0
- package/src/LayerMap.ts +436 -0
- package/src/List.ts +977 -0
- package/src/LogLevel.ts +285 -0
- package/src/LogSpan.ts +25 -0
- package/src/Logger.ts +702 -0
- package/src/Mailbox.ts +268 -0
- package/src/ManagedRuntime.ts +180 -0
- package/src/Match.ts +1477 -0
- package/src/MergeDecision.ts +95 -0
- package/src/MergeState.ts +172 -0
- package/src/MergeStrategy.ts +107 -0
- package/src/Metric.ts +780 -0
- package/src/MetricBoundaries.ts +69 -0
- package/src/MetricHook.ts +151 -0
- package/src/MetricKey.ts +224 -0
- package/src/MetricKeyType.ts +262 -0
- package/src/MetricLabel.ts +47 -0
- package/src/MetricPair.ts +71 -0
- package/src/MetricPolling.ts +148 -0
- package/src/MetricRegistry.ts +48 -0
- package/src/MetricState.ts +257 -0
- package/src/Micro.ts +4405 -0
- package/src/ModuleVersion.ts +18 -0
- package/src/MutableHashMap.ts +411 -0
- package/src/MutableHashSet.ts +706 -0
- package/src/MutableList.ts +297 -0
- package/src/MutableQueue.ts +227 -0
- package/src/MutableRef.ts +202 -0
- package/src/NonEmptyIterable.ts +32 -0
- package/src/Number.ts +1071 -0
- package/src/Option.ts +2170 -0
- package/src/Order.ts +373 -0
- package/src/Ordering.ts +111 -0
- package/src/ParseResult.ts +2031 -0
- package/src/PartitionedSemaphore.ts +200 -0
- package/src/Pipeable.ts +566 -0
- package/src/Pool.ts +204 -0
- package/src/Predicate.ts +1405 -0
- package/src/Pretty.ts +205 -0
- package/src/PrimaryKey.ts +23 -0
- package/src/PubSub.ts +182 -0
- package/src/Queue.ts +644 -0
- package/src/Random.ts +204 -0
- package/src/RateLimiter.ts +138 -0
- package/src/RcMap.ts +141 -0
- package/src/RcRef.ts +122 -0
- package/src/Readable.ts +93 -0
- package/src/Record.ts +1274 -0
- package/src/RedBlackTree.ts +421 -0
- package/src/Redacted.ts +144 -0
- package/src/Ref.ts +180 -0
- package/src/RegExp.ts +38 -0
- package/src/Reloadable.ts +127 -0
- package/src/Request.ts +347 -0
- package/src/RequestBlock.ts +118 -0
- package/src/RequestResolver.ts +366 -0
- package/src/Resource.ts +119 -0
- package/src/Runtime.ts +383 -0
- package/src/RuntimeFlags.ts +336 -0
- package/src/RuntimeFlagsPatch.ts +183 -0
- package/src/STM.ts +2045 -0
- package/src/Schedule.ts +2219 -0
- package/src/ScheduleDecision.ts +62 -0
- package/src/ScheduleInterval.ts +151 -0
- package/src/ScheduleIntervals.ts +122 -0
- package/src/Scheduler.ts +353 -0
- package/src/Schema.ts +10914 -0
- package/src/SchemaAST.ts +3043 -0
- package/src/Scope.ts +204 -0
- package/src/ScopedCache.ts +151 -0
- package/src/ScopedRef.ts +117 -0
- package/src/Secret.ts +88 -0
- package/src/SingleProducerAsyncInput.ts +67 -0
- package/src/Sink.ts +1461 -0
- package/src/SortedMap.ts +287 -0
- package/src/SortedSet.ts +390 -0
- package/src/SourceLocation.ts +108 -0
- package/src/Stream.ts +6468 -0
- package/src/StreamEmit.ts +136 -0
- package/src/StreamHaltStrategy.ts +123 -0
- package/src/Streamable.ts +45 -0
- package/src/String.ts +778 -0
- package/src/Struct.ts +243 -0
- package/src/Subscribable.ts +100 -0
- package/src/SubscriptionRef.ts +298 -0
- package/src/Supervisor.ts +240 -0
- package/src/Symbol.ts +29 -0
- package/src/SynchronizedRef.ts +270 -0
- package/src/TArray.ts +495 -0
- package/src/TDeferred.ts +100 -0
- package/src/TMap.ts +515 -0
- package/src/TPriorityQueue.ts +223 -0
- package/src/TPubSub.ts +200 -0
- package/src/TQueue.ts +432 -0
- package/src/TRandom.ts +129 -0
- package/src/TReentrantLock.ts +224 -0
- package/src/TRef.ts +178 -0
- package/src/TSemaphore.ts +129 -0
- package/src/TSet.ts +365 -0
- package/src/TSubscriptionRef.ts +192 -0
- package/src/Take.ts +258 -0
- package/src/TestAnnotation.ts +158 -0
- package/src/TestAnnotationMap.ts +119 -0
- package/src/TestAnnotations.ts +117 -0
- package/src/TestClock.ts +556 -0
- package/src/TestConfig.ts +47 -0
- package/src/TestContext.ts +36 -0
- package/src/TestLive.ts +53 -0
- package/src/TestServices.ts +390 -0
- package/src/TestSized.ts +55 -0
- package/src/Tracer.ts +182 -0
- package/src/Trie.ts +840 -0
- package/src/Tuple.ts +305 -0
- package/src/Types.ts +353 -0
- package/src/Unify.ts +113 -0
- package/src/UpstreamPullRequest.ts +117 -0
- package/src/UpstreamPullStrategy.ts +121 -0
- package/src/Utils.ts +809 -0
- package/src/index.ts +1568 -0
- package/src/internal/array.ts +8 -0
- package/src/internal/blockedRequests.ts +520 -0
- package/src/internal/cache.ts +733 -0
- package/src/internal/cause.ts +1050 -0
- package/src/internal/channel/channelExecutor.ts +1200 -0
- package/src/internal/channel/channelState.ts +134 -0
- package/src/internal/channel/childExecutorDecision.ts +96 -0
- package/src/internal/channel/continuation.ts +200 -0
- package/src/internal/channel/mergeDecision.ts +113 -0
- package/src/internal/channel/mergeState.ts +120 -0
- package/src/internal/channel/mergeStrategy.ts +72 -0
- package/src/internal/channel/singleProducerAsyncInput.ts +259 -0
- package/src/internal/channel/subexecutor.ts +229 -0
- package/src/internal/channel/upstreamPullRequest.ts +84 -0
- package/src/internal/channel/upstreamPullStrategy.ts +87 -0
- package/src/internal/channel.ts +2603 -0
- package/src/internal/clock.ts +95 -0
- package/src/internal/completedRequestMap.ts +9 -0
- package/src/internal/concurrency.ts +54 -0
- package/src/internal/config.ts +716 -0
- package/src/internal/configError.ts +304 -0
- package/src/internal/configProvider/pathPatch.ts +97 -0
- package/src/internal/configProvider.ts +799 -0
- package/src/internal/console.ts +153 -0
- package/src/internal/context.ts +337 -0
- package/src/internal/core-effect.ts +2293 -0
- package/src/internal/core-stream.ts +998 -0
- package/src/internal/core.ts +3189 -0
- package/src/internal/data.ts +36 -0
- package/src/internal/dataSource.ts +327 -0
- package/src/internal/dateTime.ts +1277 -0
- package/src/internal/defaultServices/console.ts +100 -0
- package/src/internal/defaultServices.ts +163 -0
- package/src/internal/deferred.ts +46 -0
- package/src/internal/differ/chunkPatch.ts +211 -0
- package/src/internal/differ/contextPatch.ts +232 -0
- package/src/internal/differ/hashMapPatch.ts +220 -0
- package/src/internal/differ/hashSetPatch.ts +176 -0
- package/src/internal/differ/orPatch.ts +311 -0
- package/src/internal/differ/readonlyArrayPatch.ts +210 -0
- package/src/internal/differ.ts +200 -0
- package/src/internal/doNotation.ts +80 -0
- package/src/internal/effect/circular.ts +895 -0
- package/src/internal/effectable.ts +131 -0
- package/src/internal/either.ts +110 -0
- package/src/internal/encoding/base64.ts +286 -0
- package/src/internal/encoding/base64Url.ts +29 -0
- package/src/internal/encoding/common.ts +51 -0
- package/src/internal/encoding/hex.ts +315 -0
- package/src/internal/errors.ts +7 -0
- package/src/internal/executionPlan.ts +114 -0
- package/src/internal/executionStrategy.ts +74 -0
- package/src/internal/fiber.ts +388 -0
- package/src/internal/fiberId.ts +267 -0
- package/src/internal/fiberMessage.ts +82 -0
- package/src/internal/fiberRefs/patch.ts +144 -0
- package/src/internal/fiberRefs.ts +297 -0
- package/src/internal/fiberRuntime.ts +3842 -0
- package/src/internal/fiberScope.ts +71 -0
- package/src/internal/fiberStatus.ts +119 -0
- package/src/internal/groupBy.ts +530 -0
- package/src/internal/hashMap/array.ts +49 -0
- package/src/internal/hashMap/bitwise.ts +32 -0
- package/src/internal/hashMap/config.ts +14 -0
- package/src/internal/hashMap/keySet.ts +8 -0
- package/src/internal/hashMap/node.ts +391 -0
- package/src/internal/hashMap.ts +586 -0
- package/src/internal/hashSet.ts +323 -0
- package/src/internal/keyedPool.ts +244 -0
- package/src/internal/layer/circular.ts +214 -0
- package/src/internal/layer.ts +1483 -0
- package/src/internal/logSpan.ts +20 -0
- package/src/internal/logger-circular.ts +24 -0
- package/src/internal/logger.ts +522 -0
- package/src/internal/mailbox.ts +561 -0
- package/src/internal/managedRuntime/circular.ts +6 -0
- package/src/internal/managedRuntime.ts +134 -0
- package/src/internal/matcher.ts +652 -0
- package/src/internal/metric/boundaries.ts +75 -0
- package/src/internal/metric/hook.ts +483 -0
- package/src/internal/metric/key.ts +167 -0
- package/src/internal/metric/keyType.ts +238 -0
- package/src/internal/metric/label.ts +41 -0
- package/src/internal/metric/pair.ts +48 -0
- package/src/internal/metric/polling.ts +149 -0
- package/src/internal/metric/registry.ts +187 -0
- package/src/internal/metric/state.ts +290 -0
- package/src/internal/metric.ts +577 -0
- package/src/internal/opCodes/cause.ts +35 -0
- package/src/internal/opCodes/channel.ts +83 -0
- package/src/internal/opCodes/channelChildExecutorDecision.ts +17 -0
- package/src/internal/opCodes/channelMergeDecision.ts +11 -0
- package/src/internal/opCodes/channelMergeState.ts +17 -0
- package/src/internal/opCodes/channelMergeStrategy.ts +11 -0
- package/src/internal/opCodes/channelState.ts +23 -0
- package/src/internal/opCodes/channelUpstreamPullRequest.ts +11 -0
- package/src/internal/opCodes/channelUpstreamPullStrategy.ts +11 -0
- package/src/internal/opCodes/config.ts +65 -0
- package/src/internal/opCodes/configError.ts +35 -0
- package/src/internal/opCodes/continuation.ts +11 -0
- package/src/internal/opCodes/deferred.ts +11 -0
- package/src/internal/opCodes/effect.ts +89 -0
- package/src/internal/opCodes/layer.ts +59 -0
- package/src/internal/opCodes/streamHaltStrategy.ts +23 -0
- package/src/internal/option.ts +80 -0
- package/src/internal/pool.ts +432 -0
- package/src/internal/pubsub.ts +1762 -0
- package/src/internal/query.ts +204 -0
- package/src/internal/queue.ts +766 -0
- package/src/internal/random.ts +161 -0
- package/src/internal/rateLimiter.ts +93 -0
- package/src/internal/rcMap.ts +285 -0
- package/src/internal/rcRef.ts +192 -0
- package/src/internal/redBlackTree/iterator.ts +200 -0
- package/src/internal/redBlackTree/node.ts +68 -0
- package/src/internal/redBlackTree.ts +1245 -0
- package/src/internal/redacted.ts +73 -0
- package/src/internal/ref.ts +171 -0
- package/src/internal/reloadable.ts +140 -0
- package/src/internal/request.ts +177 -0
- package/src/internal/resource.ts +76 -0
- package/src/internal/ringBuffer.ts +68 -0
- package/src/internal/runtime.ts +558 -0
- package/src/internal/runtimeFlags.ts +178 -0
- package/src/internal/runtimeFlagsPatch.ts +103 -0
- package/src/internal/schedule/decision.ts +47 -0
- package/src/internal/schedule/interval.ts +101 -0
- package/src/internal/schedule/intervals.ts +180 -0
- package/src/internal/schedule.ts +2199 -0
- package/src/internal/schema/errors.ts +191 -0
- package/src/internal/schema/schemaId.ts +106 -0
- package/src/internal/schema/util.ts +50 -0
- package/src/internal/scopedCache.ts +644 -0
- package/src/internal/scopedRef.ts +118 -0
- package/src/internal/secret.ts +89 -0
- package/src/internal/singleShotGen.ts +35 -0
- package/src/internal/sink.ts +2120 -0
- package/src/internal/stack.ts +10 -0
- package/src/internal/stm/core.ts +817 -0
- package/src/internal/stm/entry.ts +59 -0
- package/src/internal/stm/journal.ts +123 -0
- package/src/internal/stm/opCodes/stm.ts +71 -0
- package/src/internal/stm/opCodes/stmState.ts +17 -0
- package/src/internal/stm/opCodes/strategy.ts +17 -0
- package/src/internal/stm/opCodes/tExit.ts +29 -0
- package/src/internal/stm/opCodes/tryCommit.ts +11 -0
- package/src/internal/stm/stm.ts +1453 -0
- package/src/internal/stm/stmState.ts +136 -0
- package/src/internal/stm/tArray.ts +550 -0
- package/src/internal/stm/tDeferred.ts +81 -0
- package/src/internal/stm/tExit.ts +190 -0
- package/src/internal/stm/tMap.ts +824 -0
- package/src/internal/stm/tPriorityQueue.ts +267 -0
- package/src/internal/stm/tPubSub.ts +551 -0
- package/src/internal/stm/tQueue.ts +393 -0
- package/src/internal/stm/tRandom.ts +140 -0
- package/src/internal/stm/tReentrantLock.ts +352 -0
- package/src/internal/stm/tRef.ts +195 -0
- package/src/internal/stm/tSemaphore.ts +113 -0
- package/src/internal/stm/tSet.ts +259 -0
- package/src/internal/stm/tSubscriptionRef.ts +286 -0
- package/src/internal/stm/tryCommit.ts +34 -0
- package/src/internal/stm/txnId.ts +14 -0
- package/src/internal/stm/versioned.ts +4 -0
- package/src/internal/stream/debounceState.ts +57 -0
- package/src/internal/stream/emit.ts +123 -0
- package/src/internal/stream/haltStrategy.ts +94 -0
- package/src/internal/stream/handoff.ts +187 -0
- package/src/internal/stream/handoffSignal.ts +59 -0
- package/src/internal/stream/pull.ts +34 -0
- package/src/internal/stream/sinkEndReason.ts +30 -0
- package/src/internal/stream/zipAllState.ts +88 -0
- package/src/internal/stream/zipChunksState.ts +56 -0
- package/src/internal/stream.ts +8801 -0
- package/src/internal/string-utils.ts +107 -0
- package/src/internal/subscriptionRef.ts +138 -0
- package/src/internal/supervisor/patch.ts +190 -0
- package/src/internal/supervisor.ts +303 -0
- package/src/internal/synchronizedRef.ts +114 -0
- package/src/internal/take.ts +199 -0
- package/src/internal/testing/sleep.ts +27 -0
- package/src/internal/testing/suspendedWarningData.ts +85 -0
- package/src/internal/testing/warningData.ts +94 -0
- package/src/internal/tracer.ts +150 -0
- package/src/internal/trie.ts +722 -0
- package/src/internal/version.ts +7 -0
package/src/Fiber.ts
ADDED
|
@@ -0,0 +1,744 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 2.0.0
|
|
3
|
+
*/
|
|
4
|
+
import type * as Cause from "./Cause.js"
|
|
5
|
+
import type { Context } from "./Context.js"
|
|
6
|
+
import type { DefaultServices } from "./DefaultServices.js"
|
|
7
|
+
import type * as Effect from "./Effect.js"
|
|
8
|
+
import type * as Either from "./Either.js"
|
|
9
|
+
import type * as Exit from "./Exit.js"
|
|
10
|
+
import type * as FiberId from "./FiberId.js"
|
|
11
|
+
import type { FiberRef } from "./FiberRef.js"
|
|
12
|
+
import type * as FiberRefs from "./FiberRefs.js"
|
|
13
|
+
import type * as FiberStatus from "./FiberStatus.js"
|
|
14
|
+
import type * as HashSet from "./HashSet.js"
|
|
15
|
+
import * as core from "./internal/core.js"
|
|
16
|
+
import * as circular from "./internal/effect/circular.js"
|
|
17
|
+
import * as internal from "./internal/fiber.js"
|
|
18
|
+
import * as fiberRuntime from "./internal/fiberRuntime.js"
|
|
19
|
+
import type * as Option from "./Option.js"
|
|
20
|
+
import type * as order from "./Order.js"
|
|
21
|
+
import type * as RuntimeFlags from "./RuntimeFlags.js"
|
|
22
|
+
import type { Scheduler } from "./Scheduler.js"
|
|
23
|
+
import type * as Scope from "./Scope.js"
|
|
24
|
+
import type { Supervisor } from "./Supervisor.js"
|
|
25
|
+
import type { AnySpan, Tracer } from "./Tracer.js"
|
|
26
|
+
import type * as Types from "./Types.js"
|
|
27
|
+
import type * as Unify from "./Unify.js"
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* @since 2.0.0
|
|
31
|
+
* @category symbols
|
|
32
|
+
*/
|
|
33
|
+
export const FiberTypeId: unique symbol = internal.FiberTypeId
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* @since 2.0.0
|
|
37
|
+
* @category symbols
|
|
38
|
+
*/
|
|
39
|
+
export type FiberTypeId = typeof FiberTypeId
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* @since 2.0.0
|
|
43
|
+
* @category symbols
|
|
44
|
+
*/
|
|
45
|
+
export const RuntimeFiberTypeId: unique symbol = internal.RuntimeFiberTypeId
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* @since 2.0.0
|
|
49
|
+
* @category symbols
|
|
50
|
+
*/
|
|
51
|
+
export type RuntimeFiberTypeId = typeof RuntimeFiberTypeId
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* A fiber is a lightweight thread of execution that never consumes more than a
|
|
55
|
+
* whole thread (but may consume much less, depending on contention and
|
|
56
|
+
* asynchronicity). Fibers are spawned by forking effects, which run
|
|
57
|
+
* concurrently with the parent effect.
|
|
58
|
+
*
|
|
59
|
+
* Fibers can be joined, yielding their result to other fibers, or interrupted,
|
|
60
|
+
* which terminates the fiber, safely releasing all resources.
|
|
61
|
+
*
|
|
62
|
+
* @since 2.0.0
|
|
63
|
+
* @category models
|
|
64
|
+
*/
|
|
65
|
+
export interface Fiber<out A, out E = never> extends Effect.Effect<A, E>, Fiber.Variance<A, E> {
|
|
66
|
+
/**
|
|
67
|
+
* The identity of the fiber.
|
|
68
|
+
*/
|
|
69
|
+
id(): FiberId.FiberId
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Awaits the fiber, which suspends the awaiting fiber until the result of the
|
|
73
|
+
* fiber has been determined.
|
|
74
|
+
*/
|
|
75
|
+
readonly await: Effect.Effect<Exit.Exit<A, E>>
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Retrieves the immediate children of the fiber.
|
|
79
|
+
*/
|
|
80
|
+
readonly children: Effect.Effect<Array<Fiber.Runtime<any, any>>>
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Inherits values from all `FiberRef` instances into current fiber. This
|
|
84
|
+
* will resume immediately.
|
|
85
|
+
*/
|
|
86
|
+
readonly inheritAll: Effect.Effect<void>
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Tentatively observes the fiber, but returns immediately if it is not
|
|
90
|
+
* already done.
|
|
91
|
+
*/
|
|
92
|
+
readonly poll: Effect.Effect<Option.Option<Exit.Exit<A, E>>>
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* In the background, interrupts the fiber as if interrupted from the
|
|
96
|
+
* specified fiber. If the fiber has already exited, the returned effect will
|
|
97
|
+
* resume immediately. Otherwise, the effect will resume when the fiber exits.
|
|
98
|
+
*/
|
|
99
|
+
interruptAsFork(fiberId: FiberId.FiberId): Effect.Effect<void>
|
|
100
|
+
|
|
101
|
+
readonly [Unify.typeSymbol]?: unknown
|
|
102
|
+
readonly [Unify.unifySymbol]?: FiberUnify<this>
|
|
103
|
+
readonly [Unify.ignoreSymbol]?: FiberUnifyIgnore
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* @category models
|
|
108
|
+
* @since 3.8.0
|
|
109
|
+
*/
|
|
110
|
+
export interface FiberUnify<A extends { [Unify.typeSymbol]?: any }> extends Effect.EffectUnify<A> {
|
|
111
|
+
Fiber?: () => A[Unify.typeSymbol] extends Fiber<infer A0, infer E0> | infer _ ? Fiber<A0, E0> : never
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* @category models
|
|
116
|
+
* @since 3.8.0
|
|
117
|
+
*/
|
|
118
|
+
export interface FiberUnifyIgnore extends Effect.EffectUnifyIgnore {
|
|
119
|
+
Effect?: true
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* A runtime fiber that is executing an effect. Runtime fibers have an
|
|
124
|
+
* identity and a trace.
|
|
125
|
+
*
|
|
126
|
+
* @since 2.0.0
|
|
127
|
+
* @category models
|
|
128
|
+
*/
|
|
129
|
+
export interface RuntimeFiber<out A, out E = never> extends Fiber<A, E>, Fiber.RuntimeVariance<A, E> {
|
|
130
|
+
/**
|
|
131
|
+
* Reads the current number of ops that have occurred since the last yield
|
|
132
|
+
*/
|
|
133
|
+
get currentOpCount(): number
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* Reads the current value of a fiber ref
|
|
137
|
+
*/
|
|
138
|
+
getFiberRef<X>(fiberRef: FiberRef<X>): X
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* The identity of the fiber.
|
|
142
|
+
*/
|
|
143
|
+
id(): FiberId.Runtime
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* The status of the fiber.
|
|
147
|
+
*/
|
|
148
|
+
readonly status: Effect.Effect<FiberStatus.FiberStatus>
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Returns the current `RuntimeFlags` the fiber is running with.
|
|
152
|
+
*/
|
|
153
|
+
readonly runtimeFlags: Effect.Effect<RuntimeFlags.RuntimeFlags>
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Adds an observer to the list of observers.
|
|
157
|
+
*/
|
|
158
|
+
addObserver(observer: (exit: Exit.Exit<A, E>) => void): void
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Removes the specified observer from the list of observers that will be
|
|
162
|
+
* notified when the fiber exits.
|
|
163
|
+
*/
|
|
164
|
+
removeObserver(observer: (exit: Exit.Exit<A, E>) => void): void
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Retrieves all fiber refs of the fiber.
|
|
168
|
+
*/
|
|
169
|
+
getFiberRefs(): FiberRefs.FiberRefs
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* Unsafely observes the fiber, but returns immediately if it is not
|
|
173
|
+
* already done.
|
|
174
|
+
*/
|
|
175
|
+
unsafePoll(): Exit.Exit<A, E> | null
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* In the background, interrupts the fiber as if interrupted from the
|
|
179
|
+
* specified fiber. If the fiber has already exited, the returned effect will
|
|
180
|
+
* resume immediately. Otherwise, the effect will resume when the fiber exits.
|
|
181
|
+
*/
|
|
182
|
+
unsafeInterruptAsFork(fiberId: FiberId.FiberId): void
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* Gets the current context
|
|
186
|
+
*/
|
|
187
|
+
get currentContext(): Context<never>
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* Gets the current context
|
|
191
|
+
*/
|
|
192
|
+
get currentDefaultServices(): Context<DefaultServices>
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* Gets the current scheduler
|
|
196
|
+
*/
|
|
197
|
+
get currentScheduler(): Scheduler
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* Gets the current tracer
|
|
201
|
+
*/
|
|
202
|
+
get currentTracer(): Tracer
|
|
203
|
+
|
|
204
|
+
/**
|
|
205
|
+
* Gets the current span
|
|
206
|
+
*/
|
|
207
|
+
get currentSpan(): AnySpan | undefined
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
* Gets the current supervisor
|
|
211
|
+
*/
|
|
212
|
+
get currentSupervisor(): Supervisor<unknown>
|
|
213
|
+
|
|
214
|
+
readonly [Unify.typeSymbol]?: unknown
|
|
215
|
+
readonly [Unify.unifySymbol]?: RuntimeFiberUnify<this>
|
|
216
|
+
readonly [Unify.ignoreSymbol]?: RuntimeFiberUnifyIgnore
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* @category models
|
|
221
|
+
* @since 3.8.0
|
|
222
|
+
*/
|
|
223
|
+
export interface RuntimeFiberUnify<A extends { [Unify.typeSymbol]?: any }> extends FiberUnify<A> {
|
|
224
|
+
RuntimeFiber?: () => A[Unify.typeSymbol] extends RuntimeFiber<infer A0, infer E0> | infer _ ? RuntimeFiber<A0, E0>
|
|
225
|
+
: never
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* @category models
|
|
230
|
+
* @since 3.8.0
|
|
231
|
+
*/
|
|
232
|
+
export interface RuntimeFiberUnifyIgnore extends FiberUnifyIgnore {
|
|
233
|
+
Fiber?: true
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
/**
|
|
237
|
+
* @since 2.0.0
|
|
238
|
+
*/
|
|
239
|
+
export declare namespace Fiber {
|
|
240
|
+
/**
|
|
241
|
+
* @since 2.0.0
|
|
242
|
+
* @category models
|
|
243
|
+
*/
|
|
244
|
+
export type Runtime<A, E = never> = RuntimeFiber<A, E>
|
|
245
|
+
|
|
246
|
+
/**
|
|
247
|
+
* @since 2.0.0
|
|
248
|
+
* @category models
|
|
249
|
+
*/
|
|
250
|
+
export interface Variance<out A, out E> {
|
|
251
|
+
readonly [FiberTypeId]: {
|
|
252
|
+
readonly _A: Types.Covariant<A>
|
|
253
|
+
readonly _E: Types.Covariant<E>
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* @since 2.0.0
|
|
259
|
+
*/
|
|
260
|
+
export interface RuntimeVariance<out A, out E> {
|
|
261
|
+
readonly [RuntimeFiberTypeId]: {
|
|
262
|
+
readonly _A: Types.Covariant<A>
|
|
263
|
+
readonly _E: Types.Covariant<E>
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
/**
|
|
268
|
+
* @since 2.0.0
|
|
269
|
+
* @category models
|
|
270
|
+
*/
|
|
271
|
+
export interface Dump {
|
|
272
|
+
/**
|
|
273
|
+
* The fiber's unique identifier.
|
|
274
|
+
*/
|
|
275
|
+
readonly id: FiberId.Runtime
|
|
276
|
+
/**
|
|
277
|
+
* The status of the fiber.
|
|
278
|
+
*/
|
|
279
|
+
readonly status: FiberStatus.FiberStatus
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
/**
|
|
283
|
+
* A record containing information about a `Fiber`.
|
|
284
|
+
*
|
|
285
|
+
* @since 2.0.0
|
|
286
|
+
* @category models
|
|
287
|
+
*/
|
|
288
|
+
export interface Descriptor {
|
|
289
|
+
/**
|
|
290
|
+
* The fiber's unique identifier.
|
|
291
|
+
*/
|
|
292
|
+
readonly id: FiberId.FiberId
|
|
293
|
+
/**
|
|
294
|
+
* The status of the fiber.
|
|
295
|
+
*/
|
|
296
|
+
readonly status: FiberStatus.FiberStatus
|
|
297
|
+
/**
|
|
298
|
+
* The set of fibers attempting to interrupt the fiber or its ancestors.
|
|
299
|
+
*/
|
|
300
|
+
readonly interruptors: HashSet.HashSet<FiberId.FiberId>
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
/**
|
|
305
|
+
* @since 2.0.0
|
|
306
|
+
* @category instances
|
|
307
|
+
*/
|
|
308
|
+
export const Order: order.Order<RuntimeFiber<unknown, unknown>> = internal.Order
|
|
309
|
+
|
|
310
|
+
/**
|
|
311
|
+
* Returns `true` if the specified value is a `Fiber`, `false` otherwise.
|
|
312
|
+
*
|
|
313
|
+
* @since 2.0.0
|
|
314
|
+
* @category refinements
|
|
315
|
+
*/
|
|
316
|
+
export const isFiber: (u: unknown) => u is Fiber<unknown, unknown> = internal.isFiber
|
|
317
|
+
|
|
318
|
+
/**
|
|
319
|
+
* Returns `true` if the specified `Fiber` is a `RuntimeFiber`, `false`
|
|
320
|
+
* otherwise.
|
|
321
|
+
*
|
|
322
|
+
* @since 2.0.0
|
|
323
|
+
* @category refinements
|
|
324
|
+
*/
|
|
325
|
+
export const isRuntimeFiber: <A, E>(self: Fiber<A, E>) => self is RuntimeFiber<A, E> = internal.isRuntimeFiber
|
|
326
|
+
|
|
327
|
+
/**
|
|
328
|
+
* The identity of the fiber.
|
|
329
|
+
*
|
|
330
|
+
* @since 2.0.0
|
|
331
|
+
* @category getters
|
|
332
|
+
*/
|
|
333
|
+
export const id: <A, E>(self: Fiber<A, E>) => FiberId.FiberId = internal.id
|
|
334
|
+
|
|
335
|
+
const _await: <A, E>(self: Fiber<A, E>) => Effect.Effect<Exit.Exit<A, E>> = internal._await
|
|
336
|
+
|
|
337
|
+
export {
|
|
338
|
+
/**
|
|
339
|
+
* Awaits the fiber, which suspends the awaiting fiber until the result of the
|
|
340
|
+
* fiber has been determined.
|
|
341
|
+
*
|
|
342
|
+
* @since 2.0.0
|
|
343
|
+
* @category getters
|
|
344
|
+
*/
|
|
345
|
+
_await as await
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
/**
|
|
349
|
+
* Awaits on all fibers to be completed, successfully or not.
|
|
350
|
+
*
|
|
351
|
+
* @since 2.0.0
|
|
352
|
+
* @category destructors
|
|
353
|
+
*/
|
|
354
|
+
export const awaitAll: <const T extends Iterable<Fiber<any, any>>>(
|
|
355
|
+
fibers: T
|
|
356
|
+
) => Effect.Effect<
|
|
357
|
+
[T] extends [ReadonlyArray<infer U>]
|
|
358
|
+
? number extends T["length"] ? Array<U extends Fiber<infer A, infer E> ? Exit.Exit<A, E> : never>
|
|
359
|
+
: { -readonly [K in keyof T]: T[K] extends Fiber<infer A, infer E> ? Exit.Exit<A, E> : never }
|
|
360
|
+
: Array<T extends Iterable<infer U> ? U extends Fiber<infer A, infer E> ? Exit.Exit<A, E> : never : never>
|
|
361
|
+
> = fiberRuntime.fiberAwaitAll
|
|
362
|
+
|
|
363
|
+
/**
|
|
364
|
+
* Retrieves the immediate children of the fiber.
|
|
365
|
+
*
|
|
366
|
+
* @since 2.0.0
|
|
367
|
+
* @category getters
|
|
368
|
+
*/
|
|
369
|
+
export const children: <A, E>(self: Fiber<A, E>) => Effect.Effect<Array<RuntimeFiber<any, any>>> = internal.children
|
|
370
|
+
|
|
371
|
+
/**
|
|
372
|
+
* Collects all fibers into a single fiber producing an in-order list of the
|
|
373
|
+
* results.
|
|
374
|
+
*
|
|
375
|
+
* @since 2.0.0
|
|
376
|
+
* @category constructors
|
|
377
|
+
*/
|
|
378
|
+
export const all: <A, E>(fibers: Iterable<Fiber<A, E>>) => Fiber<ReadonlyArray<A>, E> = fiberRuntime.fiberAll
|
|
379
|
+
|
|
380
|
+
/**
|
|
381
|
+
* A fiber that is done with the specified `Exit` value.
|
|
382
|
+
*
|
|
383
|
+
* @since 2.0.0
|
|
384
|
+
* @category constructors
|
|
385
|
+
*/
|
|
386
|
+
export const done: <A, E>(exit: Exit.Exit<A, E>) => Fiber<A, E> = internal.done
|
|
387
|
+
|
|
388
|
+
/**
|
|
389
|
+
* @since 2.0.0
|
|
390
|
+
* @category destructors
|
|
391
|
+
*/
|
|
392
|
+
export const dump: <A, E>(self: RuntimeFiber<A, E>) => Effect.Effect<Fiber.Dump> = internal.dump
|
|
393
|
+
|
|
394
|
+
/**
|
|
395
|
+
* @since 2.0.0
|
|
396
|
+
* @category destructors
|
|
397
|
+
*/
|
|
398
|
+
export const dumpAll: (
|
|
399
|
+
fibers: Iterable<RuntimeFiber<unknown, unknown>>
|
|
400
|
+
) => Effect.Effect<Array<Fiber.Dump>> = internal.dumpAll
|
|
401
|
+
|
|
402
|
+
/**
|
|
403
|
+
* A fiber that has already failed with the specified value.
|
|
404
|
+
*
|
|
405
|
+
* @since 2.0.0
|
|
406
|
+
* @category constructors
|
|
407
|
+
*/
|
|
408
|
+
export const fail: <E>(error: E) => Fiber<never, E> = internal.fail
|
|
409
|
+
|
|
410
|
+
/**
|
|
411
|
+
* Creates a `Fiber` that has already failed with the specified cause.
|
|
412
|
+
*
|
|
413
|
+
* @since 2.0.0
|
|
414
|
+
* @category constructors
|
|
415
|
+
*/
|
|
416
|
+
export const failCause: <E>(cause: Cause.Cause<E>) => Fiber<never, E> = internal.failCause
|
|
417
|
+
|
|
418
|
+
/**
|
|
419
|
+
* Lifts an `Effect` into a `Fiber`.
|
|
420
|
+
*
|
|
421
|
+
* @since 2.0.0
|
|
422
|
+
* @category conversions
|
|
423
|
+
*/
|
|
424
|
+
export const fromEffect: <A, E>(effect: Effect.Effect<A, E>) => Effect.Effect<Fiber<A, E>> = internal.fromEffect
|
|
425
|
+
|
|
426
|
+
/**
|
|
427
|
+
* Gets the current fiber if one is running.
|
|
428
|
+
*
|
|
429
|
+
* @since 2.0.0
|
|
430
|
+
* @category utilities
|
|
431
|
+
*/
|
|
432
|
+
export const getCurrentFiber: () => Option.Option<RuntimeFiber<any, any>> = internal.getCurrentFiber
|
|
433
|
+
|
|
434
|
+
/**
|
|
435
|
+
* Inherits values from all `FiberRef` instances into current fiber. This
|
|
436
|
+
* will resume immediately.
|
|
437
|
+
*
|
|
438
|
+
* @since 2.0.0
|
|
439
|
+
* @category destructors
|
|
440
|
+
*/
|
|
441
|
+
export const inheritAll: <A, E>(self: Fiber<A, E>) => Effect.Effect<void> = internal.inheritAll
|
|
442
|
+
|
|
443
|
+
/**
|
|
444
|
+
* Interrupts the fiber from whichever fiber is calling this method. If the
|
|
445
|
+
* fiber has already exited, the returned effect will resume immediately.
|
|
446
|
+
* Otherwise, the effect will resume when the fiber exits.
|
|
447
|
+
*
|
|
448
|
+
* @since 2.0.0
|
|
449
|
+
* @category interruption
|
|
450
|
+
*/
|
|
451
|
+
export const interrupt: <A, E>(self: Fiber<A, E>) => Effect.Effect<Exit.Exit<A, E>> = core.interruptFiber
|
|
452
|
+
|
|
453
|
+
/**
|
|
454
|
+
* Constructrs a `Fiber` that is already interrupted.
|
|
455
|
+
*
|
|
456
|
+
* @since 2.0.0
|
|
457
|
+
* @category constructors
|
|
458
|
+
*/
|
|
459
|
+
export const interrupted: (fiberId: FiberId.FiberId) => Fiber<never> = internal.interrupted
|
|
460
|
+
|
|
461
|
+
/**
|
|
462
|
+
* Interrupts the fiber as if interrupted from the specified fiber. If the
|
|
463
|
+
* fiber has already exited, the returned effect will resume immediately.
|
|
464
|
+
* Otherwise, the effect will resume when the fiber exits.
|
|
465
|
+
*
|
|
466
|
+
* @since 2.0.0
|
|
467
|
+
* @category interruption
|
|
468
|
+
*/
|
|
469
|
+
export const interruptAs: {
|
|
470
|
+
(fiberId: FiberId.FiberId): <A, E>(self: Fiber<A, E>) => Effect.Effect<Exit.Exit<A, E>>
|
|
471
|
+
<A, E>(self: Fiber<A, E>, fiberId: FiberId.FiberId): Effect.Effect<Exit.Exit<A, E>>
|
|
472
|
+
} = core.interruptAsFiber
|
|
473
|
+
|
|
474
|
+
/**
|
|
475
|
+
* Interrupts the fiber as if interrupted from the specified fiber. If the
|
|
476
|
+
* fiber has already exited, the returned effect will resume immediately.
|
|
477
|
+
* Otherwise, the effect will resume when the fiber exits.
|
|
478
|
+
*
|
|
479
|
+
* @since 2.0.0
|
|
480
|
+
* @category interruption
|
|
481
|
+
*/
|
|
482
|
+
export const interruptAsFork: {
|
|
483
|
+
(fiberId: FiberId.FiberId): <A, E>(self: Fiber<A, E>) => Effect.Effect<void>
|
|
484
|
+
<A, E>(self: Fiber<A, E>, fiberId: FiberId.FiberId): Effect.Effect<void>
|
|
485
|
+
} = internal.interruptAsFork
|
|
486
|
+
|
|
487
|
+
/**
|
|
488
|
+
* Interrupts all fibers, awaiting their interruption.
|
|
489
|
+
*
|
|
490
|
+
* @since 2.0.0
|
|
491
|
+
* @category interruption
|
|
492
|
+
*/
|
|
493
|
+
export const interruptAll: (fibers: Iterable<Fiber<any, any>>) => Effect.Effect<void> = internal.interruptAll
|
|
494
|
+
|
|
495
|
+
/**
|
|
496
|
+
* Interrupts all fibers as by the specified fiber, awaiting their
|
|
497
|
+
* interruption.
|
|
498
|
+
*
|
|
499
|
+
* @since 2.0.0
|
|
500
|
+
* @category interruption
|
|
501
|
+
*/
|
|
502
|
+
export const interruptAllAs: {
|
|
503
|
+
(fiberId: FiberId.FiberId): (fibers: Iterable<Fiber<any, any>>) => Effect.Effect<void>
|
|
504
|
+
(fibers: Iterable<Fiber<any, any>>, fiberId: FiberId.FiberId): Effect.Effect<void>
|
|
505
|
+
} = internal.interruptAllAs
|
|
506
|
+
|
|
507
|
+
/**
|
|
508
|
+
* Interrupts the fiber from whichever fiber is calling this method. The
|
|
509
|
+
* interruption will happen in a separate daemon fiber, and the returned
|
|
510
|
+
* effect will always resume immediately without waiting.
|
|
511
|
+
*
|
|
512
|
+
* @since 2.0.0
|
|
513
|
+
* @category interruption
|
|
514
|
+
*/
|
|
515
|
+
export const interruptFork: <A, E>(self: Fiber<A, E>) => Effect.Effect<void> = fiberRuntime.fiberInterruptFork
|
|
516
|
+
|
|
517
|
+
/**
|
|
518
|
+
* Joins the fiber, which suspends the joining fiber until the result of the
|
|
519
|
+
* fiber has been determined. Attempting to join a fiber that has erred will
|
|
520
|
+
* result in a catchable error. Joining an interrupted fiber will result in an
|
|
521
|
+
* "inner interruption" of this fiber, unlike interruption triggered by
|
|
522
|
+
* another fiber, "inner interruption" can be caught and recovered.
|
|
523
|
+
*
|
|
524
|
+
* @since 2.0.0
|
|
525
|
+
* @category destructors
|
|
526
|
+
*/
|
|
527
|
+
export const join: <A, E>(self: Fiber<A, E>) => Effect.Effect<A, E> = internal.join
|
|
528
|
+
|
|
529
|
+
/**
|
|
530
|
+
* Joins all fibers, awaiting their _successful_ completion. Attempting to
|
|
531
|
+
* join a fiber that has erred will result in a catchable error, _if_ that
|
|
532
|
+
* error does not result from interruption.
|
|
533
|
+
*
|
|
534
|
+
* @since 2.0.0
|
|
535
|
+
* @category destructors
|
|
536
|
+
*/
|
|
537
|
+
export const joinAll: <A, E>(fibers: Iterable<Fiber<A, E>>) => Effect.Effect<Array<A>, E> = fiberRuntime.fiberJoinAll
|
|
538
|
+
|
|
539
|
+
/**
|
|
540
|
+
* Maps over the value the Fiber computes.
|
|
541
|
+
*
|
|
542
|
+
* @since 2.0.0
|
|
543
|
+
* @category mapping
|
|
544
|
+
*/
|
|
545
|
+
export const map: {
|
|
546
|
+
<A, B>(f: (a: A) => B): <E>(self: Fiber<A, E>) => Fiber<B, E>
|
|
547
|
+
<A, E, B>(self: Fiber<A, E>, f: (a: A) => B): Fiber<B, E>
|
|
548
|
+
} = internal.map
|
|
549
|
+
|
|
550
|
+
/**
|
|
551
|
+
* Effectually maps over the value the fiber computes.
|
|
552
|
+
*
|
|
553
|
+
* @since 2.0.0
|
|
554
|
+
* @category mapping
|
|
555
|
+
*/
|
|
556
|
+
export const mapEffect: {
|
|
557
|
+
<A, A2, E2>(f: (a: A) => Effect.Effect<A2, E2>): <E>(self: Fiber<A, E>) => Fiber<A2, E2 | E>
|
|
558
|
+
<A, E, A2, E2>(self: Fiber<A, E>, f: (a: A) => Effect.Effect<A2, E2>): Fiber<A2, E | E2>
|
|
559
|
+
} = internal.mapEffect
|
|
560
|
+
|
|
561
|
+
/**
|
|
562
|
+
* Passes the success of this fiber to the specified callback, and continues
|
|
563
|
+
* with the fiber that it returns.
|
|
564
|
+
*
|
|
565
|
+
* @since 2.0.0
|
|
566
|
+
* @category mapping
|
|
567
|
+
*/
|
|
568
|
+
export const mapFiber: {
|
|
569
|
+
<E, E2, A, B>(f: (a: A) => Fiber<B, E2>): (self: Fiber<A, E>) => Effect.Effect<Fiber<B, E | E2>>
|
|
570
|
+
<A, E, E2, B>(self: Fiber<A, E>, f: (a: A) => Fiber<B, E2>): Effect.Effect<Fiber<B, E | E2>>
|
|
571
|
+
} = internal.mapFiber
|
|
572
|
+
|
|
573
|
+
/**
|
|
574
|
+
* Folds over the `Fiber` or `RuntimeFiber`.
|
|
575
|
+
*
|
|
576
|
+
* @since 2.0.0
|
|
577
|
+
* @category folding
|
|
578
|
+
*/
|
|
579
|
+
export const match: {
|
|
580
|
+
<A, E, Z>(
|
|
581
|
+
options: {
|
|
582
|
+
readonly onFiber: (fiber: Fiber<A, E>) => Z
|
|
583
|
+
readonly onRuntimeFiber: (fiber: RuntimeFiber<A, E>) => Z
|
|
584
|
+
}
|
|
585
|
+
): (self: Fiber<A, E>) => Z
|
|
586
|
+
<A, E, Z>(
|
|
587
|
+
self: Fiber<A, E>,
|
|
588
|
+
options: {
|
|
589
|
+
readonly onFiber: (fiber: Fiber<A, E>) => Z
|
|
590
|
+
readonly onRuntimeFiber: (fiber: RuntimeFiber<A, E>) => Z
|
|
591
|
+
}
|
|
592
|
+
): Z
|
|
593
|
+
} = internal.match
|
|
594
|
+
|
|
595
|
+
/**
|
|
596
|
+
* A fiber that never fails or succeeds.
|
|
597
|
+
*
|
|
598
|
+
* @since 2.0.0
|
|
599
|
+
* @category constructors
|
|
600
|
+
*/
|
|
601
|
+
export const never: Fiber<never> = internal.never
|
|
602
|
+
|
|
603
|
+
/**
|
|
604
|
+
* Returns a fiber that prefers `this` fiber, but falls back to the `that` one
|
|
605
|
+
* when `this` one fails. Interrupting the returned fiber will interrupt both
|
|
606
|
+
* fibers, sequentially, from left to right.
|
|
607
|
+
*
|
|
608
|
+
* @since 2.0.0
|
|
609
|
+
* @category alternatives
|
|
610
|
+
*/
|
|
611
|
+
export const orElse: {
|
|
612
|
+
<A2, E2>(that: Fiber<A2, E2>): <A, E>(self: Fiber<A, E>) => Fiber<A2 | A, E2 | E>
|
|
613
|
+
<A, E, A2, E2>(self: Fiber<A, E>, that: Fiber<A2, E2>): Fiber<A | A2, E | E2>
|
|
614
|
+
} = internal.orElse
|
|
615
|
+
|
|
616
|
+
/**
|
|
617
|
+
* Returns a fiber that prefers `this` fiber, but falls back to the `that` one
|
|
618
|
+
* when `this` one fails. Interrupting the returned fiber will interrupt both
|
|
619
|
+
* fibers, sequentially, from left to right.
|
|
620
|
+
*
|
|
621
|
+
* @since 2.0.0
|
|
622
|
+
* @category alternatives
|
|
623
|
+
*/
|
|
624
|
+
export const orElseEither: {
|
|
625
|
+
<A2, E2>(that: Fiber<A2, E2>): <A, E>(self: Fiber<A, E>) => Fiber<Either.Either<A2, A>, E2 | E>
|
|
626
|
+
<A, E, A2, E2>(self: Fiber<A, E>, that: Fiber<A2, E2>): Fiber<Either.Either<A2, A>, E | E2>
|
|
627
|
+
} = internal.orElseEither
|
|
628
|
+
|
|
629
|
+
/**
|
|
630
|
+
* Tentatively observes the fiber, but returns immediately if it is not
|
|
631
|
+
* already done.
|
|
632
|
+
*
|
|
633
|
+
* @since 2.0.0
|
|
634
|
+
* @category getters
|
|
635
|
+
*/
|
|
636
|
+
export const poll: <A, E>(self: Fiber<A, E>) => Effect.Effect<Option.Option<Exit.Exit<A, E>>> = internal.poll
|
|
637
|
+
|
|
638
|
+
/**
|
|
639
|
+
* Pretty-prints a `RuntimeFiber`.
|
|
640
|
+
*
|
|
641
|
+
* @since 2.0.0
|
|
642
|
+
* @category destructors
|
|
643
|
+
*/
|
|
644
|
+
export const pretty: <A, E>(self: RuntimeFiber<A, E>) => Effect.Effect<string> = internal.pretty
|
|
645
|
+
|
|
646
|
+
/**
|
|
647
|
+
* Returns a chunk containing all root fibers.
|
|
648
|
+
*
|
|
649
|
+
* @since 2.0.0
|
|
650
|
+
* @category constructors
|
|
651
|
+
*/
|
|
652
|
+
export const roots: Effect.Effect<Array<RuntimeFiber<any, any>>> = internal.roots
|
|
653
|
+
|
|
654
|
+
/**
|
|
655
|
+
* Returns a chunk containing all root fibers.
|
|
656
|
+
*
|
|
657
|
+
* @since 2.0.0
|
|
658
|
+
* @category constructors
|
|
659
|
+
*/
|
|
660
|
+
export const unsafeRoots: (_: void) => Array<RuntimeFiber<any, any>> = internal.unsafeRoots
|
|
661
|
+
|
|
662
|
+
/**
|
|
663
|
+
* Converts this fiber into a scoped effect. The fiber is interrupted when the
|
|
664
|
+
* scope is closed.
|
|
665
|
+
*
|
|
666
|
+
* @since 2.0.0
|
|
667
|
+
* @category destructors
|
|
668
|
+
*/
|
|
669
|
+
export const scoped: <A, E>(self: Fiber<A, E>) => Effect.Effect<Fiber<A, E>, never, Scope.Scope> =
|
|
670
|
+
fiberRuntime.fiberScoped
|
|
671
|
+
|
|
672
|
+
/**
|
|
673
|
+
* Returns the `FiberStatus` of a `RuntimeFiber`.
|
|
674
|
+
*
|
|
675
|
+
* @since 2.0.0
|
|
676
|
+
* @category getters
|
|
677
|
+
*/
|
|
678
|
+
export const status: <A, E>(self: RuntimeFiber<A, E>) => Effect.Effect<FiberStatus.FiberStatus> = internal.status
|
|
679
|
+
|
|
680
|
+
/**
|
|
681
|
+
* Returns a fiber that has already succeeded with the specified value.
|
|
682
|
+
*
|
|
683
|
+
* @since 2.0.0
|
|
684
|
+
* @category constructors
|
|
685
|
+
*/
|
|
686
|
+
export const succeed: <A>(value: A) => Fiber<A> = internal.succeed
|
|
687
|
+
|
|
688
|
+
const void_: Fiber<void> = internal.void
|
|
689
|
+
export {
|
|
690
|
+
/**
|
|
691
|
+
* A fiber that has already succeeded with unit.
|
|
692
|
+
*
|
|
693
|
+
* @since 2.0.0
|
|
694
|
+
* @category constructors
|
|
695
|
+
*/
|
|
696
|
+
void_ as void
|
|
697
|
+
}
|
|
698
|
+
|
|
699
|
+
/**
|
|
700
|
+
* Zips this fiber and the specified fiber together, producing a tuple of
|
|
701
|
+
* their output.
|
|
702
|
+
*
|
|
703
|
+
* @since 2.0.0
|
|
704
|
+
* @category zipping
|
|
705
|
+
*/
|
|
706
|
+
export const zip: {
|
|
707
|
+
<A2, E2>(that: Fiber<A2, E2>): <A, E>(self: Fiber<A, E>) => Fiber<[A, A2], E2 | E>
|
|
708
|
+
<A, E, A2, E2>(self: Fiber<A, E>, that: Fiber<A2, E2>): Fiber<[A, A2], E | E2>
|
|
709
|
+
} = circular.zipFiber
|
|
710
|
+
|
|
711
|
+
/**
|
|
712
|
+
* Same as `zip` but discards the output of that `Fiber`.
|
|
713
|
+
*
|
|
714
|
+
* @since 2.0.0
|
|
715
|
+
* @category zipping
|
|
716
|
+
*/
|
|
717
|
+
export const zipLeft: {
|
|
718
|
+
<A2, E2>(that: Fiber<A2, E2>): <A, E>(self: Fiber<A, E>) => Fiber<A, E2 | E>
|
|
719
|
+
<A, E, A2, E2>(self: Fiber<A, E>, that: Fiber<A2, E2>): Fiber<A, E | E2>
|
|
720
|
+
} = circular.zipLeftFiber
|
|
721
|
+
|
|
722
|
+
/**
|
|
723
|
+
* Same as `zip` but discards the output of this `Fiber`.
|
|
724
|
+
*
|
|
725
|
+
* @since 2.0.0
|
|
726
|
+
* @category zipping
|
|
727
|
+
*/
|
|
728
|
+
export const zipRight: {
|
|
729
|
+
<A2, E2>(that: Fiber<A2, E2>): <A, E>(self: Fiber<A, E>) => Fiber<A2, E2 | E>
|
|
730
|
+
<A, E, A2, E2>(self: Fiber<A, E>, that: Fiber<A2, E2>): Fiber<A2, E | E2>
|
|
731
|
+
} = circular.zipRightFiber
|
|
732
|
+
|
|
733
|
+
/**
|
|
734
|
+
* Zips this fiber with the specified fiber, combining their results using the
|
|
735
|
+
* specified combiner function. Both joins and interruptions are performed in
|
|
736
|
+
* sequential order from left to right.
|
|
737
|
+
*
|
|
738
|
+
* @since 2.0.0
|
|
739
|
+
* @category zipping
|
|
740
|
+
*/
|
|
741
|
+
export const zipWith: {
|
|
742
|
+
<B, E2, A, C>(that: Fiber<B, E2>, f: (a: A, b: B) => C): <E>(self: Fiber<A, E>) => Fiber<C, E2 | E>
|
|
743
|
+
<A, E, B, E2, C>(self: Fiber<A, E>, that: Fiber<B, E2>, f: (a: A, b: B) => C): Fiber<C, E | E2>
|
|
744
|
+
} = circular.zipWithFiber
|