@clayroach/effect 3.19.14-source-capture.8 → 3.19.14-source-trace.1
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/FiberRef.ts
ADDED
|
@@ -0,0 +1,444 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 2.0.0
|
|
3
|
+
*/
|
|
4
|
+
import type * as Cause from "./Cause.js"
|
|
5
|
+
import type * as Chunk from "./Chunk.js"
|
|
6
|
+
import type * as Context from "./Context.js"
|
|
7
|
+
import type * as Differ from "./Differ.js"
|
|
8
|
+
import type * as Effect from "./Effect.js"
|
|
9
|
+
import type { LazyArg } from "./Function.js"
|
|
10
|
+
import type * as HashMap from "./HashMap.js"
|
|
11
|
+
import type * as HashSet from "./HashSet.js"
|
|
12
|
+
import * as core from "./internal/core.js"
|
|
13
|
+
import * as fiberRuntime from "./internal/fiberRuntime.js"
|
|
14
|
+
import * as query from "./internal/query.js"
|
|
15
|
+
import type * as List from "./List.js"
|
|
16
|
+
import type * as Logger from "./Logger.js"
|
|
17
|
+
import type * as LogLevel from "./LogLevel.js"
|
|
18
|
+
import type * as LogSpan from "./LogSpan.js"
|
|
19
|
+
import type * as MetricLabel from "./MetricLabel.js"
|
|
20
|
+
import type * as Option from "./Option.js"
|
|
21
|
+
import type * as Request from "./Request.js"
|
|
22
|
+
import type * as RuntimeFlags from "./RuntimeFlags.js"
|
|
23
|
+
import * as Scheduler from "./Scheduler.js"
|
|
24
|
+
import type * as Scope from "./Scope.js"
|
|
25
|
+
import type * as SourceLocation from "./SourceLocation.js"
|
|
26
|
+
import type * as Supervisor from "./Supervisor.js"
|
|
27
|
+
import type * as Tracer from "./Tracer.js"
|
|
28
|
+
import type * as Types from "./Types.js"
|
|
29
|
+
import type * as Unify from "./Unify.js"
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* @since 2.0.0
|
|
33
|
+
* @category symbols
|
|
34
|
+
*/
|
|
35
|
+
export const FiberRefTypeId: unique symbol = core.FiberRefTypeId
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* @since 2.0.0
|
|
39
|
+
* @category symbols
|
|
40
|
+
*/
|
|
41
|
+
export type FiberRefTypeId = typeof FiberRefTypeId
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* @since 2.0.0
|
|
45
|
+
* @category model
|
|
46
|
+
*/
|
|
47
|
+
export interface FiberRef<in out A> extends Effect.Effect<A>, Variance<A> {
|
|
48
|
+
/** @internal */
|
|
49
|
+
readonly initial: A
|
|
50
|
+
/** @internal */
|
|
51
|
+
diff(oldValue: A, newValue: A): unknown
|
|
52
|
+
/** @internal */
|
|
53
|
+
combine(first: unknown, second: unknown): unknown
|
|
54
|
+
/** @internal */
|
|
55
|
+
patch(patch: unknown): (oldValue: A) => A
|
|
56
|
+
/** @internal */
|
|
57
|
+
readonly fork: unknown
|
|
58
|
+
/** @internal */
|
|
59
|
+
join(oldValue: A, newValue: A): A
|
|
60
|
+
readonly [Unify.typeSymbol]?: unknown
|
|
61
|
+
readonly [Unify.unifySymbol]?: FiberRefUnify<this>
|
|
62
|
+
readonly [Unify.ignoreSymbol]?: FiberRefUnifyIgnore
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* @category models
|
|
67
|
+
* @since 3.8.0
|
|
68
|
+
*/
|
|
69
|
+
export interface FiberRefUnify<A extends { [Unify.typeSymbol]?: any }> extends Effect.EffectUnify<A> {
|
|
70
|
+
FiberRef?: () => Extract<A[Unify.typeSymbol], FiberRef<any>>
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* @category models
|
|
75
|
+
* @since 3.8.0
|
|
76
|
+
*/
|
|
77
|
+
export interface FiberRefUnifyIgnore extends Effect.EffectUnifyIgnore {
|
|
78
|
+
Effect?: true
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* @since 2.0.0
|
|
83
|
+
* @category models
|
|
84
|
+
*/
|
|
85
|
+
export interface Variance<in out A> {
|
|
86
|
+
readonly [FiberRefTypeId]: {
|
|
87
|
+
readonly _A: Types.Invariant<A>
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* @since 2.0.0
|
|
93
|
+
* @category constructors
|
|
94
|
+
*/
|
|
95
|
+
export const make: <A>(
|
|
96
|
+
initial: A,
|
|
97
|
+
options?: {
|
|
98
|
+
readonly fork?: ((a: A) => A) | undefined
|
|
99
|
+
readonly join?: ((left: A, right: A) => A) | undefined
|
|
100
|
+
}
|
|
101
|
+
) => Effect.Effect<FiberRef<A>, never, Scope.Scope> = fiberRuntime.fiberRefMake
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* @since 2.0.0
|
|
105
|
+
* @category constructors
|
|
106
|
+
*/
|
|
107
|
+
export const makeWith: <Value>(ref: LazyArg<FiberRef<Value>>) => Effect.Effect<FiberRef<Value>, never, Scope.Scope> =
|
|
108
|
+
fiberRuntime.fiberRefMakeWith
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* @since 2.0.0
|
|
112
|
+
* @category constructors
|
|
113
|
+
*/
|
|
114
|
+
export const makeContext: <A>(
|
|
115
|
+
initial: Context.Context<A>
|
|
116
|
+
) => Effect.Effect<FiberRef<Context.Context<A>>, never, Scope.Scope> = fiberRuntime.fiberRefMakeContext
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* @since 2.0.0
|
|
120
|
+
* @category constructors
|
|
121
|
+
*/
|
|
122
|
+
export const makeRuntimeFlags: (
|
|
123
|
+
initial: RuntimeFlags.RuntimeFlags
|
|
124
|
+
) => Effect.Effect<FiberRef<RuntimeFlags.RuntimeFlags>, never, Scope.Scope> = fiberRuntime.fiberRefMakeRuntimeFlags
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* @since 2.0.0
|
|
128
|
+
* @category constructors
|
|
129
|
+
*/
|
|
130
|
+
export const unsafeMake: <Value>(
|
|
131
|
+
initial: Value,
|
|
132
|
+
options?: {
|
|
133
|
+
readonly fork?: ((a: Value) => Value) | undefined
|
|
134
|
+
readonly join?: ((left: Value, right: Value) => Value) | undefined
|
|
135
|
+
}
|
|
136
|
+
) => FiberRef<Value> = core.fiberRefUnsafeMake
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* @since 2.0.0
|
|
140
|
+
* @category constructors
|
|
141
|
+
*/
|
|
142
|
+
export const unsafeMakeHashSet: <A>(initial: HashSet.HashSet<A>) => FiberRef<HashSet.HashSet<A>> =
|
|
143
|
+
core.fiberRefUnsafeMakeHashSet
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* @since 2.0.0
|
|
147
|
+
* @category constructors
|
|
148
|
+
*/
|
|
149
|
+
export const unsafeMakeContext: <A>(initial: Context.Context<A>) => FiberRef<Context.Context<A>> =
|
|
150
|
+
core.fiberRefUnsafeMakeContext
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* @since 2.0.0
|
|
154
|
+
* @category constructors
|
|
155
|
+
*/
|
|
156
|
+
export const unsafeMakeSupervisor: (initial: Supervisor.Supervisor<any>) => FiberRef<Supervisor.Supervisor<any>> =
|
|
157
|
+
fiberRuntime.fiberRefUnsafeMakeSupervisor
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* @since 2.0.0
|
|
161
|
+
* @category constructors
|
|
162
|
+
*/
|
|
163
|
+
export const unsafeMakePatch: <Value, Patch>(
|
|
164
|
+
initial: Value,
|
|
165
|
+
options: {
|
|
166
|
+
readonly differ: Differ.Differ<Value, Patch>
|
|
167
|
+
readonly fork: Patch
|
|
168
|
+
readonly join?: ((oldV: Value, newV: Value) => Value) | undefined
|
|
169
|
+
}
|
|
170
|
+
) => FiberRef<Value> = core.fiberRefUnsafeMakePatch
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* @since 2.0.0
|
|
174
|
+
* @category getters
|
|
175
|
+
*/
|
|
176
|
+
export const get: <A>(self: FiberRef<A>) => Effect.Effect<A> = core.fiberRefGet
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* @since 2.0.0
|
|
180
|
+
* @category utils
|
|
181
|
+
*/
|
|
182
|
+
export const getAndSet: {
|
|
183
|
+
<A>(value: A): (self: FiberRef<A>) => Effect.Effect<A>
|
|
184
|
+
<A>(self: FiberRef<A>, value: A): Effect.Effect<A>
|
|
185
|
+
} = core.fiberRefGetAndSet
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* @since 2.0.0
|
|
189
|
+
* @category utils
|
|
190
|
+
*/
|
|
191
|
+
export const getAndUpdate: {
|
|
192
|
+
<A>(f: (a: A) => A): (self: FiberRef<A>) => Effect.Effect<A>
|
|
193
|
+
<A>(self: FiberRef<A>, f: (a: A) => A): Effect.Effect<A>
|
|
194
|
+
} = core.fiberRefGetAndUpdate
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* @since 2.0.0
|
|
198
|
+
* @category utils
|
|
199
|
+
*/
|
|
200
|
+
export const getAndUpdateSome: {
|
|
201
|
+
<A>(pf: (a: A) => Option.Option<A>): (self: FiberRef<A>) => Effect.Effect<A>
|
|
202
|
+
<A>(self: FiberRef<A>, pf: (a: A) => Option.Option<A>): Effect.Effect<A>
|
|
203
|
+
} = core.fiberRefGetAndUpdateSome
|
|
204
|
+
|
|
205
|
+
/**
|
|
206
|
+
* @since 2.0.0
|
|
207
|
+
* @category utils
|
|
208
|
+
*/
|
|
209
|
+
export const getWith: {
|
|
210
|
+
<A, B, E, R>(f: (a: A) => Effect.Effect<B, E, R>): (self: FiberRef<A>) => Effect.Effect<B, E, R>
|
|
211
|
+
<A, B, E, R>(self: FiberRef<A>, f: (a: A) => Effect.Effect<B, E, R>): Effect.Effect<B, E, R>
|
|
212
|
+
} = core.fiberRefGetWith
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* @since 2.0.0
|
|
216
|
+
* @category utils
|
|
217
|
+
*/
|
|
218
|
+
export const set: {
|
|
219
|
+
<A>(value: A): (self: FiberRef<A>) => Effect.Effect<void>
|
|
220
|
+
<A>(self: FiberRef<A>, value: A): Effect.Effect<void>
|
|
221
|
+
} = core.fiberRefSet
|
|
222
|
+
|
|
223
|
+
const _delete: <A>(self: FiberRef<A>) => Effect.Effect<void> = core.fiberRefDelete
|
|
224
|
+
|
|
225
|
+
export {
|
|
226
|
+
/**
|
|
227
|
+
* @since 2.0.0
|
|
228
|
+
* @category utils
|
|
229
|
+
*/
|
|
230
|
+
_delete as delete
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* @since 2.0.0
|
|
235
|
+
* @category utils
|
|
236
|
+
*/
|
|
237
|
+
export const reset: <A>(self: FiberRef<A>) => Effect.Effect<void> = core.fiberRefReset
|
|
238
|
+
|
|
239
|
+
/**
|
|
240
|
+
* @since 2.0.0
|
|
241
|
+
* @category utils
|
|
242
|
+
*/
|
|
243
|
+
export const modify: {
|
|
244
|
+
<A, B>(f: (a: A) => readonly [B, A]): (self: FiberRef<A>) => Effect.Effect<B>
|
|
245
|
+
<A, B>(self: FiberRef<A>, f: (a: A) => readonly [B, A]): Effect.Effect<B>
|
|
246
|
+
} = core.fiberRefModify
|
|
247
|
+
|
|
248
|
+
/**
|
|
249
|
+
* @since 2.0.0
|
|
250
|
+
* @category utils
|
|
251
|
+
*/
|
|
252
|
+
export const modifySome: <A, B>(
|
|
253
|
+
self: FiberRef<A>,
|
|
254
|
+
def: B,
|
|
255
|
+
f: (a: A) => Option.Option<readonly [B, A]>
|
|
256
|
+
) => Effect.Effect<B> = core.fiberRefModifySome
|
|
257
|
+
|
|
258
|
+
/**
|
|
259
|
+
* @since 2.0.0
|
|
260
|
+
* @category utils
|
|
261
|
+
*/
|
|
262
|
+
export const update: {
|
|
263
|
+
<A>(f: (a: A) => A): (self: FiberRef<A>) => Effect.Effect<void>
|
|
264
|
+
<A>(self: FiberRef<A>, f: (a: A) => A): Effect.Effect<void>
|
|
265
|
+
} = core.fiberRefUpdate
|
|
266
|
+
|
|
267
|
+
/**
|
|
268
|
+
* @since 2.0.0
|
|
269
|
+
* @category utils
|
|
270
|
+
*/
|
|
271
|
+
export const updateSome: {
|
|
272
|
+
<A>(pf: (a: A) => Option.Option<A>): (self: FiberRef<A>) => Effect.Effect<void>
|
|
273
|
+
<A>(self: FiberRef<A>, pf: (a: A) => Option.Option<A>): Effect.Effect<void>
|
|
274
|
+
} = core.fiberRefUpdateSome
|
|
275
|
+
|
|
276
|
+
/**
|
|
277
|
+
* @since 2.0.0
|
|
278
|
+
* @category utils
|
|
279
|
+
*/
|
|
280
|
+
export const updateAndGet: {
|
|
281
|
+
<A>(f: (a: A) => A): (self: FiberRef<A>) => Effect.Effect<A>
|
|
282
|
+
<A>(self: FiberRef<A>, f: (a: A) => A): Effect.Effect<A>
|
|
283
|
+
} = core.fiberRefUpdateAndGet
|
|
284
|
+
|
|
285
|
+
/**
|
|
286
|
+
* @since 2.0.0
|
|
287
|
+
* @category utils
|
|
288
|
+
*/
|
|
289
|
+
export const updateSomeAndGet: {
|
|
290
|
+
<A>(pf: (a: A) => Option.Option<A>): (self: FiberRef<A>) => Effect.Effect<A>
|
|
291
|
+
<A>(self: FiberRef<A>, pf: (a: A) => Option.Option<A>): Effect.Effect<A>
|
|
292
|
+
} = core.fiberRefUpdateSomeAndGet
|
|
293
|
+
|
|
294
|
+
/**
|
|
295
|
+
* @since 2.0.0
|
|
296
|
+
* @category fiberRefs
|
|
297
|
+
*/
|
|
298
|
+
export const currentConcurrency: FiberRef<number | "unbounded"> = core.currentConcurrency
|
|
299
|
+
|
|
300
|
+
/**
|
|
301
|
+
* @since 2.0.0
|
|
302
|
+
* @category fiberRefs
|
|
303
|
+
*/
|
|
304
|
+
export const currentRequestBatchingEnabled: FiberRef<boolean> = core.currentRequestBatching
|
|
305
|
+
|
|
306
|
+
/**
|
|
307
|
+
* @since 2.0.0
|
|
308
|
+
* @category fiberRefs
|
|
309
|
+
*/
|
|
310
|
+
export const currentRequestCache: FiberRef<Request.Cache> = query.currentCache as any
|
|
311
|
+
|
|
312
|
+
/**
|
|
313
|
+
* @since 2.0.0
|
|
314
|
+
* @category fiberRefs
|
|
315
|
+
*/
|
|
316
|
+
export const currentRequestCacheEnabled: FiberRef<boolean> = query.currentCacheEnabled
|
|
317
|
+
|
|
318
|
+
/**
|
|
319
|
+
* @since 2.0.0
|
|
320
|
+
* @category fiberRefs
|
|
321
|
+
*/
|
|
322
|
+
export const currentContext: FiberRef<Context.Context<never>> = core.currentContext
|
|
323
|
+
|
|
324
|
+
/**
|
|
325
|
+
* @since 2.0.0
|
|
326
|
+
* @category fiberRefs
|
|
327
|
+
*/
|
|
328
|
+
export const currentSchedulingPriority: FiberRef<number> = core.currentSchedulingPriority
|
|
329
|
+
|
|
330
|
+
/**
|
|
331
|
+
* @since 2.0.0
|
|
332
|
+
* @category fiberRefs
|
|
333
|
+
*/
|
|
334
|
+
export const currentMaxOpsBeforeYield: FiberRef<number> = core.currentMaxOpsBeforeYield
|
|
335
|
+
|
|
336
|
+
/**
|
|
337
|
+
* @since 2.0.0
|
|
338
|
+
* @category fiberRefs
|
|
339
|
+
*/
|
|
340
|
+
export const unhandledErrorLogLevel: FiberRef<Option.Option<LogLevel.LogLevel>> = core.currentUnhandledErrorLogLevel
|
|
341
|
+
|
|
342
|
+
/**
|
|
343
|
+
* @since 3.17.0
|
|
344
|
+
* @category fiberRefs
|
|
345
|
+
*/
|
|
346
|
+
export const versionMismatchErrorLogLevel: FiberRef<Option.Option<LogLevel.LogLevel>> =
|
|
347
|
+
core.currentVersionMismatchErrorLogLevel
|
|
348
|
+
|
|
349
|
+
/**
|
|
350
|
+
* @since 2.0.0
|
|
351
|
+
* @category fiberRefs
|
|
352
|
+
*/
|
|
353
|
+
export const currentLogAnnotations: FiberRef<HashMap.HashMap<string, unknown>> = core.currentLogAnnotations
|
|
354
|
+
|
|
355
|
+
/**
|
|
356
|
+
* @since 2.0.0
|
|
357
|
+
* @category fiberRefs
|
|
358
|
+
*/
|
|
359
|
+
export const currentLoggers: FiberRef<HashSet.HashSet<Logger.Logger<unknown, any>>> = fiberRuntime.currentLoggers
|
|
360
|
+
|
|
361
|
+
/**
|
|
362
|
+
* @since 2.0.0
|
|
363
|
+
* @category fiberRefs
|
|
364
|
+
*/
|
|
365
|
+
export const currentLogLevel: FiberRef<LogLevel.LogLevel> = core.currentLogLevel
|
|
366
|
+
|
|
367
|
+
/**
|
|
368
|
+
* @since 2.0.0
|
|
369
|
+
* @category fiberRefs
|
|
370
|
+
*/
|
|
371
|
+
export const currentMinimumLogLevel: FiberRef<LogLevel.LogLevel> = fiberRuntime.currentMinimumLogLevel
|
|
372
|
+
|
|
373
|
+
/**
|
|
374
|
+
* @since 2.0.0
|
|
375
|
+
* @category fiberRefs
|
|
376
|
+
*/
|
|
377
|
+
export const currentLogSpan: FiberRef<List.List<LogSpan.LogSpan>> = core.currentLogSpan
|
|
378
|
+
|
|
379
|
+
/**
|
|
380
|
+
* @since 2.0.0
|
|
381
|
+
* @category fiberRefs
|
|
382
|
+
*/
|
|
383
|
+
export const currentRuntimeFlags: FiberRef<RuntimeFlags.RuntimeFlags> = fiberRuntime.currentRuntimeFlags
|
|
384
|
+
|
|
385
|
+
/**
|
|
386
|
+
* @since 2.0.0
|
|
387
|
+
* @category fiberRefs
|
|
388
|
+
*/
|
|
389
|
+
export const currentScheduler: FiberRef<Scheduler.Scheduler> = Scheduler.currentScheduler
|
|
390
|
+
|
|
391
|
+
/**
|
|
392
|
+
* The current source location trace, used for build-time instrumentation.
|
|
393
|
+
*
|
|
394
|
+
* This FiberRef contains the source location of the currently executing effect
|
|
395
|
+
* step within an `Effect.gen` block. It is automatically set by the
|
|
396
|
+
* `@effect/unplugin` build-time transformer.
|
|
397
|
+
*
|
|
398
|
+
* @since 3.20.0
|
|
399
|
+
* @category fiberRefs
|
|
400
|
+
*/
|
|
401
|
+
export const currentSourceTrace: FiberRef<SourceLocation.SourceLocation | undefined> = core.currentSourceTrace
|
|
402
|
+
|
|
403
|
+
/**
|
|
404
|
+
* @since 2.0.0
|
|
405
|
+
* @category fiberRefs
|
|
406
|
+
*/
|
|
407
|
+
export const currentSupervisor: FiberRef<Supervisor.Supervisor<any>> = fiberRuntime.currentSupervisor
|
|
408
|
+
|
|
409
|
+
/**
|
|
410
|
+
* @since 2.0.0
|
|
411
|
+
* @category fiberRefs
|
|
412
|
+
*/
|
|
413
|
+
export const currentMetricLabels: FiberRef<ReadonlyArray<MetricLabel.MetricLabel>> = core.currentMetricLabels
|
|
414
|
+
|
|
415
|
+
/**
|
|
416
|
+
* @since 2.0.0
|
|
417
|
+
* @category fiberRefs
|
|
418
|
+
*/
|
|
419
|
+
export const currentTracerEnabled: FiberRef<boolean> = core.currentTracerEnabled
|
|
420
|
+
|
|
421
|
+
/**
|
|
422
|
+
* @since 2.0.0
|
|
423
|
+
* @category fiberRefs
|
|
424
|
+
*/
|
|
425
|
+
export const currentTracerTimingEnabled: FiberRef<boolean> = core.currentTracerTimingEnabled
|
|
426
|
+
|
|
427
|
+
/**
|
|
428
|
+
* @since 2.0.0
|
|
429
|
+
* @category fiberRefs
|
|
430
|
+
*/
|
|
431
|
+
export const currentTracerSpanAnnotations: FiberRef<HashMap.HashMap<string, unknown>> =
|
|
432
|
+
core.currentTracerSpanAnnotations
|
|
433
|
+
|
|
434
|
+
/**
|
|
435
|
+
* @since 2.0.0
|
|
436
|
+
* @category fiberRefs
|
|
437
|
+
*/
|
|
438
|
+
export const currentTracerSpanLinks: FiberRef<Chunk.Chunk<Tracer.SpanLink>> = core.currentTracerSpanLinks
|
|
439
|
+
|
|
440
|
+
/**
|
|
441
|
+
* @since 2.0.0
|
|
442
|
+
* @category fiberRefs
|
|
443
|
+
*/
|
|
444
|
+
export const interruptedCause: FiberRef<Cause.Cause<never>> = core.currentInterruptedCause
|
package/src/FiberRefs.ts
ADDED
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 2.0.0
|
|
3
|
+
*/
|
|
4
|
+
import type * as Arr from "./Array.js"
|
|
5
|
+
import type * as Effect from "./Effect.js"
|
|
6
|
+
import type * as FiberId from "./FiberId.js"
|
|
7
|
+
import type * as FiberRef from "./FiberRef.js"
|
|
8
|
+
import type * as HashSet from "./HashSet.js"
|
|
9
|
+
import * as internal from "./internal/fiberRefs.js"
|
|
10
|
+
import type * as Option from "./Option.js"
|
|
11
|
+
import type { Pipeable } from "./Pipeable.js"
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @since 2.0.0
|
|
15
|
+
* @category symbols
|
|
16
|
+
*/
|
|
17
|
+
export const FiberRefsSym: unique symbol = internal.FiberRefsSym
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* @since 2.0.0
|
|
21
|
+
* @category symbols
|
|
22
|
+
*/
|
|
23
|
+
export type FiberRefsSym = typeof FiberRefsSym
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* `FiberRefs` is a data type that represents a collection of `FiberRef` values.
|
|
27
|
+
*
|
|
28
|
+
* This allows safely propagating `FiberRef` values across fiber boundaries, for
|
|
29
|
+
* example between an asynchronous producer and consumer.
|
|
30
|
+
*
|
|
31
|
+
* @since 2.0.0
|
|
32
|
+
* @category models
|
|
33
|
+
*/
|
|
34
|
+
export interface FiberRefs extends Pipeable {
|
|
35
|
+
readonly [FiberRefsSym]: FiberRefsSym
|
|
36
|
+
readonly locals: Map<FiberRef.FiberRef<any>, Arr.NonEmptyReadonlyArray<readonly [FiberId.Single, any]>>
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
const delete_: {
|
|
40
|
+
<A>(fiberRef: FiberRef.FiberRef<A>): (self: FiberRefs) => FiberRefs
|
|
41
|
+
<A>(self: FiberRefs, fiberRef: FiberRef.FiberRef<A>): FiberRefs
|
|
42
|
+
} = internal.delete_
|
|
43
|
+
|
|
44
|
+
export {
|
|
45
|
+
/**
|
|
46
|
+
* Deletes the specified `FiberRef` from the `FibterRefs`.
|
|
47
|
+
*
|
|
48
|
+
* @since 2.0.0
|
|
49
|
+
* @category utils
|
|
50
|
+
*/
|
|
51
|
+
delete_ as delete
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Returns a set of each `FiberRef` in this collection.
|
|
56
|
+
*
|
|
57
|
+
* @since 2.0.0
|
|
58
|
+
* @category getters
|
|
59
|
+
*/
|
|
60
|
+
export const fiberRefs: (self: FiberRefs) => HashSet.HashSet<FiberRef.FiberRef<any>> = internal.fiberRefs
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Forks this collection of fiber refs as the specified child fiber id. This
|
|
64
|
+
* will potentially modify the value of the fiber refs, as determined by the
|
|
65
|
+
* individual fiber refs that make up the collection.
|
|
66
|
+
*
|
|
67
|
+
* @since 2.0.0
|
|
68
|
+
* @category utils
|
|
69
|
+
*/
|
|
70
|
+
export const forkAs: {
|
|
71
|
+
(childId: FiberId.Single): (self: FiberRefs) => FiberRefs
|
|
72
|
+
(self: FiberRefs, childId: FiberId.Single): FiberRefs
|
|
73
|
+
} = internal.forkAs
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Gets the value of the specified `FiberRef` in this collection of `FiberRef`
|
|
77
|
+
* values if it exists or `None` otherwise.
|
|
78
|
+
*
|
|
79
|
+
* @since 2.0.0
|
|
80
|
+
* @category getters
|
|
81
|
+
*/
|
|
82
|
+
export const get: {
|
|
83
|
+
<A>(fiberRef: FiberRef.FiberRef<A>): (self: FiberRefs) => Option.Option<A>
|
|
84
|
+
<A>(self: FiberRefs, fiberRef: FiberRef.FiberRef<A>): Option.Option<A>
|
|
85
|
+
} = internal.get
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Gets the value of the specified `FiberRef` in this collection of `FiberRef`
|
|
89
|
+
* values if it exists or the `initial` value of the `FiberRef` otherwise.
|
|
90
|
+
*
|
|
91
|
+
* @since 2.0.0
|
|
92
|
+
* @category getters
|
|
93
|
+
*/
|
|
94
|
+
export const getOrDefault: {
|
|
95
|
+
<A>(fiberRef: FiberRef.FiberRef<A>): (self: FiberRefs) => A
|
|
96
|
+
<A>(self: FiberRefs, fiberRef: FiberRef.FiberRef<A>): A
|
|
97
|
+
} = internal.getOrDefault
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Joins this collection of fiber refs to the specified collection, as the
|
|
101
|
+
* specified fiber id. This will perform diffing and merging to ensure
|
|
102
|
+
* preservation of maximum information from both child and parent refs.
|
|
103
|
+
*
|
|
104
|
+
* @since 2.0.0
|
|
105
|
+
* @category utils
|
|
106
|
+
*/
|
|
107
|
+
export const joinAs: {
|
|
108
|
+
(fiberId: FiberId.Single, that: FiberRefs): (self: FiberRefs) => FiberRefs
|
|
109
|
+
(self: FiberRefs, fiberId: FiberId.Single, that: FiberRefs): FiberRefs
|
|
110
|
+
} = internal.joinAs
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Set each ref to either its value or its default.
|
|
114
|
+
*
|
|
115
|
+
* @since 2.0.0
|
|
116
|
+
* @category utils
|
|
117
|
+
*/
|
|
118
|
+
export const setAll: (self: FiberRefs) => Effect.Effect<void> = internal.setAll
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Updates the value of the specified `FiberRef` using the provided `FiberId`
|
|
122
|
+
*
|
|
123
|
+
* @since 2.0.0
|
|
124
|
+
* @category utils
|
|
125
|
+
*/
|
|
126
|
+
export const updateAs: {
|
|
127
|
+
<A>(
|
|
128
|
+
options: {
|
|
129
|
+
readonly fiberId: FiberId.Single
|
|
130
|
+
readonly fiberRef: FiberRef.FiberRef<A>
|
|
131
|
+
readonly value: A
|
|
132
|
+
}
|
|
133
|
+
): (self: FiberRefs) => FiberRefs
|
|
134
|
+
<A>(
|
|
135
|
+
self: FiberRefs,
|
|
136
|
+
options: {
|
|
137
|
+
readonly fiberId: FiberId.Single
|
|
138
|
+
readonly fiberRef: FiberRef.FiberRef<A>
|
|
139
|
+
readonly value: A
|
|
140
|
+
}
|
|
141
|
+
): FiberRefs
|
|
142
|
+
} = internal.updateAs
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Updates the values of the specified `FiberRef` & value pairs using the provided `FiberId`
|
|
146
|
+
*
|
|
147
|
+
* @since 2.0.0
|
|
148
|
+
* @category utils
|
|
149
|
+
*/
|
|
150
|
+
export const updateManyAs: {
|
|
151
|
+
(
|
|
152
|
+
options: {
|
|
153
|
+
readonly forkAs?: FiberId.Single | undefined
|
|
154
|
+
readonly entries: readonly [
|
|
155
|
+
readonly [
|
|
156
|
+
FiberRef.FiberRef<any>,
|
|
157
|
+
readonly [readonly [FiberId.Single, any], ...Array<readonly [FiberId.Single, any]>]
|
|
158
|
+
],
|
|
159
|
+
...Array<
|
|
160
|
+
readonly [
|
|
161
|
+
FiberRef.FiberRef<any>,
|
|
162
|
+
readonly [readonly [FiberId.Single, any], ...Array<readonly [FiberId.Single, any]>]
|
|
163
|
+
]
|
|
164
|
+
>
|
|
165
|
+
]
|
|
166
|
+
}
|
|
167
|
+
): (self: FiberRefs) => FiberRefs
|
|
168
|
+
(
|
|
169
|
+
self: FiberRefs,
|
|
170
|
+
options: {
|
|
171
|
+
readonly forkAs?: FiberId.Single | undefined
|
|
172
|
+
readonly entries: readonly [
|
|
173
|
+
readonly [
|
|
174
|
+
FiberRef.FiberRef<any>,
|
|
175
|
+
readonly [readonly [FiberId.Single, any], ...Array<readonly [FiberId.Single, any]>]
|
|
176
|
+
],
|
|
177
|
+
...Array<
|
|
178
|
+
readonly [
|
|
179
|
+
FiberRef.FiberRef<any>,
|
|
180
|
+
readonly [readonly [FiberId.Single, any], ...Array<readonly [FiberId.Single, any]>]
|
|
181
|
+
]
|
|
182
|
+
>
|
|
183
|
+
]
|
|
184
|
+
}
|
|
185
|
+
): FiberRefs
|
|
186
|
+
} = internal.updateManyAs
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* Note: it will not copy the provided Map, make sure to provide a fresh one.
|
|
190
|
+
*
|
|
191
|
+
* @since 2.0.0
|
|
192
|
+
* @category unsafe
|
|
193
|
+
*/
|
|
194
|
+
export const unsafeMake: (
|
|
195
|
+
fiberRefLocals: Map<FiberRef.FiberRef<any>, Arr.NonEmptyReadonlyArray<readonly [FiberId.Single, any]>>
|
|
196
|
+
) => FiberRefs = internal.unsafeMake
|
|
197
|
+
|
|
198
|
+
/**
|
|
199
|
+
* The empty collection of `FiberRef` values.
|
|
200
|
+
*
|
|
201
|
+
* @category constructors
|
|
202
|
+
* @since 2.0.0
|
|
203
|
+
*/
|
|
204
|
+
export const empty: () => FiberRefs = internal.empty
|