@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/TArray.ts
ADDED
|
@@ -0,0 +1,495 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 2.0.0
|
|
3
|
+
*/
|
|
4
|
+
import * as internal from "./internal/stm/tArray.js"
|
|
5
|
+
import type * as Option from "./Option.js"
|
|
6
|
+
import type * as Order from "./Order.js"
|
|
7
|
+
import type { Predicate } from "./Predicate.js"
|
|
8
|
+
import type * as STM from "./STM.js"
|
|
9
|
+
import type * as TRef from "./TRef.js"
|
|
10
|
+
import type * as Types from "./Types.js"
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* @since 2.0.0
|
|
14
|
+
* @category symbols
|
|
15
|
+
*/
|
|
16
|
+
export const TArrayTypeId: unique symbol = internal.TArrayTypeId
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* @since 2.0.0
|
|
20
|
+
* @category symbols
|
|
21
|
+
*/
|
|
22
|
+
export type TArrayTypeId = typeof TArrayTypeId
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* @since 2.0.0
|
|
26
|
+
* @category models
|
|
27
|
+
*/
|
|
28
|
+
export interface TArray<in out A> extends TArray.Variance<A> {}
|
|
29
|
+
/**
|
|
30
|
+
* @internal
|
|
31
|
+
* @since 2.0.0
|
|
32
|
+
*/
|
|
33
|
+
export interface TArray<in out A> {
|
|
34
|
+
/** @internal */
|
|
35
|
+
readonly chunk: Array<TRef.TRef<A>>
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* @since 2.0.0
|
|
40
|
+
*/
|
|
41
|
+
export declare namespace TArray {
|
|
42
|
+
/**
|
|
43
|
+
* @since 2.0.0
|
|
44
|
+
* @category models
|
|
45
|
+
*/
|
|
46
|
+
export interface Variance<in out A> {
|
|
47
|
+
readonly [TArrayTypeId]: {
|
|
48
|
+
readonly _A: Types.Invariant<A>
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Finds the result of applying a partial function to the first value in its
|
|
55
|
+
* domain.
|
|
56
|
+
*
|
|
57
|
+
* @since 2.0.0
|
|
58
|
+
* @category elements
|
|
59
|
+
*/
|
|
60
|
+
export const collectFirst: {
|
|
61
|
+
<A, B>(pf: (a: A) => Option.Option<B>): (self: TArray<A>) => STM.STM<Option.Option<B>>
|
|
62
|
+
<A, B>(self: TArray<A>, pf: (a: A) => Option.Option<B>): STM.STM<Option.Option<B>>
|
|
63
|
+
} = internal.collectFirst
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Finds the result of applying an transactional partial function to the first
|
|
67
|
+
* value in its domain.
|
|
68
|
+
*
|
|
69
|
+
* @since 2.0.0
|
|
70
|
+
* @category elements
|
|
71
|
+
*/
|
|
72
|
+
export const collectFirstSTM: {
|
|
73
|
+
<A, B, E, R>(pf: (a: A) => Option.Option<STM.STM<B, E, R>>): (self: TArray<A>) => STM.STM<Option.Option<B>, E, R>
|
|
74
|
+
<A, B, E, R>(self: TArray<A>, pf: (a: A) => Option.Option<STM.STM<B, E, R>>): STM.STM<Option.Option<B>, E, R>
|
|
75
|
+
} = internal.collectFirstSTM
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Determine if the array contains a specified value.
|
|
79
|
+
*
|
|
80
|
+
* @macro trace
|
|
81
|
+
* @since 2.0.0
|
|
82
|
+
* @category elements
|
|
83
|
+
*/
|
|
84
|
+
export const contains: {
|
|
85
|
+
<A>(value: A): (self: TArray<A>) => STM.STM<boolean>
|
|
86
|
+
<A>(self: TArray<A>, value: A): STM.STM<boolean>
|
|
87
|
+
} = internal.contains
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Count the values in the array matching a predicate.
|
|
91
|
+
*
|
|
92
|
+
* @macro trace
|
|
93
|
+
* @since 2.0.0
|
|
94
|
+
* @category folding
|
|
95
|
+
*/
|
|
96
|
+
export const count: {
|
|
97
|
+
<A>(predicate: Predicate<A>): (self: TArray<A>) => STM.STM<number>
|
|
98
|
+
<A>(self: TArray<A>, predicate: Predicate<A>): STM.STM<number>
|
|
99
|
+
} = internal.count
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Count the values in the array matching a transactional predicate.
|
|
103
|
+
*
|
|
104
|
+
* @macro trace
|
|
105
|
+
* @since 2.0.0
|
|
106
|
+
* @category folding
|
|
107
|
+
*/
|
|
108
|
+
export const countSTM: {
|
|
109
|
+
<A, R, E>(predicate: (value: A) => STM.STM<boolean, E, R>): (self: TArray<A>) => STM.STM<number, E, R>
|
|
110
|
+
<A, R, E>(self: TArray<A>, predicate: (value: A) => STM.STM<boolean, E, R>): STM.STM<number, E, R>
|
|
111
|
+
} = internal.countSTM
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Makes an empty `TArray`.
|
|
115
|
+
*
|
|
116
|
+
* @since 2.0.0
|
|
117
|
+
* @category constructors
|
|
118
|
+
*/
|
|
119
|
+
export const empty: <A>() => STM.STM<TArray<A>> = internal.empty
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Atomically evaluate the conjunction of a predicate across the members of
|
|
123
|
+
* the array.
|
|
124
|
+
*
|
|
125
|
+
* @since 2.0.0
|
|
126
|
+
* @category elements
|
|
127
|
+
*/
|
|
128
|
+
export const every: {
|
|
129
|
+
<A>(predicate: Predicate<A>): (self: TArray<A>) => STM.STM<boolean>
|
|
130
|
+
<A>(self: TArray<A>, predicate: Predicate<A>): STM.STM<boolean>
|
|
131
|
+
} = internal.every
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Atomically evaluate the conjunction of a transactional predicate across the
|
|
135
|
+
* members of the array.
|
|
136
|
+
*
|
|
137
|
+
* @since 2.0.0
|
|
138
|
+
* @category elements
|
|
139
|
+
*/
|
|
140
|
+
export const everySTM: {
|
|
141
|
+
<A, R, E>(predicate: (value: A) => STM.STM<boolean, E, R>): (self: TArray<A>) => STM.STM<boolean, E, R>
|
|
142
|
+
<A, R, E>(self: TArray<A>, predicate: (value: A) => STM.STM<boolean, E, R>): STM.STM<boolean, E, R>
|
|
143
|
+
} = internal.everySTM
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Find the first element in the array matching the specified predicate.
|
|
147
|
+
*
|
|
148
|
+
* @since 2.0.0
|
|
149
|
+
* @category elements
|
|
150
|
+
*/
|
|
151
|
+
export const findFirst: {
|
|
152
|
+
<A>(predicate: Predicate<A>): (self: TArray<A>) => STM.STM<Option.Option<A>>
|
|
153
|
+
<A>(self: TArray<A>, predicate: Predicate<A>): STM.STM<Option.Option<A>>
|
|
154
|
+
} = internal.findFirst
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Get the first index of a specific value in the array.
|
|
158
|
+
*
|
|
159
|
+
* @since 2.0.0
|
|
160
|
+
* @category elements
|
|
161
|
+
*/
|
|
162
|
+
export const findFirstIndex: {
|
|
163
|
+
<A>(value: A): (self: TArray<A>) => STM.STM<Option.Option<number>>
|
|
164
|
+
<A>(self: TArray<A>, value: A): STM.STM<Option.Option<number>>
|
|
165
|
+
} = internal.findFirstIndex
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Get the first index of a specific value in the array starting from the
|
|
169
|
+
* specified index.
|
|
170
|
+
*
|
|
171
|
+
* @since 2.0.0
|
|
172
|
+
* @category elements
|
|
173
|
+
*/
|
|
174
|
+
export const findFirstIndexFrom: {
|
|
175
|
+
<A>(value: A, from: number): (self: TArray<A>) => STM.STM<Option.Option<number>>
|
|
176
|
+
<A>(self: TArray<A>, value: A, from: number): STM.STM<Option.Option<number>>
|
|
177
|
+
} = internal.findFirstIndexFrom
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* Get the index of the first entry in the array matching a predicate.
|
|
181
|
+
*
|
|
182
|
+
* @since 2.0.0
|
|
183
|
+
* @category elements
|
|
184
|
+
*/
|
|
185
|
+
export const findFirstIndexWhere: {
|
|
186
|
+
<A>(predicate: Predicate<A>): (self: TArray<A>) => STM.STM<Option.Option<number>>
|
|
187
|
+
<A>(self: TArray<A>, predicate: Predicate<A>): STM.STM<Option.Option<number>>
|
|
188
|
+
} = internal.findFirstIndexWhere
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* Get the index of the first entry in the array starting from the specified
|
|
192
|
+
* index, matching a predicate.
|
|
193
|
+
*
|
|
194
|
+
* @since 2.0.0
|
|
195
|
+
* @category elements
|
|
196
|
+
*/
|
|
197
|
+
export const findFirstIndexWhereFrom: {
|
|
198
|
+
<A>(predicate: Predicate<A>, from: number): (self: TArray<A>) => STM.STM<Option.Option<number>>
|
|
199
|
+
<A>(self: TArray<A>, predicate: Predicate<A>, from: number): STM.STM<Option.Option<number>>
|
|
200
|
+
} = internal.findFirstIndexWhereFrom
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* Get the index of the next entry that matches a transactional predicate.
|
|
204
|
+
*
|
|
205
|
+
* @since 2.0.0
|
|
206
|
+
* @category elements
|
|
207
|
+
*/
|
|
208
|
+
export const findFirstIndexWhereSTM: {
|
|
209
|
+
<A, R, E>(predicate: (value: A) => STM.STM<boolean, E, R>): (self: TArray<A>) => STM.STM<Option.Option<number>, E, R>
|
|
210
|
+
<A, R, E>(self: TArray<A>, predicate: (value: A) => STM.STM<boolean, E, R>): STM.STM<Option.Option<number>, E, R>
|
|
211
|
+
} = internal.findFirstIndexWhereSTM
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* Starting at specified index, get the index of the next entry that matches a
|
|
215
|
+
* transactional predicate.
|
|
216
|
+
*
|
|
217
|
+
* @since 2.0.0
|
|
218
|
+
* @category elements
|
|
219
|
+
*/
|
|
220
|
+
export const findFirstIndexWhereFromSTM: {
|
|
221
|
+
<A, R, E>(
|
|
222
|
+
predicate: (value: A) => STM.STM<boolean, E, R>,
|
|
223
|
+
from: number
|
|
224
|
+
): (self: TArray<A>) => STM.STM<Option.Option<number>, E, R>
|
|
225
|
+
<A, R, E>(
|
|
226
|
+
self: TArray<A>,
|
|
227
|
+
predicate: (value: A) => STM.STM<boolean, E, R>,
|
|
228
|
+
from: number
|
|
229
|
+
): STM.STM<Option.Option<number>, E, R>
|
|
230
|
+
} = internal.findFirstIndexWhereFromSTM
|
|
231
|
+
|
|
232
|
+
/**
|
|
233
|
+
* Find the first element in the array matching a transactional predicate.
|
|
234
|
+
*
|
|
235
|
+
* @since 2.0.0
|
|
236
|
+
* @category elements
|
|
237
|
+
*/
|
|
238
|
+
export const findFirstSTM: {
|
|
239
|
+
<A, R, E>(predicate: (value: A) => STM.STM<boolean, E, R>): (self: TArray<A>) => STM.STM<Option.Option<A>, E, R>
|
|
240
|
+
<A, R, E>(self: TArray<A>, predicate: (value: A) => STM.STM<boolean, E, R>): STM.STM<Option.Option<A>, E, R>
|
|
241
|
+
} = internal.findFirstSTM
|
|
242
|
+
|
|
243
|
+
/**
|
|
244
|
+
* Find the last element in the array matching a predicate.
|
|
245
|
+
*
|
|
246
|
+
* @since 2.0.0
|
|
247
|
+
* @category elements
|
|
248
|
+
*/
|
|
249
|
+
export const findLast: {
|
|
250
|
+
<A>(predicate: Predicate<A>): (self: TArray<A>) => STM.STM<Option.Option<A>>
|
|
251
|
+
<A>(self: TArray<A>, predicate: Predicate<A>): STM.STM<Option.Option<A>>
|
|
252
|
+
} = internal.findLast
|
|
253
|
+
|
|
254
|
+
/**
|
|
255
|
+
* Get the last index of a specific value in the array bounded above by a
|
|
256
|
+
* specific index.
|
|
257
|
+
*
|
|
258
|
+
* @since 2.0.0
|
|
259
|
+
* @category elements
|
|
260
|
+
*/
|
|
261
|
+
export const findLastIndex: {
|
|
262
|
+
<A>(value: A): (self: TArray<A>) => STM.STM<Option.Option<number>>
|
|
263
|
+
<A>(self: TArray<A>, value: A): STM.STM<Option.Option<number>>
|
|
264
|
+
} = internal.findLastIndex
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* Get the last index of a specific value in the array bounded above by a
|
|
268
|
+
* specific index.
|
|
269
|
+
*
|
|
270
|
+
* @since 2.0.0
|
|
271
|
+
* @category elements
|
|
272
|
+
*/
|
|
273
|
+
export const findLastIndexFrom: {
|
|
274
|
+
<A>(value: A, end: number): (self: TArray<A>) => STM.STM<Option.Option<number>>
|
|
275
|
+
<A>(self: TArray<A>, value: A, end: number): STM.STM<Option.Option<number>>
|
|
276
|
+
} = internal.findLastIndexFrom
|
|
277
|
+
|
|
278
|
+
/**
|
|
279
|
+
* Find the last element in the array matching a transactional predicate.
|
|
280
|
+
*
|
|
281
|
+
* @since 2.0.0
|
|
282
|
+
* @category elements
|
|
283
|
+
*/
|
|
284
|
+
export const findLastSTM: {
|
|
285
|
+
<A, R, E>(predicate: (value: A) => STM.STM<boolean, E, R>): (self: TArray<A>) => STM.STM<Option.Option<A>, E, R>
|
|
286
|
+
<A, R, E>(self: TArray<A>, predicate: (value: A) => STM.STM<boolean, E, R>): STM.STM<Option.Option<A>, E, R>
|
|
287
|
+
} = internal.findLastSTM
|
|
288
|
+
|
|
289
|
+
/**
|
|
290
|
+
* Atomically performs transactional effect for each item in array.
|
|
291
|
+
*
|
|
292
|
+
* @since 2.0.0
|
|
293
|
+
* @category elements
|
|
294
|
+
*/
|
|
295
|
+
export const forEach: {
|
|
296
|
+
<A, R, E>(f: (value: A) => STM.STM<void, E, R>): (self: TArray<A>) => STM.STM<void, E, R>
|
|
297
|
+
<A, R, E>(self: TArray<A>, f: (value: A) => STM.STM<void, E, R>): STM.STM<void, E, R>
|
|
298
|
+
} = internal.forEach
|
|
299
|
+
|
|
300
|
+
/**
|
|
301
|
+
* Creates a new `TArray` from an iterable collection of values.
|
|
302
|
+
*
|
|
303
|
+
* @since 2.0.0
|
|
304
|
+
* @category constructors
|
|
305
|
+
*/
|
|
306
|
+
export const fromIterable: <A>(iterable: Iterable<A>) => STM.STM<TArray<A>> = internal.fromIterable
|
|
307
|
+
|
|
308
|
+
/**
|
|
309
|
+
* Extracts value from ref in array.
|
|
310
|
+
*
|
|
311
|
+
* @since 2.0.0
|
|
312
|
+
* @category elements
|
|
313
|
+
*/
|
|
314
|
+
export const get: {
|
|
315
|
+
(index: number): <A>(self: TArray<A>) => STM.STM<A>
|
|
316
|
+
<A>(self: TArray<A>, index: number): STM.STM<A>
|
|
317
|
+
} = internal.get
|
|
318
|
+
|
|
319
|
+
/**
|
|
320
|
+
* The first entry of the array, if it exists.
|
|
321
|
+
*
|
|
322
|
+
* @since 2.0.0
|
|
323
|
+
* @category elements
|
|
324
|
+
*/
|
|
325
|
+
export const headOption: <A>(self: TArray<A>) => STM.STM<Option.Option<A>> = internal.headOption
|
|
326
|
+
|
|
327
|
+
/**
|
|
328
|
+
* The last entry in the array, if it exists.
|
|
329
|
+
*
|
|
330
|
+
* @since 2.0.0
|
|
331
|
+
* @category elements
|
|
332
|
+
*/
|
|
333
|
+
export const lastOption: <A>(self: TArray<A>) => STM.STM<Option.Option<A>> = internal.lastOption
|
|
334
|
+
|
|
335
|
+
/**
|
|
336
|
+
* Makes a new `TArray` that is initialized with specified values.
|
|
337
|
+
*
|
|
338
|
+
* @since 2.0.0
|
|
339
|
+
* @category constructors
|
|
340
|
+
*/
|
|
341
|
+
export const make: <Elements extends [any, ...Array<any>]>(
|
|
342
|
+
...elements: Elements
|
|
343
|
+
) => STM.STM<TArray<Elements[number]>> = internal.make
|
|
344
|
+
|
|
345
|
+
/**
|
|
346
|
+
* Atomically compute the greatest element in the array, if it exists.
|
|
347
|
+
*
|
|
348
|
+
* @since 2.0.0
|
|
349
|
+
* @category elements
|
|
350
|
+
*/
|
|
351
|
+
export const maxOption: {
|
|
352
|
+
<A>(order: Order.Order<A>): (self: TArray<A>) => STM.STM<Option.Option<A>>
|
|
353
|
+
<A>(self: TArray<A>, order: Order.Order<A>): STM.STM<Option.Option<A>>
|
|
354
|
+
} = internal.maxOption
|
|
355
|
+
|
|
356
|
+
/**
|
|
357
|
+
* Atomically compute the least element in the array, if it exists.
|
|
358
|
+
*
|
|
359
|
+
* @since 2.0.0
|
|
360
|
+
* @category elements
|
|
361
|
+
*/
|
|
362
|
+
export const minOption: {
|
|
363
|
+
<A>(order: Order.Order<A>): (self: TArray<A>) => STM.STM<Option.Option<A>>
|
|
364
|
+
<A>(self: TArray<A>, order: Order.Order<A>): STM.STM<Option.Option<A>>
|
|
365
|
+
} = internal.minOption
|
|
366
|
+
|
|
367
|
+
/**
|
|
368
|
+
* Atomically folds using a pure function.
|
|
369
|
+
*
|
|
370
|
+
* @since 2.0.0
|
|
371
|
+
* @category folding
|
|
372
|
+
*/
|
|
373
|
+
export const reduce: {
|
|
374
|
+
<Z, A>(zero: Z, f: (accumulator: Z, current: A) => Z): (self: TArray<A>) => STM.STM<Z>
|
|
375
|
+
<Z, A>(self: TArray<A>, zero: Z, f: (accumulator: Z, current: A) => Z): STM.STM<Z>
|
|
376
|
+
} = internal.reduce
|
|
377
|
+
|
|
378
|
+
/**
|
|
379
|
+
* Atomically reduce the array, if non-empty, by a binary operator.
|
|
380
|
+
*
|
|
381
|
+
* @since 2.0.0
|
|
382
|
+
* @category elements
|
|
383
|
+
*/
|
|
384
|
+
export const reduceOption: {
|
|
385
|
+
<A>(f: (x: A, y: A) => A): (self: TArray<A>) => STM.STM<Option.Option<A>>
|
|
386
|
+
<A>(self: TArray<A>, f: (x: A, y: A) => A): STM.STM<Option.Option<A>>
|
|
387
|
+
} = internal.reduceOption
|
|
388
|
+
|
|
389
|
+
/**
|
|
390
|
+
* Atomically reduce the non-empty array using a transactional binary
|
|
391
|
+
* operator.
|
|
392
|
+
*
|
|
393
|
+
* @since 2.0.0
|
|
394
|
+
* @category elements
|
|
395
|
+
*/
|
|
396
|
+
export const reduceOptionSTM: {
|
|
397
|
+
<A, R, E>(f: (x: A, y: A) => STM.STM<A, E, R>): (self: TArray<A>) => STM.STM<Option.Option<A>, E, R>
|
|
398
|
+
<A, R, E>(self: TArray<A>, f: (x: A, y: A) => STM.STM<A, E, R>): STM.STM<Option.Option<A>, E, R>
|
|
399
|
+
} = internal.reduceOptionSTM
|
|
400
|
+
|
|
401
|
+
/**
|
|
402
|
+
* Atomically folds using a transactional function.
|
|
403
|
+
*
|
|
404
|
+
* @macro trace
|
|
405
|
+
* @since 2.0.0
|
|
406
|
+
* @category folding
|
|
407
|
+
*/
|
|
408
|
+
export const reduceSTM: {
|
|
409
|
+
<Z, A, R, E>(zero: Z, f: (accumulator: Z, current: A) => STM.STM<Z, E, R>): (self: TArray<A>) => STM.STM<Z, E, R>
|
|
410
|
+
<Z, A, R, E>(self: TArray<A>, zero: Z, f: (accumulator: Z, current: A) => STM.STM<Z, E, R>): STM.STM<Z, E, R>
|
|
411
|
+
} = internal.reduceSTM
|
|
412
|
+
|
|
413
|
+
/**
|
|
414
|
+
* Returns the size of the `TArray`.
|
|
415
|
+
*
|
|
416
|
+
* @since 2.0.0
|
|
417
|
+
* @category getters
|
|
418
|
+
*/
|
|
419
|
+
export const size: <A>(self: TArray<A>) => number = internal.size
|
|
420
|
+
|
|
421
|
+
/**
|
|
422
|
+
* Determine if the array contains a value satisfying a predicate.
|
|
423
|
+
*
|
|
424
|
+
* @since 2.0.0
|
|
425
|
+
* @category elements
|
|
426
|
+
*/
|
|
427
|
+
export const some: {
|
|
428
|
+
<A>(predicate: Predicate<A>): (self: TArray<A>) => STM.STM<boolean>
|
|
429
|
+
<A>(self: TArray<A>, predicate: Predicate<A>): STM.STM<boolean>
|
|
430
|
+
} = internal.some
|
|
431
|
+
|
|
432
|
+
/**
|
|
433
|
+
* Determine if the array contains a value satisfying a transactional
|
|
434
|
+
* predicate.
|
|
435
|
+
*
|
|
436
|
+
* @since 2.0.0
|
|
437
|
+
* @category elements
|
|
438
|
+
*/
|
|
439
|
+
export const someSTM: {
|
|
440
|
+
<A, R, E>(predicate: (value: A) => STM.STM<boolean, E, R>): (self: TArray<A>) => STM.STM<boolean, E, R>
|
|
441
|
+
<A, R, E>(self: TArray<A>, predicate: (value: A) => STM.STM<boolean, E, R>): STM.STM<boolean, E, R>
|
|
442
|
+
} = internal.someSTM
|
|
443
|
+
|
|
444
|
+
/**
|
|
445
|
+
* Collects all elements into a chunk.
|
|
446
|
+
*
|
|
447
|
+
* @since 2.0.0
|
|
448
|
+
* @since 2.0.0
|
|
449
|
+
* @category destructors
|
|
450
|
+
*/
|
|
451
|
+
export const toArray: <A>(self: TArray<A>) => STM.STM<Array<A>> = internal.toArray
|
|
452
|
+
|
|
453
|
+
/**
|
|
454
|
+
* Atomically updates all elements using a pure function.
|
|
455
|
+
*
|
|
456
|
+
* @since 2.0.0
|
|
457
|
+
* @category elements
|
|
458
|
+
*/
|
|
459
|
+
export const transform: {
|
|
460
|
+
<A>(f: (value: A) => A): (self: TArray<A>) => STM.STM<void>
|
|
461
|
+
<A>(self: TArray<A>, f: (value: A) => A): STM.STM<void>
|
|
462
|
+
} = internal.transform
|
|
463
|
+
|
|
464
|
+
/**
|
|
465
|
+
* Atomically updates all elements using a transactional effect.
|
|
466
|
+
*
|
|
467
|
+
* @since 2.0.0
|
|
468
|
+
* @category elements
|
|
469
|
+
*/
|
|
470
|
+
export const transformSTM: {
|
|
471
|
+
<A, R, E>(f: (value: A) => STM.STM<A, E, R>): (self: TArray<A>) => STM.STM<void, E, R>
|
|
472
|
+
<A, R, E>(self: TArray<A>, f: (value: A) => STM.STM<A, E, R>): STM.STM<void, E, R>
|
|
473
|
+
} = internal.transformSTM
|
|
474
|
+
|
|
475
|
+
/**
|
|
476
|
+
* Updates element in the array with given function.
|
|
477
|
+
*
|
|
478
|
+
* @since 2.0.0
|
|
479
|
+
* @category elements
|
|
480
|
+
*/
|
|
481
|
+
export const update: {
|
|
482
|
+
<A>(index: number, f: (value: A) => A): (self: TArray<A>) => STM.STM<void>
|
|
483
|
+
<A>(self: TArray<A>, index: number, f: (value: A) => A): STM.STM<void>
|
|
484
|
+
} = internal.update
|
|
485
|
+
|
|
486
|
+
/**
|
|
487
|
+
* Atomically updates element in the array with given transactional effect.
|
|
488
|
+
*
|
|
489
|
+
* @since 2.0.0
|
|
490
|
+
* @category elements
|
|
491
|
+
*/
|
|
492
|
+
export const updateSTM: {
|
|
493
|
+
<A, R, E>(index: number, f: (value: A) => STM.STM<A, E, R>): (self: TArray<A>) => STM.STM<void, E, R>
|
|
494
|
+
<A, R, E>(self: TArray<A>, index: number, f: (value: A) => STM.STM<A, E, R>): STM.STM<void, E, R>
|
|
495
|
+
} = internal.updateSTM
|
package/src/TDeferred.ts
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 2.0.0
|
|
3
|
+
*/
|
|
4
|
+
import type * as Either from "./Either.js"
|
|
5
|
+
import * as internal from "./internal/stm/tDeferred.js"
|
|
6
|
+
import type * as Option from "./Option.js"
|
|
7
|
+
import type * as STM from "./STM.js"
|
|
8
|
+
import type * as TRef from "./TRef.js"
|
|
9
|
+
import type * as Types from "./Types.js"
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @since 2.0.0
|
|
13
|
+
* @category symbols
|
|
14
|
+
*/
|
|
15
|
+
export const TDeferredTypeId: unique symbol = internal.TDeferredTypeId
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @since 2.0.0
|
|
19
|
+
* @category symbols
|
|
20
|
+
*/
|
|
21
|
+
export type TDeferredTypeId = typeof TDeferredTypeId
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* @since 2.0.0
|
|
25
|
+
* @category models
|
|
26
|
+
*/
|
|
27
|
+
export interface TDeferred<in out A, in out E = never> extends TDeferred.Variance<A, E> {}
|
|
28
|
+
/**
|
|
29
|
+
* @internal
|
|
30
|
+
* @since 2.0.0
|
|
31
|
+
*/
|
|
32
|
+
export interface TDeferred<in out A, in out E> {
|
|
33
|
+
/** @internal */
|
|
34
|
+
readonly ref: TRef.TRef<Option.Option<Either.Either<A, E>>>
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* @since 2.0.0
|
|
39
|
+
*/
|
|
40
|
+
export declare namespace TDeferred {
|
|
41
|
+
/**
|
|
42
|
+
* @since 2.0.0
|
|
43
|
+
* @category models
|
|
44
|
+
*/
|
|
45
|
+
export interface Variance<in out A, in out E> {
|
|
46
|
+
readonly [TDeferredTypeId]: {
|
|
47
|
+
readonly _A: Types.Invariant<A>
|
|
48
|
+
readonly _E: Types.Invariant<E>
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
const _await: <A, E>(self: TDeferred<A, E>) => STM.STM<A, E> = internal._await
|
|
54
|
+
|
|
55
|
+
export {
|
|
56
|
+
/**
|
|
57
|
+
* @since 2.0.0
|
|
58
|
+
* @category getters
|
|
59
|
+
*/
|
|
60
|
+
_await as await
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* @since 2.0.0
|
|
65
|
+
* @category mutations
|
|
66
|
+
*/
|
|
67
|
+
export const done: {
|
|
68
|
+
<A, E>(either: Either.Either<A, E>): (self: TDeferred<A, E>) => STM.STM<boolean>
|
|
69
|
+
<A, E>(self: TDeferred<A, E>, either: Either.Either<A, E>): STM.STM<boolean>
|
|
70
|
+
} = internal.done
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* @since 2.0.0
|
|
74
|
+
* @category mutations
|
|
75
|
+
*/
|
|
76
|
+
export const fail: {
|
|
77
|
+
<E>(error: E): <A>(self: TDeferred<A, E>) => STM.STM<boolean>
|
|
78
|
+
<A, E>(self: TDeferred<A, E>, error: E): STM.STM<boolean>
|
|
79
|
+
} = internal.fail
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* @since 2.0.0
|
|
83
|
+
* @category constructors
|
|
84
|
+
*/
|
|
85
|
+
export const make: <A, E = never>() => STM.STM<TDeferred<A, E>> = internal.make
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* @since 2.0.0
|
|
89
|
+
* @category getters
|
|
90
|
+
*/
|
|
91
|
+
export const poll: <A, E>(self: TDeferred<A, E>) => STM.STM<Option.Option<Either.Either<A, E>>> = internal.poll
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* @since 2.0.0
|
|
95
|
+
* @category mutations
|
|
96
|
+
*/
|
|
97
|
+
export const succeed: {
|
|
98
|
+
<A>(value: A): <E>(self: TDeferred<A, E>) => STM.STM<boolean>
|
|
99
|
+
<A, E>(self: TDeferred<A, E>, value: A): STM.STM<boolean>
|
|
100
|
+
} = internal.succeed
|