@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/TSet.ts
ADDED
|
@@ -0,0 +1,365 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 2.0.0
|
|
3
|
+
*/
|
|
4
|
+
import type * as Chunk from "./Chunk.js"
|
|
5
|
+
import type * as HashSet from "./HashSet.js"
|
|
6
|
+
import * as internal from "./internal/stm/tSet.js"
|
|
7
|
+
import type * as Option from "./Option.js"
|
|
8
|
+
import type { Predicate } from "./Predicate.js"
|
|
9
|
+
import type * as STM from "./STM.js"
|
|
10
|
+
import type * as TMap from "./TMap.js"
|
|
11
|
+
import type * as Types from "./Types.js"
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @since 2.0.0
|
|
15
|
+
* @category symbols
|
|
16
|
+
*/
|
|
17
|
+
export const TSetTypeId: unique symbol = internal.TSetTypeId
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* @since 2.0.0
|
|
21
|
+
* @category symbols
|
|
22
|
+
*/
|
|
23
|
+
export type TSetTypeId = typeof TSetTypeId
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Transactional set implemented on top of `TMap`.
|
|
27
|
+
*
|
|
28
|
+
* @since 2.0.0
|
|
29
|
+
* @category models
|
|
30
|
+
*/
|
|
31
|
+
export interface TSet<in out A> extends TSet.Variance<A> {}
|
|
32
|
+
/**
|
|
33
|
+
* @internal
|
|
34
|
+
* @since 2.0.0
|
|
35
|
+
*/
|
|
36
|
+
export interface TSet<in out A> {
|
|
37
|
+
/** @internal */
|
|
38
|
+
readonly tMap: TMap.TMap<A, void>
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* @since 2.0.0
|
|
43
|
+
*/
|
|
44
|
+
export declare namespace TSet {
|
|
45
|
+
/**
|
|
46
|
+
* @since 2.0.0
|
|
47
|
+
* @category models
|
|
48
|
+
*/
|
|
49
|
+
export interface Variance<in out A> {
|
|
50
|
+
readonly [TSetTypeId]: {
|
|
51
|
+
readonly _A: Types.Invariant<A>
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Stores new element in the set.
|
|
58
|
+
*
|
|
59
|
+
* @since 2.0.0
|
|
60
|
+
* @category mutations
|
|
61
|
+
*/
|
|
62
|
+
export const add: {
|
|
63
|
+
<A>(value: A): (self: TSet<A>) => STM.STM<void>
|
|
64
|
+
<A>(self: TSet<A>, value: A): STM.STM<void>
|
|
65
|
+
} = internal.add
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Atomically transforms the set into the difference of itself and the
|
|
69
|
+
* provided set.
|
|
70
|
+
*
|
|
71
|
+
* @since 2.0.0
|
|
72
|
+
* @category mutations
|
|
73
|
+
*/
|
|
74
|
+
export const difference: {
|
|
75
|
+
<A>(other: TSet<A>): (self: TSet<A>) => STM.STM<void>
|
|
76
|
+
<A>(self: TSet<A>, other: TSet<A>): STM.STM<void>
|
|
77
|
+
} = internal.difference
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Makes an empty `TSet`.
|
|
81
|
+
*
|
|
82
|
+
* @since 2.0.0
|
|
83
|
+
* @category constructors
|
|
84
|
+
*/
|
|
85
|
+
export const empty: <A>() => STM.STM<TSet<A>> = internal.empty
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Atomically performs transactional-effect for each element in set.
|
|
89
|
+
*
|
|
90
|
+
* @since 2.0.0
|
|
91
|
+
* @category elements
|
|
92
|
+
*/
|
|
93
|
+
export const forEach: {
|
|
94
|
+
<A, R, E>(f: (value: A) => STM.STM<void, E, R>): (self: TSet<A>) => STM.STM<void, E, R>
|
|
95
|
+
<A, R, E>(self: TSet<A>, f: (value: A) => STM.STM<void, E, R>): STM.STM<void, E, R>
|
|
96
|
+
} = internal.forEach
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Creates a new `TSet` from an iterable collection of values.
|
|
100
|
+
*
|
|
101
|
+
* @since 2.0.0
|
|
102
|
+
* @category constructors
|
|
103
|
+
*/
|
|
104
|
+
export const fromIterable: <A>(iterable: Iterable<A>) => STM.STM<TSet<A>> = internal.fromIterable
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Tests whether or not set contains an element.
|
|
108
|
+
*
|
|
109
|
+
* @since 2.0.0
|
|
110
|
+
* @category elements
|
|
111
|
+
*/
|
|
112
|
+
export const has: {
|
|
113
|
+
<A>(value: A): (self: TSet<A>) => STM.STM<boolean>
|
|
114
|
+
<A>(self: TSet<A>, value: A): STM.STM<boolean>
|
|
115
|
+
} = internal.has
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Atomically transforms the set into the intersection of itself and the
|
|
119
|
+
* provided set.
|
|
120
|
+
*
|
|
121
|
+
* @since 2.0.0
|
|
122
|
+
* @category mutations
|
|
123
|
+
*/
|
|
124
|
+
export const intersection: {
|
|
125
|
+
<A>(other: TSet<A>): (self: TSet<A>) => STM.STM<void>
|
|
126
|
+
<A>(self: TSet<A>, other: TSet<A>): STM.STM<void>
|
|
127
|
+
} = internal.intersection
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Tests if the set is empty or not
|
|
131
|
+
*
|
|
132
|
+
* @since 2.0.0
|
|
133
|
+
* @category getters
|
|
134
|
+
*/
|
|
135
|
+
export const isEmpty: <A>(self: TSet<A>) => STM.STM<boolean> = internal.isEmpty
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Makes a new `TSet` that is initialized with specified values.
|
|
139
|
+
*
|
|
140
|
+
* @since 2.0.0
|
|
141
|
+
* @category constructors
|
|
142
|
+
*/
|
|
143
|
+
export const make: <Elements extends Array<any>>(
|
|
144
|
+
...elements: Elements
|
|
145
|
+
) => STM.STM<TSet<Elements[number]>> = internal.make
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Atomically folds using a pure function.
|
|
149
|
+
*
|
|
150
|
+
* @since 2.0.0
|
|
151
|
+
* @category folding
|
|
152
|
+
*/
|
|
153
|
+
export const reduce: {
|
|
154
|
+
<Z, A>(zero: Z, f: (accumulator: Z, value: A) => Z): (self: TSet<A>) => STM.STM<Z>
|
|
155
|
+
<Z, A>(self: TSet<A>, zero: Z, f: (accumulator: Z, value: A) => Z): STM.STM<Z>
|
|
156
|
+
} = internal.reduce
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* Atomically folds using a transactional function.
|
|
160
|
+
*
|
|
161
|
+
* @since 2.0.0
|
|
162
|
+
* @category folding
|
|
163
|
+
*/
|
|
164
|
+
export const reduceSTM: {
|
|
165
|
+
<Z, A, R, E>(zero: Z, f: (accumulator: Z, value: A) => STM.STM<Z, E, R>): (self: TSet<A>) => STM.STM<Z, E, R>
|
|
166
|
+
<Z, A, R, E>(self: TSet<A>, zero: Z, f: (accumulator: Z, value: A) => STM.STM<Z, E, R>): STM.STM<Z, E, R>
|
|
167
|
+
} = internal.reduceSTM
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Removes a single element from the set.
|
|
171
|
+
*
|
|
172
|
+
* @since 2.0.0
|
|
173
|
+
* @category mutations
|
|
174
|
+
*/
|
|
175
|
+
export const remove: {
|
|
176
|
+
<A>(value: A): (self: TSet<A>) => STM.STM<void>
|
|
177
|
+
<A>(self: TSet<A>, value: A): STM.STM<void>
|
|
178
|
+
} = internal.remove
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Removes elements from the set.
|
|
182
|
+
*
|
|
183
|
+
* @since 2.0.0
|
|
184
|
+
* @category mutations
|
|
185
|
+
*/
|
|
186
|
+
export const removeAll: {
|
|
187
|
+
<A>(iterable: Iterable<A>): (self: TSet<A>) => STM.STM<void>
|
|
188
|
+
<A>(self: TSet<A>, iterable: Iterable<A>): STM.STM<void>
|
|
189
|
+
} = internal.removeAll
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* Removes entries from a `TSet` that satisfy the specified predicate and returns the removed entries
|
|
193
|
+
* (or `void` if `discard = true`).
|
|
194
|
+
*
|
|
195
|
+
* @since 2.0.0
|
|
196
|
+
* @category mutations
|
|
197
|
+
*/
|
|
198
|
+
export const removeIf: {
|
|
199
|
+
<A>(predicate: Predicate<A>, options: {
|
|
200
|
+
readonly discard: true
|
|
201
|
+
}): (self: TSet<A>) => STM.STM<void>
|
|
202
|
+
<A>(
|
|
203
|
+
predicate: Predicate<A>,
|
|
204
|
+
options?: {
|
|
205
|
+
readonly discard: false
|
|
206
|
+
}
|
|
207
|
+
): (self: TSet<A>) => STM.STM<Array<A>>
|
|
208
|
+
<A>(self: TSet<A>, predicate: Predicate<A>, options: {
|
|
209
|
+
readonly discard: true
|
|
210
|
+
}): STM.STM<void>
|
|
211
|
+
<A>(
|
|
212
|
+
self: TSet<A>,
|
|
213
|
+
predicate: Predicate<A>,
|
|
214
|
+
options?: {
|
|
215
|
+
readonly discard: false
|
|
216
|
+
}
|
|
217
|
+
): STM.STM<Array<A>>
|
|
218
|
+
} = internal.removeIf
|
|
219
|
+
|
|
220
|
+
/**
|
|
221
|
+
* Retains entries in a `TSet` that satisfy the specified predicate and returns the removed entries
|
|
222
|
+
* (or `void` if `discard = true`).
|
|
223
|
+
*
|
|
224
|
+
* @since 2.0.0
|
|
225
|
+
* @category mutations
|
|
226
|
+
*/
|
|
227
|
+
export const retainIf: {
|
|
228
|
+
<A>(predicate: Predicate<A>, options: {
|
|
229
|
+
readonly discard: true
|
|
230
|
+
}): (self: TSet<A>) => STM.STM<void>
|
|
231
|
+
<A>(
|
|
232
|
+
predicate: Predicate<A>,
|
|
233
|
+
options?: {
|
|
234
|
+
readonly discard: false
|
|
235
|
+
}
|
|
236
|
+
): (self: TSet<A>) => STM.STM<Array<A>>
|
|
237
|
+
<A>(self: TSet<A>, predicate: Predicate<A>, options: {
|
|
238
|
+
readonly discard: true
|
|
239
|
+
}): STM.STM<void>
|
|
240
|
+
<A>(
|
|
241
|
+
self: TSet<A>,
|
|
242
|
+
predicate: Predicate<A>,
|
|
243
|
+
options?: {
|
|
244
|
+
readonly discard: false
|
|
245
|
+
}
|
|
246
|
+
): STM.STM<Array<A>>
|
|
247
|
+
} = internal.retainIf
|
|
248
|
+
|
|
249
|
+
/**
|
|
250
|
+
* Returns the set's cardinality.
|
|
251
|
+
*
|
|
252
|
+
* @since 2.0.0
|
|
253
|
+
* @category getters
|
|
254
|
+
*/
|
|
255
|
+
export const size: <A>(self: TSet<A>) => STM.STM<number> = internal.size
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* Takes the first matching value, or retries until there is one.
|
|
259
|
+
*
|
|
260
|
+
* @since 2.0.0
|
|
261
|
+
* @category mutations
|
|
262
|
+
*/
|
|
263
|
+
export const takeFirst: {
|
|
264
|
+
<A, B>(pf: (a: A) => Option.Option<B>): (self: TSet<A>) => STM.STM<B>
|
|
265
|
+
<A, B>(self: TSet<A>, pf: (a: A) => Option.Option<B>): STM.STM<B>
|
|
266
|
+
} = internal.takeFirst
|
|
267
|
+
|
|
268
|
+
/**
|
|
269
|
+
* Takes the first matching value, or retries until there is one.
|
|
270
|
+
*
|
|
271
|
+
* @since 2.0.0
|
|
272
|
+
* @category mutations
|
|
273
|
+
*/
|
|
274
|
+
export const takeFirstSTM: {
|
|
275
|
+
<A, B, E, R>(pf: (a: A) => STM.STM<B, Option.Option<E>, R>): (self: TSet<A>) => STM.STM<B, E, R>
|
|
276
|
+
<A, B, E, R>(self: TSet<A>, pf: (a: A) => STM.STM<B, Option.Option<E>, R>): STM.STM<B, E, R>
|
|
277
|
+
} = internal.takeFirstSTM
|
|
278
|
+
|
|
279
|
+
/**
|
|
280
|
+
* Takes all matching values, or retries until there is at least one.
|
|
281
|
+
*
|
|
282
|
+
* @since 2.0.0
|
|
283
|
+
* @category mutations
|
|
284
|
+
*/
|
|
285
|
+
export const takeSome: {
|
|
286
|
+
<A, B>(pf: (a: A) => Option.Option<B>): (self: TSet<A>) => STM.STM<[B, ...Array<B>]>
|
|
287
|
+
<A, B>(self: TSet<A>, pf: (a: A) => Option.Option<B>): STM.STM<[B, ...Array<B>]>
|
|
288
|
+
} = internal.takeSome
|
|
289
|
+
|
|
290
|
+
/**
|
|
291
|
+
* Takes all matching values, or retries until there is at least one.
|
|
292
|
+
*
|
|
293
|
+
* @since 2.0.0
|
|
294
|
+
* @category mutations
|
|
295
|
+
*/
|
|
296
|
+
export const takeSomeSTM: {
|
|
297
|
+
<A, B, E, R>(pf: (a: A) => STM.STM<B, Option.Option<E>, R>): (self: TSet<A>) => STM.STM<[B, ...Array<B>], E, R>
|
|
298
|
+
<A, B, E, R>(self: TSet<A>, pf: (a: A) => STM.STM<B, Option.Option<E>, R>): STM.STM<[B, ...Array<B>], E, R>
|
|
299
|
+
} = internal.takeSomeSTM
|
|
300
|
+
|
|
301
|
+
/**
|
|
302
|
+
* Collects all elements into a `Chunk`.
|
|
303
|
+
*
|
|
304
|
+
* @since 2.0.0
|
|
305
|
+
* @category destructors
|
|
306
|
+
*/
|
|
307
|
+
export const toChunk: <A>(self: TSet<A>) => STM.STM<Chunk.Chunk<A>> = internal.toChunk
|
|
308
|
+
|
|
309
|
+
/**
|
|
310
|
+
* Collects all elements into a `HashSet`.
|
|
311
|
+
*
|
|
312
|
+
* @since 2.0.0
|
|
313
|
+
* @category destructors
|
|
314
|
+
*/
|
|
315
|
+
export const toHashSet: <A>(self: TSet<A>) => STM.STM<HashSet.HashSet<A>> = internal.toHashSet
|
|
316
|
+
|
|
317
|
+
/**
|
|
318
|
+
* Collects all elements into a `Array`.
|
|
319
|
+
*
|
|
320
|
+
* @since 2.0.0
|
|
321
|
+
* @category destructors
|
|
322
|
+
*/
|
|
323
|
+
export const toArray: <A>(self: TSet<A>) => STM.STM<Array<A>> = internal.toArray
|
|
324
|
+
|
|
325
|
+
/**
|
|
326
|
+
* Collects all elements into a `ReadonlySet`.
|
|
327
|
+
*
|
|
328
|
+
* @since 2.0.0
|
|
329
|
+
* @category destructors
|
|
330
|
+
*/
|
|
331
|
+
export const toReadonlySet: <A>(self: TSet<A>) => STM.STM<ReadonlySet<A>> = internal.toReadonlySet
|
|
332
|
+
|
|
333
|
+
/**
|
|
334
|
+
* Atomically updates all elements using a pure function.
|
|
335
|
+
*
|
|
336
|
+
* @since 2.0.0
|
|
337
|
+
* @category mutations
|
|
338
|
+
*/
|
|
339
|
+
export const transform: {
|
|
340
|
+
<A>(f: (a: A) => A): (self: TSet<A>) => STM.STM<void>
|
|
341
|
+
<A>(self: TSet<A>, f: (a: A) => A): STM.STM<void>
|
|
342
|
+
} = internal.transform
|
|
343
|
+
|
|
344
|
+
/**
|
|
345
|
+
* Atomically updates all elements using a transactional function.
|
|
346
|
+
*
|
|
347
|
+
* @since 2.0.0
|
|
348
|
+
* @category mutations
|
|
349
|
+
*/
|
|
350
|
+
export const transformSTM: {
|
|
351
|
+
<A, R, E>(f: (a: A) => STM.STM<A, E, R>): (self: TSet<A>) => STM.STM<void, E, R>
|
|
352
|
+
<A, R, E>(self: TSet<A>, f: (a: A) => STM.STM<A, E, R>): STM.STM<void, E, R>
|
|
353
|
+
} = internal.transformSTM
|
|
354
|
+
|
|
355
|
+
/**
|
|
356
|
+
* Atomically transforms the set into the union of itself and the provided
|
|
357
|
+
* set.
|
|
358
|
+
*
|
|
359
|
+
* @since 2.0.0
|
|
360
|
+
* @category mutations
|
|
361
|
+
*/
|
|
362
|
+
export const union: {
|
|
363
|
+
<A>(other: TSet<A>): (self: TSet<A>) => STM.STM<void>
|
|
364
|
+
<A>(self: TSet<A>, other: TSet<A>): STM.STM<void>
|
|
365
|
+
} = internal.union
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 3.10.0
|
|
3
|
+
*/
|
|
4
|
+
import type * as Effect from "./Effect.js"
|
|
5
|
+
import * as internal from "./internal/stm/tSubscriptionRef.js"
|
|
6
|
+
import type * as Option from "./Option.js"
|
|
7
|
+
import type * as Scope from "./Scope.js"
|
|
8
|
+
import type * as STM from "./STM.js"
|
|
9
|
+
import type * as Stream from "./Stream.js"
|
|
10
|
+
import type * as TPubSub from "./TPubSub.js"
|
|
11
|
+
import type * as TQueue from "./TQueue.js"
|
|
12
|
+
import type * as TRef from "./TRef.js"
|
|
13
|
+
import type * as Types from "./Types.js"
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @since 3.10.0
|
|
17
|
+
* @category symbols
|
|
18
|
+
*/
|
|
19
|
+
export const TSubscriptionRefTypeId: unique symbol = internal.TSubscriptionRefTypeId
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @since 3.10.0
|
|
23
|
+
* @category symbols
|
|
24
|
+
*/
|
|
25
|
+
export type TSubscriptionRefTypeId = typeof TSubscriptionRefTypeId
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* A `TSubscriptionRef<A>` is a `TRef` that can be subscribed to in order to
|
|
29
|
+
* receive a `TDequeue<A>` of the current value and all committed changes to the value.
|
|
30
|
+
*
|
|
31
|
+
* @since 3.10.0
|
|
32
|
+
* @category models
|
|
33
|
+
*/
|
|
34
|
+
export interface TSubscriptionRef<in out A> extends TSubscriptionRef.Variance<A>, TRef.TRef<A> {
|
|
35
|
+
/** @internal */
|
|
36
|
+
readonly ref: TRef.TRef<A>
|
|
37
|
+
/** @internal */
|
|
38
|
+
readonly pubsub: TPubSub.TPubSub<A>
|
|
39
|
+
/** @internal */
|
|
40
|
+
modify<B>(f: (a: A) => readonly [B, A]): STM.STM<B>
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* A TDequeue containing the current value of the `Ref` as well as all changes
|
|
44
|
+
* to that value.
|
|
45
|
+
*/
|
|
46
|
+
readonly changes: STM.STM<TQueue.TDequeue<A>>
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* @since 3.10.0
|
|
51
|
+
*/
|
|
52
|
+
export declare namespace TSubscriptionRef {
|
|
53
|
+
/**
|
|
54
|
+
* @since 3.10.0
|
|
55
|
+
* @category models
|
|
56
|
+
*/
|
|
57
|
+
export interface Variance<in out A> {
|
|
58
|
+
readonly [TSubscriptionRefTypeId]: {
|
|
59
|
+
readonly _A: Types.Invariant<A>
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* @since 3.10.0
|
|
66
|
+
* @category mutations
|
|
67
|
+
*/
|
|
68
|
+
export const get: <A>(self: TSubscriptionRef<A>) => STM.STM<A> = internal.get
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* @since 3.10.0
|
|
72
|
+
* @category mutations
|
|
73
|
+
*/
|
|
74
|
+
export const getAndSet: {
|
|
75
|
+
<A>(value: A): (self: TSubscriptionRef<A>) => STM.STM<A>
|
|
76
|
+
<A>(self: TSubscriptionRef<A>, value: A): STM.STM<A>
|
|
77
|
+
} = internal.getAndSet
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* @since 3.10.0
|
|
81
|
+
* @category mutations
|
|
82
|
+
*/
|
|
83
|
+
export const getAndUpdate: {
|
|
84
|
+
<A>(f: (a: A) => A): (self: TSubscriptionRef<A>) => STM.STM<A>
|
|
85
|
+
<A>(self: TSubscriptionRef<A>, f: (a: A) => A): STM.STM<A>
|
|
86
|
+
} = internal.getAndUpdate
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* @since 3.10.0
|
|
90
|
+
* @category mutations
|
|
91
|
+
*/
|
|
92
|
+
export const getAndUpdateSome: {
|
|
93
|
+
<A>(f: (a: A) => Option.Option<A>): (self: TSubscriptionRef<A>) => STM.STM<A>
|
|
94
|
+
<A>(self: TSubscriptionRef<A>, f: (a: A) => Option.Option<A>): STM.STM<A>
|
|
95
|
+
} = internal.getAndUpdateSome
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* @since 3.10.0
|
|
99
|
+
* @category constructors
|
|
100
|
+
*/
|
|
101
|
+
export const make: <A>(value: A) => STM.STM<TSubscriptionRef<A>> = internal.make
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* @since 3.10.0
|
|
105
|
+
* @category mutations
|
|
106
|
+
*/
|
|
107
|
+
export const modify: {
|
|
108
|
+
<A, B>(f: (a: A) => readonly [B, A]): (self: TSubscriptionRef<A>) => STM.STM<B>
|
|
109
|
+
<A, B>(self: TSubscriptionRef<A>, f: (a: A) => readonly [B, A]): STM.STM<B>
|
|
110
|
+
} = internal.modify
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* @since 3.10.0
|
|
114
|
+
* @category mutations
|
|
115
|
+
*/
|
|
116
|
+
export const modifySome: {
|
|
117
|
+
<A, B>(fallback: B, f: (a: A) => Option.Option<readonly [B, A]>): (self: TSubscriptionRef<A>) => STM.STM<B>
|
|
118
|
+
<A, B>(self: TSubscriptionRef<A>, fallback: B, f: (a: A) => Option.Option<readonly [B, A]>): STM.STM<B>
|
|
119
|
+
} = internal.modifySome
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* @since 3.10.0
|
|
123
|
+
* @category mutations
|
|
124
|
+
*/
|
|
125
|
+
export const set: {
|
|
126
|
+
<A>(value: A): (self: TSubscriptionRef<A>) => STM.STM<void>
|
|
127
|
+
<A>(self: TSubscriptionRef<A>, value: A): STM.STM<void>
|
|
128
|
+
} = internal.set
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* @since 3.10.0
|
|
132
|
+
* @category mutations
|
|
133
|
+
*/
|
|
134
|
+
export const setAndGet: {
|
|
135
|
+
<A>(value: A): (self: TSubscriptionRef<A>) => STM.STM<A>
|
|
136
|
+
<A>(self: TSubscriptionRef<A>, value: A): STM.STM<A>
|
|
137
|
+
} = internal.setAndGet
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* @since 3.10.0
|
|
141
|
+
* @category mutations
|
|
142
|
+
*/
|
|
143
|
+
export const update: {
|
|
144
|
+
<A>(f: (a: A) => A): (self: TSubscriptionRef<A>) => STM.STM<void>
|
|
145
|
+
<A>(self: TSubscriptionRef<A>, f: (a: A) => A): STM.STM<void>
|
|
146
|
+
} = internal.update
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* @since 3.10.0
|
|
150
|
+
* @category mutations
|
|
151
|
+
*/
|
|
152
|
+
export const updateAndGet: {
|
|
153
|
+
<A>(f: (a: A) => A): (self: TSubscriptionRef<A>) => STM.STM<A>
|
|
154
|
+
<A>(self: TSubscriptionRef<A>, f: (a: A) => A): STM.STM<A>
|
|
155
|
+
} = internal.updateAndGet
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* @since 3.10.0
|
|
159
|
+
* @category mutations
|
|
160
|
+
*/
|
|
161
|
+
export const updateSome: {
|
|
162
|
+
<A>(f: (a: A) => Option.Option<A>): (self: TSubscriptionRef<A>) => STM.STM<void>
|
|
163
|
+
<A>(self: TSubscriptionRef<A>, f: (a: A) => Option.Option<A>): STM.STM<void>
|
|
164
|
+
} = internal.updateSome
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* @since 3.10.0
|
|
168
|
+
* @category mutations
|
|
169
|
+
*/
|
|
170
|
+
export const updateSomeAndGet: {
|
|
171
|
+
<A>(f: (a: A) => Option.Option<A>): (self: TSubscriptionRef<A>) => STM.STM<A>
|
|
172
|
+
<A>(self: TSubscriptionRef<A>, f: (a: A) => Option.Option<A>): STM.STM<A>
|
|
173
|
+
} = internal.updateSomeAndGet
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* @since 3.10.0
|
|
177
|
+
* @category mutations
|
|
178
|
+
*/
|
|
179
|
+
export const changesScoped: <A>(self: TSubscriptionRef<A>) => Effect.Effect<TQueue.TDequeue<A>, never, Scope.Scope> =
|
|
180
|
+
internal.changesScoped
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* @since 3.10.0
|
|
184
|
+
* @category mutations
|
|
185
|
+
*/
|
|
186
|
+
export const changesStream: <A>(self: TSubscriptionRef<A>) => Stream.Stream<A> = internal.changesStream
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* @since 3.10.0
|
|
190
|
+
* @category mutations
|
|
191
|
+
*/
|
|
192
|
+
export const changes: <A>(self: TSubscriptionRef<A>) => STM.STM<TQueue.TDequeue<A>> = (self) => self.changes
|