effect 2.0.0-next.56 → 2.0.0-next.57
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/dist/cjs/BigDecimal.js +9 -9
- package/dist/cjs/BigDecimal.js.map +1 -1
- package/dist/cjs/BigInt.js.map +1 -1
- package/dist/cjs/Boolean.js.map +1 -1
- package/dist/cjs/Brand.js.map +1 -1
- package/dist/cjs/Cache.js.map +1 -1
- package/dist/cjs/Cause.js.map +1 -1
- package/dist/cjs/Channel.js.map +1 -1
- package/dist/cjs/Chunk.js +38 -29
- package/dist/cjs/Chunk.js.map +1 -1
- package/dist/cjs/Config.js +3 -3
- package/dist/cjs/Config.js.map +1 -1
- package/dist/cjs/Context.js.map +1 -1
- package/dist/cjs/Data.js.map +1 -1
- package/dist/cjs/Deferred.js.map +1 -1
- package/dist/cjs/Differ.js.map +1 -1
- package/dist/cjs/Duration.js +45 -2
- package/dist/cjs/Duration.js.map +1 -1
- package/dist/cjs/Effect.js +6 -11
- package/dist/cjs/Effect.js.map +1 -1
- package/dist/cjs/Either.js +36 -7
- package/dist/cjs/Either.js.map +1 -1
- package/dist/cjs/Equal.js.map +1 -1
- package/dist/cjs/Equivalence.js +1 -1
- package/dist/cjs/Equivalence.js.map +1 -1
- package/dist/cjs/Fiber.js.map +1 -1
- package/dist/cjs/FiberRef.js +6 -1
- package/dist/cjs/FiberRef.js.map +1 -1
- package/dist/cjs/Function.js.map +1 -1
- package/dist/cjs/GlobalValue.js.map +1 -1
- package/dist/cjs/GroupBy.js.map +1 -1
- package/dist/cjs/Hash.js.map +1 -1
- package/dist/cjs/Inspectable.js +4 -6
- package/dist/cjs/Inspectable.js.map +1 -1
- package/dist/cjs/KeyedPool.js.map +1 -1
- package/dist/cjs/Layer.js +9 -29
- package/dist/cjs/Layer.js.map +1 -1
- package/dist/cjs/List.js +25 -22
- package/dist/cjs/List.js.map +1 -1
- package/dist/cjs/LogLevel.js.map +1 -1
- package/dist/cjs/Logger.js.map +1 -1
- package/dist/cjs/Match.js.map +1 -1
- package/dist/cjs/MergeDecision.js.map +1 -1
- package/dist/cjs/Metric.js.map +1 -1
- package/dist/cjs/MetricHook.js.map +1 -1
- package/dist/cjs/MetricKey.js.map +1 -1
- package/dist/cjs/MetricKeyType.js.map +1 -1
- package/dist/cjs/MetricPair.js.map +1 -1
- package/dist/cjs/MetricState.js.map +1 -1
- package/dist/cjs/MutableHashMap.js +1 -1
- package/dist/cjs/MutableHashMap.js.map +1 -1
- package/dist/cjs/MutableHashSet.js +1 -1
- package/dist/cjs/MutableHashSet.js.map +1 -1
- package/dist/cjs/MutableList.js +1 -1
- package/dist/cjs/MutableList.js.map +1 -1
- package/dist/cjs/MutableQueue.js +1 -1
- package/dist/cjs/MutableQueue.js.map +1 -1
- package/dist/cjs/MutableRef.js +1 -1
- package/dist/cjs/MutableRef.js.map +1 -1
- package/dist/cjs/NonEmptyIterable.js.map +1 -1
- package/dist/cjs/Number.js.map +1 -1
- package/dist/cjs/Option.js +19 -12
- package/dist/cjs/Option.js.map +1 -1
- package/dist/cjs/Order.js +1 -1
- package/dist/cjs/Order.js.map +1 -1
- package/dist/cjs/Ordering.js.map +1 -1
- package/dist/cjs/Pipeable.js.map +1 -1
- package/dist/cjs/Pool.js +15 -17
- package/dist/cjs/Pool.js.map +1 -1
- package/dist/cjs/Predicate.js.map +1 -1
- package/dist/cjs/PrimaryKey.js +7 -1
- package/dist/cjs/PrimaryKey.js.map +1 -1
- package/dist/cjs/Queue.js.map +1 -1
- package/dist/cjs/ReadonlyArray.js +200 -187
- package/dist/cjs/ReadonlyArray.js.map +1 -1
- package/dist/cjs/ReadonlyRecord.js +59 -6
- package/dist/cjs/ReadonlyRecord.js.map +1 -1
- package/dist/cjs/RedBlackTree.js.map +1 -1
- package/dist/cjs/Ref.js.map +1 -1
- package/dist/cjs/Reloadable.js.map +1 -1
- package/dist/cjs/Request.js +8 -1
- package/dist/cjs/Request.js.map +1 -1
- package/dist/cjs/RequestBlock.js +5 -24
- package/dist/cjs/RequestBlock.js.map +1 -1
- package/dist/cjs/RequestResolver.js.map +1 -1
- package/dist/cjs/Resource.js.map +1 -1
- package/dist/cjs/STM.js.map +1 -1
- package/dist/cjs/Schedule.js.map +1 -1
- package/dist/cjs/Scheduler.js.map +1 -1
- package/dist/cjs/ScopedCache.js.map +1 -1
- package/dist/cjs/ScopedRef.js.map +1 -1
- package/dist/cjs/Sink.js.map +1 -1
- package/dist/cjs/SortedMap.js +1 -1
- package/dist/cjs/SortedMap.js.map +1 -1
- package/dist/cjs/SortedSet.js +1 -1
- package/dist/cjs/SortedSet.js.map +1 -1
- package/dist/cjs/Stream.js.map +1 -1
- package/dist/cjs/Streamable.js +3 -0
- package/dist/cjs/Streamable.js.map +1 -1
- package/dist/cjs/String.js.map +1 -1
- package/dist/cjs/Struct.js.map +1 -1
- package/dist/cjs/SubscriptionRef.js.map +1 -1
- package/dist/cjs/Supervisor.js.map +1 -1
- package/dist/cjs/SynchronizedRef.js.map +1 -1
- package/dist/cjs/TArray.js.map +1 -1
- package/dist/cjs/TDeferred.js.map +1 -1
- package/dist/cjs/TMap.js.map +1 -1
- package/dist/cjs/TPriorityQueue.js.map +1 -1
- package/dist/cjs/TPubSub.js.map +1 -1
- package/dist/cjs/TQueue.js.map +1 -1
- package/dist/cjs/TRef.js.map +1 -1
- package/dist/cjs/TSet.js.map +1 -1
- package/dist/cjs/Take.js.map +1 -1
- package/dist/cjs/TestAnnotation.js.map +1 -1
- package/dist/cjs/TestAnnotationMap.js.map +1 -1
- package/dist/cjs/TestAnnotations.js.map +1 -1
- package/dist/cjs/TestClock.js.map +1 -1
- package/dist/cjs/TestContext.js +2 -2
- package/dist/cjs/TestContext.js.map +1 -1
- package/dist/cjs/UpstreamPullRequest.js.map +1 -1
- package/dist/cjs/UpstreamPullStrategy.js.map +1 -1
- package/dist/cjs/Utils.js.map +1 -1
- package/dist/cjs/internal/Iterable.js.map +1 -1
- package/dist/cjs/internal/blockedRequests.js +3 -2
- package/dist/cjs/internal/blockedRequests.js.map +1 -1
- package/dist/cjs/internal/cache.js +3 -0
- package/dist/cjs/internal/cache.js.map +1 -1
- package/dist/cjs/internal/cause.js +1 -1
- package/dist/cjs/internal/cause.js.map +1 -1
- package/dist/cjs/internal/channel/channelExecutor.js.map +1 -1
- package/dist/cjs/internal/channel/channelState.js +2 -1
- package/dist/cjs/internal/channel/channelState.js.map +1 -1
- package/dist/cjs/internal/channel/childExecutorDecision.js.map +1 -1
- package/dist/cjs/internal/channel/continuation.js +9 -1
- package/dist/cjs/internal/channel/continuation.js.map +1 -1
- package/dist/cjs/internal/channel/mergeDecision.js.map +1 -1
- package/dist/cjs/internal/channel/mergeState.js.map +1 -1
- package/dist/cjs/internal/channel/mergeStrategy.js.map +1 -1
- package/dist/cjs/internal/channel/singleProducerAsyncInput.js.map +1 -1
- package/dist/cjs/internal/channel/subexecutor.js.map +1 -1
- package/dist/cjs/internal/channel/upstreamPullRequest.js +1 -1
- package/dist/cjs/internal/channel/upstreamPullRequest.js.map +1 -1
- package/dist/cjs/internal/channel/upstreamPullStrategy.js +1 -1
- package/dist/cjs/internal/channel/upstreamPullStrategy.js.map +1 -1
- package/dist/cjs/internal/channel.js.map +1 -1
- package/dist/cjs/internal/clock.js.map +1 -1
- package/dist/cjs/internal/concurrency.js.map +1 -1
- package/dist/cjs/internal/config.js +16 -24
- package/dist/cjs/internal/config.js.map +1 -1
- package/dist/cjs/internal/configError.js +2 -2
- package/dist/cjs/internal/configError.js.map +1 -1
- package/dist/cjs/internal/configProvider/pathPatch.js.map +1 -1
- package/dist/cjs/internal/configProvider.js +5 -3
- package/dist/cjs/internal/configProvider.js.map +1 -1
- package/dist/cjs/internal/configSecret.js.map +1 -1
- package/dist/cjs/internal/context.js +5 -5
- package/dist/cjs/internal/context.js.map +1 -1
- package/dist/cjs/internal/core-effect.js +13 -9
- package/dist/cjs/internal/core-effect.js.map +1 -1
- package/dist/cjs/internal/core-stream.js +7 -1
- package/dist/cjs/internal/core-stream.js.map +1 -1
- package/dist/cjs/internal/core.js +47 -77
- package/dist/cjs/internal/core.js.map +1 -1
- package/dist/cjs/internal/data.js.map +1 -1
- package/dist/cjs/internal/dataSource.js.map +1 -1
- package/dist/cjs/internal/deferred.js +2 -0
- package/dist/cjs/internal/deferred.js.map +1 -1
- package/dist/cjs/internal/differ/chunkPatch.js.map +1 -1
- package/dist/cjs/internal/differ/contextPatch.js.map +1 -1
- package/dist/cjs/internal/differ/hashMapPatch.js.map +1 -1
- package/dist/cjs/internal/differ/hashSetPatch.js.map +1 -1
- package/dist/cjs/internal/differ/orPatch.js.map +1 -1
- package/dist/cjs/internal/differ.js.map +1 -1
- package/dist/cjs/internal/effect/circular.js +1 -0
- package/dist/cjs/internal/effect/circular.js.map +1 -1
- package/dist/cjs/internal/effectable.js +18 -5
- package/dist/cjs/internal/effectable.js.map +1 -1
- package/dist/cjs/internal/either.js +1 -1
- package/dist/cjs/internal/either.js.map +1 -1
- package/dist/cjs/internal/encoding/base64.js.map +1 -1
- package/dist/cjs/internal/encoding/base64Url.js.map +1 -1
- package/dist/cjs/internal/encoding/common.js.map +1 -1
- package/dist/cjs/internal/encoding/hex.js.map +1 -1
- package/dist/cjs/internal/executionStrategy.js.map +1 -1
- package/dist/cjs/internal/fiber.js +2 -0
- package/dist/cjs/internal/fiber.js.map +1 -1
- package/dist/cjs/internal/fiberId.js +3 -3
- package/dist/cjs/internal/fiberId.js.map +1 -1
- package/dist/cjs/internal/fiberRefs/patch.js.map +1 -1
- package/dist/cjs/internal/fiberRefs.js.map +1 -1
- package/dist/cjs/internal/fiberRuntime.js +172 -208
- package/dist/cjs/internal/fiberRuntime.js.map +1 -1
- package/dist/cjs/internal/groupBy.js +4 -1
- package/dist/cjs/internal/groupBy.js.map +1 -1
- package/dist/cjs/internal/hashMap/array.js.map +1 -1
- package/dist/cjs/internal/hashMap/node.js.map +1 -1
- package/dist/cjs/internal/hashMap.js +1 -1
- package/dist/cjs/internal/hashMap.js.map +1 -1
- package/dist/cjs/internal/hashSet.js +1 -1
- package/dist/cjs/internal/hashSet.js.map +1 -1
- package/dist/cjs/internal/keyedPool.js +3 -0
- package/dist/cjs/internal/keyedPool.js.map +1 -1
- package/dist/cjs/internal/layer.js +23 -53
- package/dist/cjs/internal/layer.js.map +1 -1
- package/dist/cjs/internal/logger.js +2 -1
- package/dist/cjs/internal/logger.js.map +1 -1
- package/dist/cjs/internal/matcher.js.map +1 -1
- package/dist/cjs/internal/metric/hook.js +2 -1
- package/dist/cjs/internal/metric/hook.js.map +1 -1
- package/dist/cjs/internal/metric/key.js +1 -1
- package/dist/cjs/internal/metric/key.js.map +1 -1
- package/dist/cjs/internal/metric/keyType.js +2 -1
- package/dist/cjs/internal/metric/keyType.js.map +1 -1
- package/dist/cjs/internal/metric/pair.js +1 -1
- package/dist/cjs/internal/metric/pair.js.map +1 -1
- package/dist/cjs/internal/metric/polling.js.map +1 -1
- package/dist/cjs/internal/metric/registry.js.map +1 -1
- package/dist/cjs/internal/metric/state.js +1 -1
- package/dist/cjs/internal/metric/state.js.map +1 -1
- package/dist/cjs/internal/metric.js +7 -5
- package/dist/cjs/internal/metric.js.map +1 -1
- package/dist/cjs/internal/opCodes/layer.js +4 -4
- package/dist/cjs/internal/opCodes/layer.js.map +1 -1
- package/dist/cjs/internal/option.js +1 -1
- package/dist/cjs/internal/option.js.map +1 -1
- package/dist/cjs/internal/pool.js +2 -0
- package/dist/cjs/internal/pool.js.map +1 -1
- package/dist/cjs/internal/pubsub.js +1 -1
- package/dist/cjs/internal/pubsub.js.map +1 -1
- package/dist/cjs/internal/query.js +1 -1
- package/dist/cjs/internal/query.js.map +1 -1
- package/dist/cjs/internal/queue.js +6 -4
- package/dist/cjs/internal/queue.js.map +1 -1
- package/dist/cjs/internal/random.js.map +1 -1
- package/dist/cjs/internal/redBlackTree/iterator.js.map +1 -1
- package/dist/cjs/internal/redBlackTree.js +3 -1
- package/dist/cjs/internal/redBlackTree.js.map +1 -1
- package/dist/cjs/internal/ref.js +1 -0
- package/dist/cjs/internal/ref.js.map +1 -1
- package/dist/cjs/internal/reloadable.js +1 -1
- package/dist/cjs/internal/reloadable.js.map +1 -1
- package/dist/cjs/internal/request.js +5 -2
- package/dist/cjs/internal/request.js.map +1 -1
- package/dist/cjs/internal/resource.js +2 -1
- package/dist/cjs/internal/resource.js.map +1 -1
- package/dist/cjs/internal/ringBuffer.js.map +1 -1
- package/dist/cjs/internal/runtime.js +1 -1
- package/dist/cjs/internal/runtime.js.map +1 -1
- package/dist/cjs/internal/runtimeFlags.js.map +1 -1
- package/dist/cjs/internal/schedule/interval.js.map +1 -1
- package/dist/cjs/internal/schedule/intervals.js.map +1 -1
- package/dist/cjs/internal/schedule.js +6 -1
- package/dist/cjs/internal/schedule.js.map +1 -1
- package/dist/cjs/internal/scopedCache.js +5 -2
- package/dist/cjs/internal/scopedCache.js.map +1 -1
- package/dist/cjs/internal/scopedRef.js +1 -0
- package/dist/cjs/internal/scopedRef.js.map +1 -1
- package/dist/cjs/internal/sink.js +5 -1
- package/dist/cjs/internal/sink.js.map +1 -1
- package/dist/cjs/internal/stm/core.js +3 -1
- package/dist/cjs/internal/stm/core.js.map +1 -1
- package/dist/cjs/internal/stm/stm/journal.js.map +1 -1
- package/dist/cjs/internal/stm/stm/stmState.js.map +1 -1
- package/dist/cjs/internal/stm/stm/tExit.js +2 -1
- package/dist/cjs/internal/stm/stm/tExit.js.map +1 -1
- package/dist/cjs/internal/stm/stm.js.map +1 -1
- package/dist/cjs/internal/stm/tArray.js +1 -1
- package/dist/cjs/internal/stm/tArray.js.map +1 -1
- package/dist/cjs/internal/stm/tMap.js +2 -1
- package/dist/cjs/internal/stm/tMap.js.map +1 -1
- package/dist/cjs/internal/stm/tPriorityQueue.js +1 -1
- package/dist/cjs/internal/stm/tPriorityQueue.js.map +1 -1
- package/dist/cjs/internal/stm/tPubSub.js.map +1 -1
- package/dist/cjs/internal/stm/tQueue.js +2 -0
- package/dist/cjs/internal/stm/tQueue.js.map +1 -1
- package/dist/cjs/internal/stm/tRandom.js.map +1 -1
- package/dist/cjs/internal/stm/tReentrantLock.js.map +1 -1
- package/dist/cjs/internal/stm/tRef.js +1 -1
- package/dist/cjs/internal/stm/tRef.js.map +1 -1
- package/dist/cjs/internal/stm/tSemaphore.js.map +1 -1
- package/dist/cjs/internal/stm/tSet.js +1 -1
- package/dist/cjs/internal/stm/tSet.js.map +1 -1
- package/dist/cjs/internal/stream/haltStrategy.js.map +1 -1
- package/dist/cjs/internal/stream/handoff.js +1 -1
- package/dist/cjs/internal/stream/handoff.js.map +1 -1
- package/dist/cjs/internal/stream.js +1 -1
- package/dist/cjs/internal/stream.js.map +1 -1
- package/dist/cjs/internal/string-utils.js.map +1 -1
- package/dist/cjs/internal/subscriptionRef.js +1 -1
- package/dist/cjs/internal/subscriptionRef.js.map +1 -1
- package/dist/cjs/internal/supervisor/patch.js.map +1 -1
- package/dist/cjs/internal/supervisor.js +1 -0
- package/dist/cjs/internal/supervisor.js.map +1 -1
- package/dist/cjs/internal/synchronizedRef.js.map +1 -1
- package/dist/cjs/internal/take.js +2 -1
- package/dist/cjs/internal/take.js.map +1 -1
- package/dist/cjs/internal/version.js +1 -1
- package/dist/dts/BigDecimal.d.ts +5 -5
- package/dist/dts/BigDecimal.d.ts.map +1 -1
- package/dist/dts/Cache.d.ts +4 -3
- package/dist/dts/Cache.d.ts.map +1 -1
- package/dist/dts/Cause.d.ts +2 -1
- package/dist/dts/Cause.d.ts.map +1 -1
- package/dist/dts/Channel.d.ts +8 -7
- package/dist/dts/Channel.d.ts.map +1 -1
- package/dist/dts/Chunk.d.ts +55 -45
- package/dist/dts/Chunk.d.ts.map +1 -1
- package/dist/dts/Config.d.ts +16 -15
- package/dist/dts/Config.d.ts.map +1 -1
- package/dist/dts/Context.d.ts +4 -3
- package/dist/dts/Context.d.ts.map +1 -1
- package/dist/dts/Data.d.ts +4 -4
- package/dist/dts/Data.d.ts.map +1 -1
- package/dist/dts/Deferred.d.ts +3 -2
- package/dist/dts/Deferred.d.ts.map +1 -1
- package/dist/dts/Differ.d.ts +15 -14
- package/dist/dts/Differ.d.ts.map +1 -1
- package/dist/dts/Duration.d.ts +11 -0
- package/dist/dts/Duration.d.ts.map +1 -1
- package/dist/dts/Effect.d.ts +30 -27
- package/dist/dts/Effect.d.ts.map +1 -1
- package/dist/dts/Either.d.ts +46 -10
- package/dist/dts/Either.d.ts.map +1 -1
- package/dist/dts/Equivalence.d.ts +1 -1
- package/dist/dts/Fiber.d.ts +5 -4
- package/dist/dts/Fiber.d.ts.map +1 -1
- package/dist/dts/FiberRef.d.ts +7 -1
- package/dist/dts/FiberRef.d.ts.map +1 -1
- package/dist/dts/GroupBy.d.ts +5 -4
- package/dist/dts/GroupBy.d.ts.map +1 -1
- package/dist/dts/HKT.d.ts +5 -4
- package/dist/dts/HKT.d.ts.map +1 -1
- package/dist/dts/Inspectable.d.ts +0 -4
- package/dist/dts/Inspectable.d.ts.map +1 -1
- package/dist/dts/KeyedPool.d.ts +4 -3
- package/dist/dts/KeyedPool.d.ts.map +1 -1
- package/dist/dts/Layer.d.ts +14 -39
- package/dist/dts/Layer.d.ts.map +1 -1
- package/dist/dts/List.d.ts +32 -33
- package/dist/dts/List.d.ts.map +1 -1
- package/dist/dts/Logger.d.ts +3 -2
- package/dist/dts/Logger.d.ts.map +1 -1
- package/dist/dts/Match.d.ts +20 -8
- package/dist/dts/Match.d.ts.map +1 -1
- package/dist/dts/MergeDecision.d.ts +6 -5
- package/dist/dts/MergeDecision.d.ts.map +1 -1
- package/dist/dts/Metric.d.ts +6 -5
- package/dist/dts/Metric.d.ts.map +1 -1
- package/dist/dts/MetricHook.d.ts +3 -2
- package/dist/dts/MetricHook.d.ts.map +1 -1
- package/dist/dts/MetricKey.d.ts +2 -1
- package/dist/dts/MetricKey.d.ts.map +1 -1
- package/dist/dts/MetricKeyType.d.ts +3 -2
- package/dist/dts/MetricKeyType.d.ts.map +1 -1
- package/dist/dts/MetricPair.d.ts +2 -1
- package/dist/dts/MetricPair.d.ts.map +1 -1
- package/dist/dts/MetricState.d.ts +2 -1
- package/dist/dts/MetricState.d.ts.map +1 -1
- package/dist/dts/MutableHashMap.d.ts.map +1 -1
- package/dist/dts/MutableHashSet.d.ts.map +1 -1
- package/dist/dts/MutableQueue.d.ts.map +1 -1
- package/dist/dts/MutableRef.d.ts.map +1 -1
- package/dist/dts/Option.d.ts +26 -13
- package/dist/dts/Option.d.ts.map +1 -1
- package/dist/dts/Order.d.ts +1 -1
- package/dist/dts/Pool.d.ts +18 -19
- package/dist/dts/Pool.d.ts.map +1 -1
- package/dist/dts/PrimaryKey.d.ts +5 -0
- package/dist/dts/PrimaryKey.d.ts.map +1 -1
- package/dist/dts/Queue.d.ts +5 -4
- package/dist/dts/Queue.d.ts.map +1 -1
- package/dist/dts/ReadonlyArray.d.ts +134 -170
- package/dist/dts/ReadonlyArray.d.ts.map +1 -1
- package/dist/dts/ReadonlyRecord.d.ts +38 -5
- package/dist/dts/ReadonlyRecord.d.ts.map +1 -1
- package/dist/dts/RedBlackTree.d.ts +3 -2
- package/dist/dts/RedBlackTree.d.ts.map +1 -1
- package/dist/dts/Ref.d.ts +2 -1
- package/dist/dts/Ref.d.ts.map +1 -1
- package/dist/dts/Reloadable.d.ts +2 -1
- package/dist/dts/Reloadable.d.ts.map +1 -1
- package/dist/dts/Request.d.ts +14 -3
- package/dist/dts/Request.d.ts.map +1 -1
- package/dist/dts/RequestBlock.d.ts +17 -36
- package/dist/dts/RequestBlock.d.ts.map +1 -1
- package/dist/dts/RequestResolver.d.ts +3 -2
- package/dist/dts/RequestResolver.d.ts.map +1 -1
- package/dist/dts/Resource.d.ts +3 -2
- package/dist/dts/Resource.d.ts.map +1 -1
- package/dist/dts/STM.d.ts +4 -3
- package/dist/dts/STM.d.ts.map +1 -1
- package/dist/dts/Schedule.d.ts +7 -6
- package/dist/dts/Schedule.d.ts.map +1 -1
- package/dist/dts/ScopedCache.d.ts +4 -3
- package/dist/dts/ScopedCache.d.ts.map +1 -1
- package/dist/dts/ScopedRef.d.ts +2 -1
- package/dist/dts/ScopedRef.d.ts.map +1 -1
- package/dist/dts/Sink.d.ts +6 -5
- package/dist/dts/Sink.d.ts.map +1 -1
- package/dist/dts/SortedMap.d.ts +3 -2
- package/dist/dts/SortedMap.d.ts.map +1 -1
- package/dist/dts/SortedSet.d.ts +2 -1
- package/dist/dts/SortedSet.d.ts.map +1 -1
- package/dist/dts/Stream.d.ts +5 -4
- package/dist/dts/Stream.d.ts.map +1 -1
- package/dist/dts/Streamable.d.ts.map +1 -1
- package/dist/dts/SubscriptionRef.d.ts +2 -1
- package/dist/dts/SubscriptionRef.d.ts.map +1 -1
- package/dist/dts/Supervisor.d.ts +2 -1
- package/dist/dts/Supervisor.d.ts.map +1 -1
- package/dist/dts/SynchronizedRef.d.ts +2 -1
- package/dist/dts/SynchronizedRef.d.ts.map +1 -1
- package/dist/dts/TArray.d.ts +2 -1
- package/dist/dts/TArray.d.ts.map +1 -1
- package/dist/dts/TDeferred.d.ts +3 -2
- package/dist/dts/TDeferred.d.ts.map +1 -1
- package/dist/dts/TMap.d.ts +3 -2
- package/dist/dts/TMap.d.ts.map +1 -1
- package/dist/dts/TPriorityQueue.d.ts +2 -1
- package/dist/dts/TPriorityQueue.d.ts.map +1 -1
- package/dist/dts/TPubSub.d.ts +2 -1
- package/dist/dts/TPubSub.d.ts.map +1 -1
- package/dist/dts/TQueue.d.ts +3 -2
- package/dist/dts/TQueue.d.ts.map +1 -1
- package/dist/dts/TRef.d.ts +2 -1
- package/dist/dts/TRef.d.ts.map +1 -1
- package/dist/dts/TSet.d.ts +2 -1
- package/dist/dts/TSet.d.ts.map +1 -1
- package/dist/dts/Take.d.ts +3 -2
- package/dist/dts/Take.d.ts.map +1 -1
- package/dist/dts/TestAnnotation.d.ts +2 -1
- package/dist/dts/TestAnnotation.d.ts.map +1 -1
- package/dist/dts/TestContext.d.ts.map +1 -1
- package/dist/dts/Types.d.ts +21 -0
- package/dist/dts/Types.d.ts.map +1 -1
- package/dist/dts/UpstreamPullRequest.d.ts +2 -1
- package/dist/dts/UpstreamPullRequest.d.ts.map +1 -1
- package/dist/dts/UpstreamPullStrategy.d.ts +2 -1
- package/dist/dts/UpstreamPullStrategy.d.ts.map +1 -1
- package/dist/dts/Utils.d.ts +6 -5
- package/dist/dts/Utils.d.ts.map +1 -1
- package/dist/dts/internal/config.d.ts +1 -2
- package/dist/dts/internal/config.d.ts.map +1 -1
- package/dist/dts/internal/core-stream.d.ts.map +1 -1
- package/dist/dts/internal/logger.d.ts.map +1 -1
- package/dist/dts/internal/metric/keyType.d.ts.map +1 -1
- package/dist/dts/internal/version.d.ts +1 -1
- package/dist/esm/BigDecimal.js +7 -7
- package/dist/esm/BigDecimal.js.map +1 -1
- package/dist/esm/BigInt.js.map +1 -1
- package/dist/esm/Boolean.js.map +1 -1
- package/dist/esm/Brand.js.map +1 -1
- package/dist/esm/Cache.js.map +1 -1
- package/dist/esm/Cause.js.map +1 -1
- package/dist/esm/Channel.js.map +1 -1
- package/dist/esm/Chunk.js +38 -29
- package/dist/esm/Chunk.js.map +1 -1
- package/dist/esm/Config.js +3 -3
- package/dist/esm/Config.js.map +1 -1
- package/dist/esm/Context.js.map +1 -1
- package/dist/esm/Data.js.map +1 -1
- package/dist/esm/Deferred.js.map +1 -1
- package/dist/esm/Differ.js.map +1 -1
- package/dist/esm/Duration.js +44 -2
- package/dist/esm/Duration.js.map +1 -1
- package/dist/esm/Effect.js +2 -7
- package/dist/esm/Effect.js.map +1 -1
- package/dist/esm/Either.js +35 -6
- package/dist/esm/Either.js.map +1 -1
- package/dist/esm/Equal.js.map +1 -1
- package/dist/esm/Equivalence.js +1 -1
- package/dist/esm/Equivalence.js.map +1 -1
- package/dist/esm/Fiber.js.map +1 -1
- package/dist/esm/FiberRef.js +5 -0
- package/dist/esm/FiberRef.js.map +1 -1
- package/dist/esm/Function.js.map +1 -1
- package/dist/esm/GlobalValue.js.map +1 -1
- package/dist/esm/GroupBy.js.map +1 -1
- package/dist/esm/HKT.js +0 -3
- package/dist/esm/HKT.js.map +1 -1
- package/dist/esm/Hash.js.map +1 -1
- package/dist/esm/Inspectable.js +2 -4
- package/dist/esm/Inspectable.js.map +1 -1
- package/dist/esm/KeyedPool.js.map +1 -1
- package/dist/esm/Layer.js +8 -28
- package/dist/esm/Layer.js.map +1 -1
- package/dist/esm/List.js +25 -22
- package/dist/esm/List.js.map +1 -1
- package/dist/esm/LogLevel.js.map +1 -1
- package/dist/esm/Logger.js.map +1 -1
- package/dist/esm/Match.js.map +1 -1
- package/dist/esm/MergeDecision.js.map +1 -1
- package/dist/esm/Metric.js.map +1 -1
- package/dist/esm/MetricHook.js.map +1 -1
- package/dist/esm/MetricKey.js.map +1 -1
- package/dist/esm/MetricKeyType.js.map +1 -1
- package/dist/esm/MetricPair.js.map +1 -1
- package/dist/esm/MetricState.js.map +1 -1
- package/dist/esm/MutableHashMap.js +2 -2
- package/dist/esm/MutableHashMap.js.map +1 -1
- package/dist/esm/MutableHashSet.js +2 -2
- package/dist/esm/MutableHashSet.js.map +1 -1
- package/dist/esm/MutableList.js +2 -2
- package/dist/esm/MutableList.js.map +1 -1
- package/dist/esm/MutableQueue.js +2 -2
- package/dist/esm/MutableQueue.js.map +1 -1
- package/dist/esm/MutableRef.js +2 -2
- package/dist/esm/MutableRef.js.map +1 -1
- package/dist/esm/NonEmptyIterable.js.map +1 -1
- package/dist/esm/Number.js.map +1 -1
- package/dist/esm/Option.js +19 -12
- package/dist/esm/Option.js.map +1 -1
- package/dist/esm/Order.js +1 -1
- package/dist/esm/Order.js.map +1 -1
- package/dist/esm/Ordering.js.map +1 -1
- package/dist/esm/Pipeable.js.map +1 -1
- package/dist/esm/Pool.js +15 -17
- package/dist/esm/Pool.js.map +1 -1
- package/dist/esm/Predicate.js.map +1 -1
- package/dist/esm/PrimaryKey.js +5 -0
- package/dist/esm/PrimaryKey.js.map +1 -1
- package/dist/esm/Queue.js.map +1 -1
- package/dist/esm/ReadonlyArray.js +193 -177
- package/dist/esm/ReadonlyArray.js.map +1 -1
- package/dist/esm/ReadonlyRecord.js +56 -5
- package/dist/esm/ReadonlyRecord.js.map +1 -1
- package/dist/esm/RedBlackTree.js.map +1 -1
- package/dist/esm/Ref.js.map +1 -1
- package/dist/esm/Reloadable.js.map +1 -1
- package/dist/esm/Request.js +7 -0
- package/dist/esm/Request.js.map +1 -1
- package/dist/esm/RequestBlock.js +3 -22
- package/dist/esm/RequestBlock.js.map +1 -1
- package/dist/esm/RequestResolver.js.map +1 -1
- package/dist/esm/Resource.js.map +1 -1
- package/dist/esm/STM.js.map +1 -1
- package/dist/esm/Schedule.js.map +1 -1
- package/dist/esm/Scheduler.js.map +1 -1
- package/dist/esm/ScopedCache.js.map +1 -1
- package/dist/esm/ScopedRef.js.map +1 -1
- package/dist/esm/Sink.js.map +1 -1
- package/dist/esm/SortedMap.js +2 -2
- package/dist/esm/SortedMap.js.map +1 -1
- package/dist/esm/SortedSet.js +2 -2
- package/dist/esm/SortedSet.js.map +1 -1
- package/dist/esm/Stream.js.map +1 -1
- package/dist/esm/Streamable.js +3 -0
- package/dist/esm/Streamable.js.map +1 -1
- package/dist/esm/String.js.map +1 -1
- package/dist/esm/Struct.js.map +1 -1
- package/dist/esm/SubscriptionRef.js.map +1 -1
- package/dist/esm/Supervisor.js.map +1 -1
- package/dist/esm/SynchronizedRef.js.map +1 -1
- package/dist/esm/TArray.js.map +1 -1
- package/dist/esm/TDeferred.js.map +1 -1
- package/dist/esm/TMap.js.map +1 -1
- package/dist/esm/TPriorityQueue.js.map +1 -1
- package/dist/esm/TPubSub.js.map +1 -1
- package/dist/esm/TQueue.js.map +1 -1
- package/dist/esm/TRef.js.map +1 -1
- package/dist/esm/TSet.js.map +1 -1
- package/dist/esm/Take.js.map +1 -1
- package/dist/esm/TestAnnotation.js.map +1 -1
- package/dist/esm/TestAnnotationMap.js.map +1 -1
- package/dist/esm/TestAnnotations.js.map +1 -1
- package/dist/esm/TestClock.js.map +1 -1
- package/dist/esm/TestContext.js +2 -2
- package/dist/esm/TestContext.js.map +1 -1
- package/dist/esm/UpstreamPullRequest.js.map +1 -1
- package/dist/esm/UpstreamPullStrategy.js.map +1 -1
- package/dist/esm/Utils.js.map +1 -1
- package/dist/esm/internal/Iterable.js.map +1 -1
- package/dist/esm/internal/blockedRequests.js +3 -2
- package/dist/esm/internal/blockedRequests.js.map +1 -1
- package/dist/esm/internal/cache.js +3 -0
- package/dist/esm/internal/cache.js.map +1 -1
- package/dist/esm/internal/cause.js +1 -1
- package/dist/esm/internal/cause.js.map +1 -1
- package/dist/esm/internal/channel/channelExecutor.js.map +1 -1
- package/dist/esm/internal/channel/channelState.js +2 -1
- package/dist/esm/internal/channel/channelState.js.map +1 -1
- package/dist/esm/internal/channel/childExecutorDecision.js.map +1 -1
- package/dist/esm/internal/channel/continuation.js +9 -1
- package/dist/esm/internal/channel/continuation.js.map +1 -1
- package/dist/esm/internal/channel/mergeDecision.js.map +1 -1
- package/dist/esm/internal/channel/mergeState.js.map +1 -1
- package/dist/esm/internal/channel/mergeStrategy.js.map +1 -1
- package/dist/esm/internal/channel/singleProducerAsyncInput.js.map +1 -1
- package/dist/esm/internal/channel/subexecutor.js.map +1 -1
- package/dist/esm/internal/channel/upstreamPullRequest.js +1 -1
- package/dist/esm/internal/channel/upstreamPullRequest.js.map +1 -1
- package/dist/esm/internal/channel/upstreamPullStrategy.js +1 -1
- package/dist/esm/internal/channel/upstreamPullStrategy.js.map +1 -1
- package/dist/esm/internal/channel.js.map +1 -1
- package/dist/esm/internal/clock.js.map +1 -1
- package/dist/esm/internal/concurrency.js.map +1 -1
- package/dist/esm/internal/config.js +15 -22
- package/dist/esm/internal/config.js.map +1 -1
- package/dist/esm/internal/configError.js +2 -2
- package/dist/esm/internal/configError.js.map +1 -1
- package/dist/esm/internal/configProvider/pathPatch.js.map +1 -1
- package/dist/esm/internal/configProvider.js +5 -3
- package/dist/esm/internal/configProvider.js.map +1 -1
- package/dist/esm/internal/configSecret.js.map +1 -1
- package/dist/esm/internal/context.js +6 -6
- package/dist/esm/internal/context.js.map +1 -1
- package/dist/esm/internal/core-effect.js +13 -9
- package/dist/esm/internal/core-effect.js.map +1 -1
- package/dist/esm/internal/core-stream.js +7 -1
- package/dist/esm/internal/core-stream.js.map +1 -1
- package/dist/esm/internal/core.js +46 -75
- package/dist/esm/internal/core.js.map +1 -1
- package/dist/esm/internal/data.js.map +1 -1
- package/dist/esm/internal/dataSource.js.map +1 -1
- package/dist/esm/internal/deferred.js +2 -0
- package/dist/esm/internal/deferred.js.map +1 -1
- package/dist/esm/internal/differ/chunkPatch.js.map +1 -1
- package/dist/esm/internal/differ/contextPatch.js.map +1 -1
- package/dist/esm/internal/differ/hashMapPatch.js.map +1 -1
- package/dist/esm/internal/differ/hashSetPatch.js.map +1 -1
- package/dist/esm/internal/differ/orPatch.js.map +1 -1
- package/dist/esm/internal/differ.js.map +1 -1
- package/dist/esm/internal/effect/circular.js +1 -0
- package/dist/esm/internal/effect/circular.js.map +1 -1
- package/dist/esm/internal/effectable.js +17 -4
- package/dist/esm/internal/effectable.js.map +1 -1
- package/dist/esm/internal/either.js +2 -2
- package/dist/esm/internal/either.js.map +1 -1
- package/dist/esm/internal/encoding/base64.js.map +1 -1
- package/dist/esm/internal/encoding/base64Url.js.map +1 -1
- package/dist/esm/internal/encoding/common.js.map +1 -1
- package/dist/esm/internal/encoding/hex.js.map +1 -1
- package/dist/esm/internal/executionStrategy.js.map +1 -1
- package/dist/esm/internal/fiber.js +2 -0
- package/dist/esm/internal/fiber.js.map +1 -1
- package/dist/esm/internal/fiberId.js +4 -4
- package/dist/esm/internal/fiberId.js.map +1 -1
- package/dist/esm/internal/fiberRefs/patch.js.map +1 -1
- package/dist/esm/internal/fiberRefs.js.map +1 -1
- package/dist/esm/internal/fiberRuntime.js +169 -205
- package/dist/esm/internal/fiberRuntime.js.map +1 -1
- package/dist/esm/internal/groupBy.js +4 -1
- package/dist/esm/internal/groupBy.js.map +1 -1
- package/dist/esm/internal/hashMap/array.js.map +1 -1
- package/dist/esm/internal/hashMap/node.js.map +1 -1
- package/dist/esm/internal/hashMap.js +2 -2
- package/dist/esm/internal/hashMap.js.map +1 -1
- package/dist/esm/internal/hashSet.js +2 -2
- package/dist/esm/internal/hashSet.js.map +1 -1
- package/dist/esm/internal/keyedPool.js +3 -0
- package/dist/esm/internal/keyedPool.js.map +1 -1
- package/dist/esm/internal/layer.js +22 -52
- package/dist/esm/internal/layer.js.map +1 -1
- package/dist/esm/internal/logger.js +2 -1
- package/dist/esm/internal/logger.js.map +1 -1
- package/dist/esm/internal/matcher.js.map +1 -1
- package/dist/esm/internal/metric/hook.js +2 -1
- package/dist/esm/internal/metric/hook.js.map +1 -1
- package/dist/esm/internal/metric/key.js +1 -1
- package/dist/esm/internal/metric/key.js.map +1 -1
- package/dist/esm/internal/metric/keyType.js +2 -1
- package/dist/esm/internal/metric/keyType.js.map +1 -1
- package/dist/esm/internal/metric/pair.js +1 -1
- package/dist/esm/internal/metric/pair.js.map +1 -1
- package/dist/esm/internal/metric/polling.js.map +1 -1
- package/dist/esm/internal/metric/registry.js.map +1 -1
- package/dist/esm/internal/metric/state.js +1 -1
- package/dist/esm/internal/metric/state.js.map +1 -1
- package/dist/esm/internal/metric.js +7 -5
- package/dist/esm/internal/metric.js.map +1 -1
- package/dist/esm/internal/opCodes/layer.js +3 -3
- package/dist/esm/internal/opCodes/layer.js.map +1 -1
- package/dist/esm/internal/option.js +2 -2
- package/dist/esm/internal/option.js.map +1 -1
- package/dist/esm/internal/pool.js +2 -0
- package/dist/esm/internal/pool.js.map +1 -1
- package/dist/esm/internal/pubsub.js +1 -1
- package/dist/esm/internal/pubsub.js.map +1 -1
- package/dist/esm/internal/query.js +1 -1
- package/dist/esm/internal/query.js.map +1 -1
- package/dist/esm/internal/queue.js +6 -4
- package/dist/esm/internal/queue.js.map +1 -1
- package/dist/esm/internal/random.js.map +1 -1
- package/dist/esm/internal/redBlackTree/iterator.js.map +1 -1
- package/dist/esm/internal/redBlackTree.js +4 -2
- package/dist/esm/internal/redBlackTree.js.map +1 -1
- package/dist/esm/internal/ref.js +1 -0
- package/dist/esm/internal/ref.js.map +1 -1
- package/dist/esm/internal/reloadable.js +1 -1
- package/dist/esm/internal/reloadable.js.map +1 -1
- package/dist/esm/internal/request.js +4 -1
- package/dist/esm/internal/request.js.map +1 -1
- package/dist/esm/internal/resource.js +2 -1
- package/dist/esm/internal/resource.js.map +1 -1
- package/dist/esm/internal/ringBuffer.js.map +1 -1
- package/dist/esm/internal/runtime.js +2 -2
- package/dist/esm/internal/runtime.js.map +1 -1
- package/dist/esm/internal/runtimeFlags.js.map +1 -1
- package/dist/esm/internal/schedule/interval.js.map +1 -1
- package/dist/esm/internal/schedule/intervals.js.map +1 -1
- package/dist/esm/internal/schedule.js +6 -1
- package/dist/esm/internal/schedule.js.map +1 -1
- package/dist/esm/internal/scopedCache.js +5 -2
- package/dist/esm/internal/scopedCache.js.map +1 -1
- package/dist/esm/internal/scopedRef.js +1 -0
- package/dist/esm/internal/scopedRef.js.map +1 -1
- package/dist/esm/internal/sink.js +5 -1
- package/dist/esm/internal/sink.js.map +1 -1
- package/dist/esm/internal/stm/core.js +3 -1
- package/dist/esm/internal/stm/core.js.map +1 -1
- package/dist/esm/internal/stm/stm/journal.js.map +1 -1
- package/dist/esm/internal/stm/stm/stmState.js.map +1 -1
- package/dist/esm/internal/stm/stm/tExit.js +2 -1
- package/dist/esm/internal/stm/stm/tExit.js.map +1 -1
- package/dist/esm/internal/stm/stm.js.map +1 -1
- package/dist/esm/internal/stm/tArray.js +1 -1
- package/dist/esm/internal/stm/tArray.js.map +1 -1
- package/dist/esm/internal/stm/tMap.js +2 -1
- package/dist/esm/internal/stm/tMap.js.map +1 -1
- package/dist/esm/internal/stm/tPriorityQueue.js +1 -1
- package/dist/esm/internal/stm/tPriorityQueue.js.map +1 -1
- package/dist/esm/internal/stm/tPubSub.js.map +1 -1
- package/dist/esm/internal/stm/tQueue.js +2 -0
- package/dist/esm/internal/stm/tQueue.js.map +1 -1
- package/dist/esm/internal/stm/tRandom.js.map +1 -1
- package/dist/esm/internal/stm/tReentrantLock.js.map +1 -1
- package/dist/esm/internal/stm/tRef.js +1 -1
- package/dist/esm/internal/stm/tRef.js.map +1 -1
- package/dist/esm/internal/stm/tSemaphore.js.map +1 -1
- package/dist/esm/internal/stm/tSet.js +1 -1
- package/dist/esm/internal/stm/tSet.js.map +1 -1
- package/dist/esm/internal/stream/haltStrategy.js.map +1 -1
- package/dist/esm/internal/stream/handoff.js +1 -1
- package/dist/esm/internal/stream/handoff.js.map +1 -1
- package/dist/esm/internal/stream.js +1 -1
- package/dist/esm/internal/stream.js.map +1 -1
- package/dist/esm/internal/string-utils.js.map +1 -1
- package/dist/esm/internal/subscriptionRef.js +1 -1
- package/dist/esm/internal/subscriptionRef.js.map +1 -1
- package/dist/esm/internal/supervisor/patch.js.map +1 -1
- package/dist/esm/internal/supervisor.js +1 -0
- package/dist/esm/internal/supervisor.js.map +1 -1
- package/dist/esm/internal/synchronizedRef.js.map +1 -1
- package/dist/esm/internal/take.js +2 -1
- package/dist/esm/internal/take.js.map +1 -1
- package/dist/esm/internal/version.js +1 -1
- package/package.json +1 -1
- package/src/BigDecimal.ts +7 -7
- package/src/Cache.ts +4 -3
- package/src/Cause.ts +2 -1
- package/src/Channel.ts +8 -7
- package/src/Chunk.ts +66 -57
- package/src/Config.ts +16 -16
- package/src/Context.ts +4 -3
- package/src/Data.ts +4 -4
- package/src/Deferred.ts +3 -2
- package/src/Differ.ts +15 -14
- package/src/Duration.ts +54 -2
- package/src/Effect.ts +18 -29
- package/src/Either.ts +65 -10
- package/src/Equivalence.ts +1 -1
- package/src/Fiber.ts +5 -4
- package/src/FiberRef.ts +8 -1
- package/src/GroupBy.ts +5 -4
- package/src/HKT.ts +5 -4
- package/src/Inspectable.ts +2 -4
- package/src/KeyedPool.ts +4 -3
- package/src/Layer.ts +19 -56
- package/src/List.ts +44 -43
- package/src/Logger.ts +3 -2
- package/src/Match.ts +50 -38
- package/src/MergeDecision.ts +6 -5
- package/src/Metric.ts +8 -5
- package/src/MetricHook.ts +3 -2
- package/src/MetricKey.ts +2 -1
- package/src/MetricKeyType.ts +3 -2
- package/src/MetricPair.ts +2 -1
- package/src/MetricState.ts +2 -1
- package/src/MutableHashMap.ts +2 -2
- package/src/MutableHashSet.ts +2 -2
- package/src/MutableList.ts +2 -2
- package/src/MutableQueue.ts +2 -2
- package/src/MutableRef.ts +2 -2
- package/src/Option.ts +32 -14
- package/src/Order.ts +1 -1
- package/src/Pool.ts +18 -19
- package/src/PrimaryKey.ts +6 -0
- package/src/Queue.ts +5 -4
- package/src/ReadonlyArray.ts +300 -324
- package/src/ReadonlyRecord.ts +60 -5
- package/src/RedBlackTree.ts +3 -2
- package/src/Ref.ts +2 -1
- package/src/Reloadable.ts +2 -1
- package/src/Request.ts +15 -3
- package/src/RequestBlock.ts +22 -61
- package/src/RequestResolver.ts +3 -2
- package/src/Resource.ts +3 -2
- package/src/STM.ts +4 -3
- package/src/Schedule.ts +7 -6
- package/src/ScopedCache.ts +4 -3
- package/src/ScopedRef.ts +2 -1
- package/src/Sink.ts +6 -5
- package/src/SortedMap.ts +5 -4
- package/src/SortedSet.ts +4 -3
- package/src/Stream.ts +5 -4
- package/src/Streamable.ts +3 -0
- package/src/SubscriptionRef.ts +2 -1
- package/src/Supervisor.ts +2 -1
- package/src/SynchronizedRef.ts +2 -1
- package/src/TArray.ts +2 -1
- package/src/TDeferred.ts +3 -2
- package/src/TMap.ts +3 -2
- package/src/TPriorityQueue.ts +2 -1
- package/src/TPubSub.ts +2 -1
- package/src/TQueue.ts +3 -2
- package/src/TRef.ts +2 -1
- package/src/TSet.ts +2 -1
- package/src/Take.ts +3 -2
- package/src/TestAnnotation.ts +2 -2
- package/src/TestContext.ts +5 -4
- package/src/Types.ts +24 -0
- package/src/UpstreamPullRequest.ts +2 -1
- package/src/UpstreamPullStrategy.ts +2 -1
- package/src/Utils.ts +6 -5
- package/src/internal/blockedRequests.ts +78 -81
- package/src/internal/cache.ts +3 -0
- package/src/internal/cause.ts +1 -1
- package/src/internal/channel/channelState.ts +5 -3
- package/src/internal/channel/continuation.ts +19 -10
- package/src/internal/channel/upstreamPullRequest.ts +1 -1
- package/src/internal/channel/upstreamPullStrategy.ts +1 -1
- package/src/internal/config.ts +15 -23
- package/src/internal/configError.ts +2 -2
- package/src/internal/configProvider.ts +6 -4
- package/src/internal/context.ts +6 -6
- package/src/internal/core-effect.ts +27 -30
- package/src/internal/core-stream.ts +7 -1
- package/src/internal/core.ts +78 -118
- package/src/internal/deferred.ts +2 -0
- package/src/internal/effect/circular.ts +1 -0
- package/src/internal/effectable.ts +18 -4
- package/src/internal/either.ts +2 -2
- package/src/internal/fiber.ts +2 -0
- package/src/internal/fiberId.ts +4 -4
- package/src/internal/fiberRuntime.ts +228 -269
- package/src/internal/groupBy.ts +4 -1
- package/src/internal/hashMap.ts +2 -2
- package/src/internal/hashSet.ts +2 -2
- package/src/internal/keyedPool.ts +3 -0
- package/src/internal/layer.ts +29 -77
- package/src/internal/logger.ts +2 -1
- package/src/internal/metric/hook.ts +2 -1
- package/src/internal/metric/key.ts +1 -1
- package/src/internal/metric/keyType.ts +2 -1
- package/src/internal/metric/pair.ts +1 -1
- package/src/internal/metric/state.ts +1 -1
- package/src/internal/metric.ts +8 -5
- package/src/internal/opCodes/layer.ts +6 -6
- package/src/internal/option.ts +2 -2
- package/src/internal/pool.ts +2 -0
- package/src/internal/pubsub.ts +2 -1
- package/src/internal/query.ts +1 -1
- package/src/internal/queue.ts +18 -10
- package/src/internal/redBlackTree.ts +4 -2
- package/src/internal/ref.ts +1 -0
- package/src/internal/reloadable.ts +1 -1
- package/src/internal/request.ts +14 -1
- package/src/internal/resource.ts +2 -1
- package/src/internal/runtime.ts +2 -2
- package/src/internal/schedule.ts +6 -1
- package/src/internal/scopedCache.ts +7 -2
- package/src/internal/scopedRef.ts +1 -0
- package/src/internal/sink.ts +5 -1
- package/src/internal/stm/core.ts +3 -1
- package/src/internal/stm/stm/tExit.ts +5 -3
- package/src/internal/stm/tArray.ts +1 -1
- package/src/internal/stm/tMap.ts +2 -1
- package/src/internal/stm/tPriorityQueue.ts +1 -1
- package/src/internal/stm/tQueue.ts +2 -0
- package/src/internal/stm/tRef.ts +1 -1
- package/src/internal/stm/tSet.ts +1 -1
- package/src/internal/stream/handoff.ts +1 -1
- package/src/internal/stream.ts +2 -2
- package/src/internal/subscriptionRef.ts +1 -1
- package/src/internal/supervisor.ts +1 -0
- package/src/internal/take.ts +2 -1
- package/src/internal/version.ts +1 -1
package/src/ReadonlyArray.ts
CHANGED
|
@@ -17,6 +17,7 @@ import * as O from "./Option.js"
|
|
|
17
17
|
import * as Order from "./Order.js"
|
|
18
18
|
import type { Predicate, Refinement } from "./Predicate.js"
|
|
19
19
|
import * as RR from "./ReadonlyRecord.js"
|
|
20
|
+
import * as Tuple from "./Tuple.js"
|
|
20
21
|
|
|
21
22
|
/**
|
|
22
23
|
* @category type lambdas
|
|
@@ -224,29 +225,30 @@ export const prepend: {
|
|
|
224
225
|
} = dual(2, <A, B>(self: Iterable<A>, head: B): NonEmptyArray<A | B> => [head, ...self])
|
|
225
226
|
|
|
226
227
|
/**
|
|
228
|
+
* Prepends the specified prefix array (or iterable) to the beginning of the specified array (or iterable).
|
|
229
|
+
* If either array is non-empty, the result is also a non-empty array.
|
|
230
|
+
*
|
|
231
|
+
* @example
|
|
232
|
+
* import * as ReadonlyArray from "effect/ReadonlyArray"
|
|
233
|
+
*
|
|
234
|
+
* assert.deepStrictEqual(
|
|
235
|
+
* ReadonlyArray.prependAll([1, 2], ["a", "b"]),
|
|
236
|
+
* ["a", "b", 1, 2]
|
|
237
|
+
* )
|
|
238
|
+
*
|
|
227
239
|
* @category concatenating
|
|
228
240
|
* @since 2.0.0
|
|
229
241
|
*/
|
|
230
242
|
export const prependAll: {
|
|
231
|
-
<
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
2,
|
|
235
|
-
<A>(self: Iterable<A>, that: Iterable<A>): Array<A> => fromIterable(that).concat(fromIterable(self))
|
|
236
|
-
)
|
|
237
|
-
|
|
238
|
-
/**
|
|
239
|
-
* @category concatenating
|
|
240
|
-
* @since 2.0.0
|
|
241
|
-
*/
|
|
242
|
-
export const prependAllNonEmpty: {
|
|
243
|
-
<B>(that: NonEmptyReadonlyArray<B>): <A>(self: Iterable<A>) => NonEmptyArray<A | B>
|
|
244
|
-
<B>(that: Iterable<B>): <A>(self: NonEmptyReadonlyArray<A>) => NonEmptyArray<A | B>
|
|
243
|
+
<S extends ReadonlyArray<any> | Iterable<any>, T extends ReadonlyArray<any> | Iterable<any>>(
|
|
244
|
+
that: T
|
|
245
|
+
): (self: S) => ReadonlyArray.With2<S, T, ReadonlyArray.Infer<S> | ReadonlyArray.Infer<T>>
|
|
245
246
|
<A, B>(self: Iterable<A>, that: NonEmptyReadonlyArray<B>): NonEmptyArray<A | B>
|
|
246
247
|
<A, B>(self: NonEmptyReadonlyArray<A>, that: Iterable<B>): NonEmptyArray<A | B>
|
|
248
|
+
<A, B>(self: Iterable<A>, that: Iterable<B>): Array<A | B>
|
|
247
249
|
} = dual(
|
|
248
250
|
2,
|
|
249
|
-
<A
|
|
251
|
+
<A>(self: Iterable<A>, that: Iterable<A>): Array<A> => fromIterable(that).concat(fromIterable(self))
|
|
250
252
|
)
|
|
251
253
|
|
|
252
254
|
/**
|
|
@@ -261,29 +263,22 @@ export const append: {
|
|
|
261
263
|
} = dual(2, <A, B>(self: Iterable<A>, last: B): Array<A | B> => [...self, last])
|
|
262
264
|
|
|
263
265
|
/**
|
|
266
|
+
* Concatenates two arrays (or iterables), combining their elements.
|
|
267
|
+
* If either array is non-empty, the result is also a non-empty array.
|
|
268
|
+
*
|
|
264
269
|
* @category concatenating
|
|
265
270
|
* @since 2.0.0
|
|
266
271
|
*/
|
|
267
272
|
export const appendAll: {
|
|
268
|
-
<
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
2,
|
|
272
|
-
<A>(self: Iterable<A>, that: Iterable<A>): Array<A> => fromIterable(self).concat(fromIterable(that))
|
|
273
|
-
)
|
|
274
|
-
|
|
275
|
-
/**
|
|
276
|
-
* @category concatenating
|
|
277
|
-
* @since 2.0.0
|
|
278
|
-
*/
|
|
279
|
-
export const appendAllNonEmpty: {
|
|
280
|
-
<B>(that: NonEmptyReadonlyArray<B>): <A>(self: Iterable<A>) => NonEmptyArray<A | B>
|
|
281
|
-
<B>(that: Iterable<B>): <A>(self: NonEmptyReadonlyArray<A>) => NonEmptyArray<A | B>
|
|
273
|
+
<S extends ReadonlyArray<any> | Iterable<any>, T extends ReadonlyArray<any> | Iterable<any>>(
|
|
274
|
+
that: T
|
|
275
|
+
): (self: S) => ReadonlyArray.With2<S, T, ReadonlyArray.Infer<S> | ReadonlyArray.Infer<T>>
|
|
282
276
|
<A, B>(self: Iterable<A>, that: NonEmptyReadonlyArray<B>): NonEmptyArray<A | B>
|
|
283
277
|
<A, B>(self: NonEmptyReadonlyArray<A>, that: Iterable<B>): NonEmptyArray<A | B>
|
|
278
|
+
<A, B>(self: Iterable<A>, that: Iterable<B>): Array<A | B>
|
|
284
279
|
} = dual(
|
|
285
280
|
2,
|
|
286
|
-
<A
|
|
281
|
+
<A>(self: Iterable<A>, that: Iterable<A>): Array<A> => fromIterable(self).concat(fromIterable(that))
|
|
287
282
|
)
|
|
288
283
|
|
|
289
284
|
/**
|
|
@@ -837,24 +832,23 @@ export const remove: {
|
|
|
837
832
|
* @category elements
|
|
838
833
|
* @since 2.0.0
|
|
839
834
|
*/
|
|
840
|
-
export const reverse
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
* @since 2.0.0
|
|
845
|
-
*/
|
|
846
|
-
export const reverseNonEmpty = <A>(
|
|
847
|
-
self: NonEmptyReadonlyArray<A>
|
|
848
|
-
): NonEmptyArray<A> => [lastNonEmpty(self), ...self.slice(0, -1).reverse()]
|
|
835
|
+
export const reverse: {
|
|
836
|
+
<A>(self: NonEmptyReadonlyArray<A>): NonEmptyArray<A>
|
|
837
|
+
<A>(self: Iterable<A>): Array<A>
|
|
838
|
+
} = (<A>(self: Iterable<A>): Array<A> => Array.from(self).reverse()) as any
|
|
849
839
|
|
|
850
840
|
/**
|
|
851
|
-
*
|
|
841
|
+
* Create a new array with elements sorted in increasing order based on the specified comparator.
|
|
842
|
+
* If the input is a `NonEmptyReadonlyArray`, the output will also be a `NonEmptyReadonlyArray`.
|
|
852
843
|
*
|
|
853
844
|
* @category sorting
|
|
854
845
|
* @since 2.0.0
|
|
855
846
|
*/
|
|
856
847
|
export const sort: {
|
|
857
|
-
<B>(
|
|
848
|
+
<B>(
|
|
849
|
+
O: Order.Order<B>
|
|
850
|
+
): <T extends ReadonlyArray<any> | Iterable<any>>(self: T) => ReadonlyArray.With<T, ReadonlyArray.Infer<T>>
|
|
851
|
+
<A extends B, B>(self: NonEmptyReadonlyArray<A>, O: Order.Order<B>): NonEmptyArray<A>
|
|
858
852
|
<A extends B, B>(self: Iterable<A>, O: Order.Order<B>): Array<A>
|
|
859
853
|
} = dual(2, <A extends B, B>(self: Iterable<A>, O: Order.Order<B>): Array<A> => {
|
|
860
854
|
const out = Array.from(self)
|
|
@@ -875,20 +869,6 @@ export const sortWith: {
|
|
|
875
869
|
sort(self, Order.mapInput(order, f))
|
|
876
870
|
)
|
|
877
871
|
|
|
878
|
-
/**
|
|
879
|
-
* Sort the elements of a `NonEmptyReadonlyArray` in increasing order, creating a new `NonEmptyArray`.
|
|
880
|
-
*
|
|
881
|
-
* @category sorting
|
|
882
|
-
* @since 2.0.0
|
|
883
|
-
*/
|
|
884
|
-
export const sortNonEmpty: {
|
|
885
|
-
<B>(O: Order.Order<B>): <A extends B>(self: NonEmptyReadonlyArray<A>) => NonEmptyArray<A>
|
|
886
|
-
<A extends B, B>(self: NonEmptyReadonlyArray<A>, O: Order.Order<B>): NonEmptyArray<A>
|
|
887
|
-
} = dual(
|
|
888
|
-
2,
|
|
889
|
-
<A extends B, B>(self: NonEmptyReadonlyArray<A>, O: Order.Order<B>): NonEmptyArray<A> => sort(O)(self) as any
|
|
890
|
-
)
|
|
891
|
-
|
|
892
872
|
/**
|
|
893
873
|
* Sort the elements of an `Iterable` in increasing order, where elements are compared
|
|
894
874
|
* using first `orders[0]`, then `orders[1]`, etc...
|
|
@@ -896,85 +876,62 @@ export const sortNonEmpty: {
|
|
|
896
876
|
* @category sorting
|
|
897
877
|
* @since 2.0.0
|
|
898
878
|
*/
|
|
899
|
-
export const sortBy = <B>(...orders: ReadonlyArray<Order.Order<B>>)
|
|
900
|
-
|
|
901
|
-
|
|
879
|
+
export const sortBy = <B>(...orders: ReadonlyArray<Order.Order<B>>): {
|
|
880
|
+
<A extends B>(as: NonEmptyReadonlyArray<A>): NonEmptyArray<A>
|
|
881
|
+
<A extends B>(self: Iterable<A>): Array<A>
|
|
882
|
+
} => {
|
|
883
|
+
const sortByAll = sort(Order.combineAll(orders))
|
|
884
|
+
return (<A extends B>(self: Iterable<A>): Array<A> => {
|
|
885
|
+
const input = fromIterable(self)
|
|
886
|
+
if (isNonEmptyReadonlyArray(input)) {
|
|
887
|
+
return sortByAll(input)
|
|
888
|
+
}
|
|
889
|
+
return []
|
|
890
|
+
}) as any
|
|
902
891
|
}
|
|
903
892
|
|
|
904
|
-
/**
|
|
905
|
-
* @category sorting
|
|
906
|
-
* @since 2.0.0
|
|
907
|
-
*/
|
|
908
|
-
export const sortByNonEmpty = <B>(
|
|
909
|
-
...orders: ReadonlyArray<Order.Order<B>>
|
|
910
|
-
): <A extends B>(as: NonEmptyReadonlyArray<A>) => NonEmptyArray<A> => sortNonEmpty(Order.combineAll(orders))
|
|
911
|
-
|
|
912
893
|
/**
|
|
913
894
|
* Takes two `Iterable`s and returns an `Array` of corresponding pairs.
|
|
914
895
|
* If one input `Iterable` is short, excess elements of the
|
|
915
896
|
* longer `Iterable` are discarded.
|
|
916
897
|
*
|
|
898
|
+
* @category zipping
|
|
917
899
|
* @since 2.0.0
|
|
918
900
|
*/
|
|
919
901
|
export const zip: {
|
|
902
|
+
<B>(that: NonEmptyReadonlyArray<B>): <A>(self: NonEmptyReadonlyArray<A>) => NonEmptyArray<[A, B]>
|
|
920
903
|
<B>(that: Iterable<B>): <A>(self: Iterable<A>) => Array<[A, B]>
|
|
904
|
+
<A, B>(self: NonEmptyReadonlyArray<A>, that: NonEmptyReadonlyArray<B>): NonEmptyArray<[A, B]>
|
|
921
905
|
<A, B>(self: Iterable<A>, that: Iterable<B>): Array<[A, B]>
|
|
922
906
|
} = dual(
|
|
923
907
|
2,
|
|
924
|
-
<A, B>(self: Iterable<A>, that: Iterable<B>): Array<[A, B]> => zipWith(self, that,
|
|
908
|
+
<A, B>(self: Iterable<A>, that: Iterable<B>): Array<[A, B]> => zipWith(self, that, Tuple.make)
|
|
925
909
|
)
|
|
926
910
|
|
|
927
911
|
/**
|
|
928
912
|
* Apply a function to pairs of elements at the same index in two `Iterable`s, collecting the results in a new `Array`. If one
|
|
929
913
|
* input `Iterable` is short, excess elements of the longer `Iterable` are discarded.
|
|
930
914
|
*
|
|
915
|
+
* @category zipping
|
|
931
916
|
* @since 2.0.0
|
|
932
917
|
*/
|
|
933
918
|
export const zipWith: {
|
|
919
|
+
<B, A, C>(that: NonEmptyReadonlyArray<B>, f: (a: A, b: B) => C): (self: NonEmptyReadonlyArray<A>) => NonEmptyArray<C>
|
|
934
920
|
<B, A, C>(that: Iterable<B>, f: (a: A, b: B) => C): (self: Iterable<A>) => Array<C>
|
|
921
|
+
<A, B, C>(self: NonEmptyReadonlyArray<A>, that: NonEmptyReadonlyArray<B>, f: (a: A, b: B) => C): NonEmptyArray<C>
|
|
935
922
|
<B, A, C>(self: Iterable<A>, that: Iterable<B>, f: (a: A, b: B) => C): Array<C>
|
|
936
923
|
} = dual(3, <B, A, C>(self: Iterable<A>, that: Iterable<B>, f: (a: A, b: B) => C): Array<C> => {
|
|
937
924
|
const as = fromIterable(self)
|
|
938
925
|
const bs = fromIterable(that)
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
<B>(that: NonEmptyReadonlyArray<B>): <A>(self: NonEmptyReadonlyArray<A>) => NonEmptyArray<[A, B]>
|
|
947
|
-
<A, B>(self: NonEmptyReadonlyArray<A>, that: NonEmptyReadonlyArray<B>): NonEmptyArray<[A, B]>
|
|
948
|
-
} = dual(
|
|
949
|
-
2,
|
|
950
|
-
<A, B>(self: NonEmptyReadonlyArray<A>, that: NonEmptyReadonlyArray<B>): NonEmptyArray<[A, B]> =>
|
|
951
|
-
zipNonEmptyWith(self, that, (a, b) => [a, b])
|
|
952
|
-
)
|
|
953
|
-
|
|
954
|
-
/**
|
|
955
|
-
* @since 2.0.0
|
|
956
|
-
*/
|
|
957
|
-
export const zipNonEmptyWith: {
|
|
958
|
-
<B, A, C>(
|
|
959
|
-
that: NonEmptyReadonlyArray<B>,
|
|
960
|
-
f: (a: A, b: B) => C
|
|
961
|
-
): (self: NonEmptyReadonlyArray<A>) => NonEmptyArray<C>
|
|
962
|
-
<A, B, C>(
|
|
963
|
-
self: NonEmptyReadonlyArray<A>,
|
|
964
|
-
that: NonEmptyReadonlyArray<B>,
|
|
965
|
-
f: (a: A, b: B) => C
|
|
966
|
-
): NonEmptyArray<C>
|
|
967
|
-
} = dual(3, <A, B, C>(
|
|
968
|
-
self: NonEmptyReadonlyArray<A>,
|
|
969
|
-
that: NonEmptyReadonlyArray<B>,
|
|
970
|
-
f: (a: A, b: B) => C
|
|
971
|
-
): NonEmptyArray<C> => {
|
|
972
|
-
const cs: NonEmptyArray<C> = [f(headNonEmpty(self), headNonEmpty(that))]
|
|
973
|
-
const len = Math.min(self.length, that.length)
|
|
974
|
-
for (let i = 1; i < len; i++) {
|
|
975
|
-
cs[i] = f(self[i], that[i])
|
|
926
|
+
if (isNonEmptyReadonlyArray(as) && isNonEmptyReadonlyArray(bs)) {
|
|
927
|
+
const out: NonEmptyArray<C> = [f(headNonEmpty(as), headNonEmpty(bs))]
|
|
928
|
+
const len = Math.min(as.length, bs.length)
|
|
929
|
+
for (let i = 1; i < len; i++) {
|
|
930
|
+
out[i] = f(as[i], bs[i])
|
|
931
|
+
}
|
|
932
|
+
return out
|
|
976
933
|
}
|
|
977
|
-
return
|
|
934
|
+
return []
|
|
978
935
|
})
|
|
979
936
|
|
|
980
937
|
/**
|
|
@@ -982,57 +939,49 @@ export const zipNonEmptyWith: {
|
|
|
982
939
|
*
|
|
983
940
|
* @since 2.0.0
|
|
984
941
|
*/
|
|
985
|
-
export const unzip
|
|
942
|
+
export const unzip: {
|
|
943
|
+
<A, B>(self: NonEmptyReadonlyArray<readonly [A, B]>): [NonEmptyArray<A>, NonEmptyArray<B>]
|
|
944
|
+
<A, B>(self: Iterable<readonly [A, B]>): [Array<A>, Array<B>]
|
|
945
|
+
} = (<A, B>(self: Iterable<readonly [A, B]>): [Array<A>, Array<B>] => {
|
|
986
946
|
const input = fromIterable(self)
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
): [NonEmptyArray<A>, NonEmptyArray<B>] => {
|
|
996
|
-
const fa: NonEmptyArray<A> = [self[0][0]]
|
|
997
|
-
const fb: NonEmptyArray<B> = [self[0][1]]
|
|
998
|
-
for (let i = 1; i < self.length; i++) {
|
|
999
|
-
fa[i] = self[i][0]
|
|
1000
|
-
fb[i] = self[i][1]
|
|
947
|
+
if (isNonEmptyReadonlyArray(input)) {
|
|
948
|
+
const fa: NonEmptyArray<A> = [input[0][0]]
|
|
949
|
+
const fb: NonEmptyArray<B> = [input[0][1]]
|
|
950
|
+
for (let i = 1; i < input.length; i++) {
|
|
951
|
+
fa[i] = input[i][0]
|
|
952
|
+
fb[i] = input[i][1]
|
|
953
|
+
}
|
|
954
|
+
return [fa, fb]
|
|
1001
955
|
}
|
|
1002
|
-
return [
|
|
1003
|
-
}
|
|
956
|
+
return [[], []]
|
|
957
|
+
}) as any
|
|
1004
958
|
|
|
1005
959
|
/**
|
|
1006
|
-
* Places an element in between members of an `Iterable
|
|
960
|
+
* Places an element in between members of an `Iterable`.
|
|
961
|
+
* If the input is a non-empty array, the result is also a non-empty array.
|
|
1007
962
|
*
|
|
1008
963
|
* @since 2.0.0
|
|
1009
964
|
*/
|
|
1010
965
|
export const intersperse: {
|
|
1011
|
-
<B>(
|
|
966
|
+
<B>(
|
|
967
|
+
middle: B
|
|
968
|
+
): <T extends ReadonlyArray<any> | Iterable<any>>(self: T) => ReadonlyArray.With<T, ReadonlyArray.Infer<T>>
|
|
969
|
+
<A, B>(self: NonEmptyReadonlyArray<A>, middle: B): NonEmptyArray<A | B>
|
|
1012
970
|
<A, B>(self: Iterable<A>, middle: B): Array<A | B>
|
|
1013
971
|
} = dual(2, <A, B>(self: Iterable<A>, middle: B): Array<A | B> => {
|
|
1014
972
|
const input = fromIterable(self)
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
export const intersperseNonEmpty: {
|
|
1024
|
-
<B>(middle: B): <A>(self: NonEmptyReadonlyArray<A>) => NonEmptyArray<A | B>
|
|
1025
|
-
<A, B>(self: NonEmptyReadonlyArray<A>, middle: B): NonEmptyArray<A | B>
|
|
1026
|
-
} = dual(2, <A, B>(self: NonEmptyReadonlyArray<A>, middle: B): NonEmptyArray<A | B> => {
|
|
1027
|
-
const out: NonEmptyArray<A | B> = [headNonEmpty(self)]
|
|
1028
|
-
const tail = tailNonEmpty(self)
|
|
1029
|
-
for (let i = 0; i < tail.length; i++) {
|
|
1030
|
-
if (i < tail.length) {
|
|
1031
|
-
out.push(middle)
|
|
973
|
+
if (isNonEmptyReadonlyArray(input)) {
|
|
974
|
+
const out: NonEmptyArray<A | B> = [headNonEmpty(input)]
|
|
975
|
+
const tail = tailNonEmpty(input)
|
|
976
|
+
for (let i = 0; i < tail.length; i++) {
|
|
977
|
+
if (i < tail.length) {
|
|
978
|
+
out.push(middle)
|
|
979
|
+
}
|
|
980
|
+
out.push(tail[i])
|
|
1032
981
|
}
|
|
1033
|
-
out
|
|
982
|
+
return out
|
|
1034
983
|
}
|
|
1035
|
-
return
|
|
984
|
+
return []
|
|
1036
985
|
})
|
|
1037
986
|
|
|
1038
987
|
/**
|
|
@@ -1093,37 +1042,30 @@ export const setNonEmptyLast: {
|
|
|
1093
1042
|
|
|
1094
1043
|
/**
|
|
1095
1044
|
* Rotate an `Iterable` by `n` steps.
|
|
1045
|
+
* If the input is a non-empty array, the result is also a non-empty array.
|
|
1096
1046
|
*
|
|
1097
1047
|
* @since 2.0.0
|
|
1098
1048
|
*/
|
|
1099
1049
|
export const rotate: {
|
|
1100
|
-
(n: number): <
|
|
1050
|
+
(n: number): <T extends ReadonlyArray<any> | Iterable<any>>(self: T) => ReadonlyArray.With<T, ReadonlyArray.Infer<T>>
|
|
1051
|
+
<A>(self: NonEmptyReadonlyArray<A>, n: number): NonEmptyArray<A>
|
|
1101
1052
|
<A>(self: Iterable<A>, n: number): Array<A>
|
|
1102
1053
|
} = dual(2, <A>(self: Iterable<A>, n: number): Array<A> => {
|
|
1103
1054
|
const input = fromIterable(self)
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
}
|
|
1116
|
-
const len = self.length
|
|
1117
|
-
const m = Math.round(n) % len
|
|
1118
|
-
if (isOutOfBound(Math.abs(m), self) || m === 0) {
|
|
1119
|
-
return copy(self)
|
|
1120
|
-
}
|
|
1121
|
-
if (m < 0) {
|
|
1122
|
-
const [f, s] = splitNonEmptyAt(self, -m)
|
|
1123
|
-
return appendAllNonEmpty(s, f)
|
|
1124
|
-
} else {
|
|
1125
|
-
return rotateNonEmpty(self, m - len)
|
|
1055
|
+
if (isNonEmptyReadonlyArray(input)) {
|
|
1056
|
+
const len = input.length
|
|
1057
|
+
const m = Math.round(n) % len
|
|
1058
|
+
if (isOutOfBound(Math.abs(m), input) || m === 0) {
|
|
1059
|
+
return copy(input)
|
|
1060
|
+
}
|
|
1061
|
+
if (m < 0) {
|
|
1062
|
+
const [f, s] = splitNonEmptyAt(input, -m)
|
|
1063
|
+
return appendAll(s, f)
|
|
1064
|
+
} else {
|
|
1065
|
+
return rotate(self, m - len)
|
|
1066
|
+
}
|
|
1126
1067
|
}
|
|
1068
|
+
return []
|
|
1127
1069
|
})
|
|
1128
1070
|
|
|
1129
1071
|
/**
|
|
@@ -1158,34 +1100,6 @@ export const contains: {
|
|
|
1158
1100
|
<A>(self: Iterable<A>, a: A): boolean
|
|
1159
1101
|
} = containsWith(_equivalence)
|
|
1160
1102
|
|
|
1161
|
-
/**
|
|
1162
|
-
* Remove duplicates from a `NonEmptyReadonlyArray`, keeping the first occurrence of an element using the provided `isEquivalent` function.
|
|
1163
|
-
*
|
|
1164
|
-
* @since 2.0.0
|
|
1165
|
-
*/
|
|
1166
|
-
export const dedupeNonEmptyWith: {
|
|
1167
|
-
<A>(isEquivalent: (self: A, that: A) => boolean): (self: NonEmptyReadonlyArray<A>) => NonEmptyArray<A>
|
|
1168
|
-
<A>(self: NonEmptyReadonlyArray<A>, isEquivalent: (self: A, that: A) => boolean): NonEmptyArray<A>
|
|
1169
|
-
} = dual(2, <A>(self: NonEmptyReadonlyArray<A>, isEquivalent: (self: A, that: A) => boolean): NonEmptyArray<A> => {
|
|
1170
|
-
const out: NonEmptyArray<A> = [headNonEmpty(self)]
|
|
1171
|
-
const rest = tailNonEmpty(self)
|
|
1172
|
-
for (const a of rest) {
|
|
1173
|
-
if (out.every((o) => !isEquivalent(a, o))) {
|
|
1174
|
-
out.push(a)
|
|
1175
|
-
}
|
|
1176
|
-
}
|
|
1177
|
-
return out
|
|
1178
|
-
})
|
|
1179
|
-
|
|
1180
|
-
/**
|
|
1181
|
-
* Remove duplicates from a `NonEmptyReadonlyArray`, keeping the first occurrence of an element.
|
|
1182
|
-
*
|
|
1183
|
-
* @since 2.0.0
|
|
1184
|
-
*/
|
|
1185
|
-
export const dedupeNonEmpty: <A>(self: NonEmptyReadonlyArray<A>) => NonEmptyArray<A> = dedupeNonEmptyWith(
|
|
1186
|
-
Equal.equivalence()
|
|
1187
|
-
)
|
|
1188
|
-
|
|
1189
1103
|
/**
|
|
1190
1104
|
* A useful recursion pattern for processing an `Iterable` to produce a new `Array`, often used for "chopping" up the input
|
|
1191
1105
|
* `Iterable`. Typically chop is called with some function that will consume an initial prefix of the `Iterable` and produce a
|
|
@@ -1196,7 +1110,11 @@ export const dedupeNonEmpty: <A>(self: NonEmptyReadonlyArray<A>) => NonEmptyArra
|
|
|
1196
1110
|
export const chop: {
|
|
1197
1111
|
<A, B>(
|
|
1198
1112
|
f: (as: NonEmptyReadonlyArray<A>) => readonly [B, ReadonlyArray<A>]
|
|
1199
|
-
): (self:
|
|
1113
|
+
): <T extends ReadonlyArray<any> | Iterable<any>>(self: T) => ReadonlyArray.With<T, ReadonlyArray.Infer<T>>
|
|
1114
|
+
<A, B>(
|
|
1115
|
+
self: NonEmptyReadonlyArray<A>,
|
|
1116
|
+
f: (as: NonEmptyReadonlyArray<A>) => readonly [B, ReadonlyArray<A>]
|
|
1117
|
+
): NonEmptyArray<B>
|
|
1200
1118
|
<A, B>(
|
|
1201
1119
|
self: Iterable<A>,
|
|
1202
1120
|
f: (as: NonEmptyReadonlyArray<A>) => readonly [B, ReadonlyArray<A>]
|
|
@@ -1206,41 +1124,23 @@ export const chop: {
|
|
|
1206
1124
|
f: (as: NonEmptyReadonlyArray<A>) => readonly [B, ReadonlyArray<A>]
|
|
1207
1125
|
): Array<B> => {
|
|
1208
1126
|
const input = fromIterable(self)
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
export const chopNonEmpty: {
|
|
1220
|
-
<A, B>(
|
|
1221
|
-
f: (as: NonEmptyReadonlyArray<A>) => readonly [B, ReadonlyArray<A>]
|
|
1222
|
-
): (self: NonEmptyReadonlyArray<A>) => NonEmptyArray<B>
|
|
1223
|
-
<A, B>(
|
|
1224
|
-
self: NonEmptyReadonlyArray<A>,
|
|
1225
|
-
f: (as: NonEmptyReadonlyArray<A>) => readonly [B, ReadonlyArray<A>]
|
|
1226
|
-
): NonEmptyArray<B>
|
|
1227
|
-
} = dual(2, <A, B>(
|
|
1228
|
-
self: NonEmptyReadonlyArray<A>,
|
|
1229
|
-
f: (as: NonEmptyReadonlyArray<A>) => readonly [B, ReadonlyArray<A>]
|
|
1230
|
-
): NonEmptyArray<B> => {
|
|
1231
|
-
const [b, rest] = f(self)
|
|
1232
|
-
const out: NonEmptyArray<B> = [b]
|
|
1233
|
-
let next: ReadonlyArray<A> = rest
|
|
1234
|
-
while (readonlyArray.isNonEmptyArray(next)) {
|
|
1235
|
-
const [b, rest] = f(next)
|
|
1236
|
-
out.push(b)
|
|
1237
|
-
next = rest
|
|
1127
|
+
if (isNonEmptyReadonlyArray(input)) {
|
|
1128
|
+
const [b, rest] = f(input)
|
|
1129
|
+
const out: NonEmptyArray<B> = [b]
|
|
1130
|
+
let next: ReadonlyArray<A> = rest
|
|
1131
|
+
while (readonlyArray.isNonEmptyArray(next)) {
|
|
1132
|
+
const [b, rest] = f(next)
|
|
1133
|
+
out.push(b)
|
|
1134
|
+
next = rest
|
|
1135
|
+
}
|
|
1136
|
+
return out
|
|
1238
1137
|
}
|
|
1239
|
-
return
|
|
1138
|
+
return []
|
|
1240
1139
|
})
|
|
1241
1140
|
|
|
1242
1141
|
/**
|
|
1243
|
-
* Splits an `Iterable` into two
|
|
1142
|
+
* Splits an `Iterable` into two segments, with the first segment containing a maximum of `n` elements.
|
|
1143
|
+
* The value of `n` can be `0`.
|
|
1244
1144
|
*
|
|
1245
1145
|
* @category getters
|
|
1246
1146
|
* @since 2.0.0
|
|
@@ -1250,11 +1150,14 @@ export const splitAt: {
|
|
|
1250
1150
|
<A>(self: Iterable<A>, n: number): [beforeIndex: Array<A>, fromIndex: Array<A>]
|
|
1251
1151
|
} = dual(2, <A>(self: Iterable<A>, n: number): [Array<A>, Array<A>] => {
|
|
1252
1152
|
const input = Array.from(self)
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1153
|
+
const _n = Math.floor(n)
|
|
1154
|
+
if (isNonEmptyReadonlyArray(input)) {
|
|
1155
|
+
if (_n >= 1) {
|
|
1156
|
+
return splitNonEmptyAt(input, _n)
|
|
1157
|
+
}
|
|
1158
|
+
return [[], input]
|
|
1159
|
+
}
|
|
1160
|
+
return [input, []]
|
|
1258
1161
|
})
|
|
1259
1162
|
|
|
1260
1163
|
/**
|
|
@@ -1266,7 +1169,8 @@ export const copy: {
|
|
|
1266
1169
|
} = (<A>(self: ReadonlyArray<A>): Array<A> => self.slice()) as any
|
|
1267
1170
|
|
|
1268
1171
|
/**
|
|
1269
|
-
* Splits a `NonEmptyReadonlyArray` into two
|
|
1172
|
+
* Splits a `NonEmptyReadonlyArray` into two segments, with the first segment containing a maximum of `n` elements.
|
|
1173
|
+
* The value of `n` must be `>= 1`.
|
|
1270
1174
|
*
|
|
1271
1175
|
* @category getters
|
|
1272
1176
|
* @since 2.0.0
|
|
@@ -1275,10 +1179,10 @@ export const splitNonEmptyAt: {
|
|
|
1275
1179
|
(n: number): <A>(self: NonEmptyReadonlyArray<A>) => [beforeIndex: NonEmptyArray<A>, fromIndex: Array<A>]
|
|
1276
1180
|
<A>(self: NonEmptyReadonlyArray<A>, n: number): [beforeIndex: NonEmptyArray<A>, fromIndex: Array<A>]
|
|
1277
1181
|
} = dual(2, <A>(self: NonEmptyReadonlyArray<A>, n: number): [NonEmptyArray<A>, Array<A>] => {
|
|
1278
|
-
const
|
|
1279
|
-
return
|
|
1182
|
+
const _n = Math.max(1, Math.floor(n))
|
|
1183
|
+
return _n >= self.length ?
|
|
1280
1184
|
[copy(self), []] :
|
|
1281
|
-
[prepend(self.slice(1,
|
|
1185
|
+
[prepend(self.slice(1, _n), headNonEmpty(self)), self.slice(_n)]
|
|
1282
1186
|
})
|
|
1283
1187
|
|
|
1284
1188
|
/**
|
|
@@ -1296,29 +1200,21 @@ export const splitNonEmptyAt: {
|
|
|
1296
1200
|
* @since 2.0.0
|
|
1297
1201
|
*/
|
|
1298
1202
|
export const chunksOf: {
|
|
1299
|
-
(
|
|
1203
|
+
(
|
|
1204
|
+
n: number
|
|
1205
|
+
): <T extends ReadonlyArray<any> | Iterable<any>>(
|
|
1206
|
+
self: T
|
|
1207
|
+
) => ReadonlyArray.With<T, NonEmptyArray<ReadonlyArray.Infer<T>>>
|
|
1208
|
+
<A>(self: NonEmptyReadonlyArray<A>, n: number): NonEmptyArray<NonEmptyArray<A>>
|
|
1300
1209
|
<A>(self: Iterable<A>, n: number): Array<NonEmptyArray<A>>
|
|
1301
1210
|
} = dual(2, <A>(self: Iterable<A>, n: number): Array<NonEmptyArray<A>> => {
|
|
1302
1211
|
const input = fromIterable(self)
|
|
1303
|
-
|
|
1212
|
+
if (isNonEmptyReadonlyArray(input)) {
|
|
1213
|
+
return chop(input, splitNonEmptyAt(n))
|
|
1214
|
+
}
|
|
1215
|
+
return []
|
|
1304
1216
|
})
|
|
1305
1217
|
|
|
1306
|
-
/**
|
|
1307
|
-
* Splits a `NonEmptyReadonlyArray` into length-`n` pieces. The last piece will be shorter if `n` does not evenly divide the length of
|
|
1308
|
-
* the `NonEmptyReadonlyArray`.
|
|
1309
|
-
*
|
|
1310
|
-
* @category getters
|
|
1311
|
-
* @since 2.0.0
|
|
1312
|
-
*/
|
|
1313
|
-
export const chunksOfNonEmpty: {
|
|
1314
|
-
(n: number): <A>(self: NonEmptyReadonlyArray<A>) => NonEmptyArray<NonEmptyArray<A>>
|
|
1315
|
-
<A>(self: NonEmptyReadonlyArray<A>, n: number): NonEmptyArray<NonEmptyArray<A>>
|
|
1316
|
-
} = dual(
|
|
1317
|
-
2,
|
|
1318
|
-
<A>(self: NonEmptyReadonlyArray<A>, n: number): NonEmptyArray<NonEmptyArray<A>> =>
|
|
1319
|
-
chopNonEmpty(self, splitNonEmptyAt(n))
|
|
1320
|
-
)
|
|
1321
|
-
|
|
1322
1218
|
/**
|
|
1323
1219
|
* Group equal, consecutive elements of a `NonEmptyReadonlyArray` into `NonEmptyArray`s using the provided `isEquivalent` function.
|
|
1324
1220
|
*
|
|
@@ -1331,7 +1227,7 @@ export const groupWith: {
|
|
|
1331
1227
|
} = dual(
|
|
1332
1228
|
2,
|
|
1333
1229
|
<A>(self: NonEmptyReadonlyArray<A>, isEquivalent: (self: A, that: A) => boolean): NonEmptyArray<NonEmptyArray<A>> =>
|
|
1334
|
-
|
|
1230
|
+
chop(self, (as) => {
|
|
1335
1231
|
const h = headNonEmpty(as)
|
|
1336
1232
|
const out: NonEmptyArray<A> = [h]
|
|
1337
1233
|
let i = 1
|
|
@@ -1383,53 +1279,48 @@ export const groupBy: {
|
|
|
1383
1279
|
/**
|
|
1384
1280
|
* @since 2.0.0
|
|
1385
1281
|
*/
|
|
1386
|
-
export const unionWith
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1282
|
+
export const unionWith: {
|
|
1283
|
+
<S extends ReadonlyArray<any> | Iterable<any>, T extends ReadonlyArray<any> | Iterable<any>>(
|
|
1284
|
+
that: T,
|
|
1285
|
+
isEquivalent: (self: ReadonlyArray.Infer<S>, that: ReadonlyArray.Infer<T>) => boolean
|
|
1286
|
+
): (self: S) => ReadonlyArray.With2<S, T, ReadonlyArray.Infer<S> | ReadonlyArray.Infer<T>>
|
|
1287
|
+
<A, B>(
|
|
1288
|
+
self: NonEmptyReadonlyArray<A>,
|
|
1289
|
+
that: Iterable<B>,
|
|
1290
|
+
isEquivalent: (self: A, that: B) => boolean
|
|
1291
|
+
): NonEmptyArray<A | B>
|
|
1292
|
+
<A, B>(
|
|
1293
|
+
self: Iterable<A>,
|
|
1294
|
+
that: NonEmptyReadonlyArray<B>,
|
|
1295
|
+
isEquivalent: (self: A, that: B) => boolean
|
|
1296
|
+
): NonEmptyArray<A | B>
|
|
1297
|
+
<A, B>(self: Iterable<A>, that: Iterable<B>, isEquivalent: (self: A, that: B) => boolean): Array<A | B>
|
|
1298
|
+
} = dual(3, <A>(self: Iterable<A>, that: Iterable<A>, isEquivalent: (self: A, that: A) => boolean): Array<A> => {
|
|
1299
|
+
const a = fromIterable(self)
|
|
1300
|
+
const b = fromIterable(that)
|
|
1301
|
+
if (isNonEmptyReadonlyArray(a)) {
|
|
1302
|
+
if (isNonEmptyReadonlyArray(b)) {
|
|
1303
|
+
const dedupe = dedupeWith(isEquivalent)
|
|
1304
|
+
return dedupe(appendAll(a, b))
|
|
1305
|
+
}
|
|
1306
|
+
return a
|
|
1307
|
+
}
|
|
1308
|
+
return b
|
|
1309
|
+
})
|
|
1399
1310
|
|
|
1400
1311
|
/**
|
|
1401
1312
|
* @since 2.0.0
|
|
1402
1313
|
*/
|
|
1403
1314
|
export const union: {
|
|
1404
|
-
<
|
|
1315
|
+
<T extends ReadonlyArray<any> | Iterable<any>>(
|
|
1316
|
+
that: T
|
|
1317
|
+
): <S extends ReadonlyArray<any> | Iterable<any>>(
|
|
1318
|
+
self: S
|
|
1319
|
+
) => ReadonlyArray.With2<S, T, ReadonlyArray.Infer<S> | ReadonlyArray.Infer<T>>
|
|
1320
|
+
<A, B>(self: NonEmptyReadonlyArray<A>, that: ReadonlyArray<B>): NonEmptyArray<A | B>
|
|
1321
|
+
<A, B>(self: ReadonlyArray<A>, that: NonEmptyReadonlyArray<B>): NonEmptyArray<A | B>
|
|
1405
1322
|
<A, B>(self: Iterable<A>, that: Iterable<B>): Array<A | B>
|
|
1406
|
-
} = unionWith(_equivalence)
|
|
1407
|
-
|
|
1408
|
-
/**
|
|
1409
|
-
* @since 2.0.0
|
|
1410
|
-
*/
|
|
1411
|
-
export const unionNonEmptyWith = <A>(isEquivalent: (self: A, that: A) => boolean): {
|
|
1412
|
-
(that: NonEmptyReadonlyArray<A>): (self: ReadonlyArray<A>) => NonEmptyArray<A>
|
|
1413
|
-
(that: ReadonlyArray<A>): (self: NonEmptyReadonlyArray<A>) => NonEmptyArray<A>
|
|
1414
|
-
(self: ReadonlyArray<A>, that: NonEmptyReadonlyArray<A>): NonEmptyArray<A>
|
|
1415
|
-
(self: NonEmptyReadonlyArray<A>, that: ReadonlyArray<A>): NonEmptyArray<A>
|
|
1416
|
-
} => {
|
|
1417
|
-
const dedupe = dedupeNonEmptyWith(isEquivalent)
|
|
1418
|
-
return dual(
|
|
1419
|
-
2,
|
|
1420
|
-
(self: NonEmptyReadonlyArray<A>, that: ReadonlyArray<A>): NonEmptyArray<A> => dedupe(appendAllNonEmpty(self, that))
|
|
1421
|
-
)
|
|
1422
|
-
}
|
|
1423
|
-
|
|
1424
|
-
/**
|
|
1425
|
-
* @since 2.0.0
|
|
1426
|
-
*/
|
|
1427
|
-
export const unionNonEmpty: {
|
|
1428
|
-
<A>(that: NonEmptyReadonlyArray<A>): (self: ReadonlyArray<A>) => NonEmptyArray<A>
|
|
1429
|
-
<A>(that: ReadonlyArray<A>): (self: NonEmptyReadonlyArray<A>) => NonEmptyArray<A>
|
|
1430
|
-
<A>(self: ReadonlyArray<A>, that: NonEmptyReadonlyArray<A>): NonEmptyArray<A>
|
|
1431
|
-
<A>(self: NonEmptyReadonlyArray<A>, that: ReadonlyArray<A>): NonEmptyArray<A>
|
|
1432
|
-
} = unionNonEmptyWith(_equivalence)
|
|
1323
|
+
} = dual(2, <A, B>(self: Iterable<A>, that: Iterable<B>): Array<A | B> => unionWith(self, that, _equivalence))
|
|
1433
1324
|
|
|
1434
1325
|
/**
|
|
1435
1326
|
* Creates an `Array` of unique values that are included in all given `Iterable`s using the provided `isEquivalent` function.
|
|
@@ -1477,7 +1368,7 @@ export const differenceWith = <A>(isEquivalent: (self: A, that: A) => boolean):
|
|
|
1477
1368
|
}
|
|
1478
1369
|
|
|
1479
1370
|
/**
|
|
1480
|
-
* Creates a `Array` of values not included in the other given `Iterable
|
|
1371
|
+
* Creates a `Array` of values not included in the other given `Iterable`.
|
|
1481
1372
|
* The order and references of result values are determined by the first `Iterable`.
|
|
1482
1373
|
*
|
|
1483
1374
|
* @since 2.0.0
|
|
@@ -1508,13 +1399,24 @@ export declare namespace ReadonlyArray {
|
|
|
1508
1399
|
/**
|
|
1509
1400
|
* @since 2.0.0
|
|
1510
1401
|
*/
|
|
1511
|
-
export type Infer<T extends ReadonlyArray<any>> = T
|
|
1402
|
+
export type Infer<T extends ReadonlyArray<any> | Iterable<any>> = T extends ReadonlyArray<infer A> ? A
|
|
1403
|
+
: T extends Iterable<infer A> ? A
|
|
1404
|
+
: never
|
|
1512
1405
|
|
|
1513
1406
|
/**
|
|
1514
1407
|
* @since 2.0.0
|
|
1515
1408
|
*/
|
|
1516
|
-
export type With<T extends ReadonlyArray<any>, A> = T extends NonEmptyReadonlyArray<any> ?
|
|
1409
|
+
export type With<T extends ReadonlyArray<any> | Iterable<any>, A> = T extends NonEmptyReadonlyArray<any> ?
|
|
1410
|
+
NonEmptyArray<A>
|
|
1517
1411
|
: Array<A>
|
|
1412
|
+
|
|
1413
|
+
/**
|
|
1414
|
+
* @since 2.0.0
|
|
1415
|
+
*/
|
|
1416
|
+
export type With2<S extends ReadonlyArray<any> | Iterable<any>, T extends ReadonlyArray<any> | Iterable<any>, A> =
|
|
1417
|
+
S extends NonEmptyReadonlyArray<any> ? NonEmptyArray<A>
|
|
1418
|
+
: T extends NonEmptyReadonlyArray<any> ? NonEmptyArray<A>
|
|
1419
|
+
: Array<A>
|
|
1518
1420
|
}
|
|
1519
1421
|
|
|
1520
1422
|
/**
|
|
@@ -1529,11 +1431,16 @@ export const map: {
|
|
|
1529
1431
|
} = dual(2, <A, B>(self: ReadonlyArray<A>, f: (a: A, i: number) => B): Array<B> => self.map(f))
|
|
1530
1432
|
|
|
1531
1433
|
/**
|
|
1434
|
+
* Applies a function to each element in an array and returns a new array containing the concatenated mapped elements.
|
|
1435
|
+
*
|
|
1532
1436
|
* @category sequencing
|
|
1533
1437
|
* @since 2.0.0
|
|
1534
1438
|
*/
|
|
1535
1439
|
export const flatMap: {
|
|
1536
|
-
<
|
|
1440
|
+
<S extends ReadonlyArray<any>, T extends ReadonlyArray<any>>(
|
|
1441
|
+
f: (a: ReadonlyArray.Infer<S>, i: number) => T
|
|
1442
|
+
): (self: S) => ReadonlyArray.With2<S, T, ReadonlyArray.Infer<T>>
|
|
1443
|
+
<A, B>(self: NonEmptyReadonlyArray<A>, f: (a: A, i: number) => NonEmptyReadonlyArray<B>): NonEmptyArray<B>
|
|
1537
1444
|
<A, B>(self: ReadonlyArray<A>, f: (a: A, i: number) => ReadonlyArray<B>): Array<B>
|
|
1538
1445
|
} = dual(
|
|
1539
1446
|
2,
|
|
@@ -1550,27 +1457,15 @@ export const flatMap: {
|
|
|
1550
1457
|
)
|
|
1551
1458
|
|
|
1552
1459
|
/**
|
|
1460
|
+
* Flattens an array of arrays into a single array by concatenating all arrays.
|
|
1461
|
+
*
|
|
1553
1462
|
* @category sequencing
|
|
1554
1463
|
* @since 2.0.0
|
|
1555
1464
|
*/
|
|
1556
|
-
export const
|
|
1557
|
-
<A
|
|
1558
|
-
<A
|
|
1559
|
-
} = flatMap as any
|
|
1560
|
-
|
|
1561
|
-
/**
|
|
1562
|
-
* @category sequencing
|
|
1563
|
-
* @since 2.0.0
|
|
1564
|
-
*/
|
|
1565
|
-
export const flatten: <A>(self: ReadonlyArray<ReadonlyArray<A>>) => Array<A> = flatMap(identity)
|
|
1566
|
-
|
|
1567
|
-
/**
|
|
1568
|
-
* @category sequencing
|
|
1569
|
-
* @since 2.0.0
|
|
1570
|
-
*/
|
|
1571
|
-
export const flattenNonEmpty: <A>(
|
|
1572
|
-
self: NonEmptyReadonlyArray<NonEmptyReadonlyArray<A>>
|
|
1573
|
-
) => NonEmptyArray<A> = flatMapNonEmpty(identity)
|
|
1465
|
+
export const flatten: {
|
|
1466
|
+
<A>(self: NonEmptyReadonlyArray<NonEmptyReadonlyArray<A>>): NonEmptyArray<A>
|
|
1467
|
+
<A>(self: ReadonlyArray<ReadonlyArray<A>>): Array<A>
|
|
1468
|
+
} = flatMap(identity) as any
|
|
1574
1469
|
|
|
1575
1470
|
/**
|
|
1576
1471
|
* @category filtering
|
|
@@ -1642,10 +1537,73 @@ export const partitionMap: {
|
|
|
1642
1537
|
)
|
|
1643
1538
|
|
|
1644
1539
|
/**
|
|
1540
|
+
* Retrieves the `Some` values from an `Iterable` of `Option`s, collecting them into an array.
|
|
1541
|
+
*
|
|
1542
|
+
* @example
|
|
1543
|
+
* import { getSomes } from "effect/ReadonlyArray"
|
|
1544
|
+
* import { some, none } from "effect/Option"
|
|
1545
|
+
*
|
|
1546
|
+
* assert.deepStrictEqual(
|
|
1547
|
+
* getSomes([some(1), none(), some(2)]),
|
|
1548
|
+
* [1, 2]
|
|
1549
|
+
* )
|
|
1550
|
+
*
|
|
1551
|
+
* @category filtering
|
|
1552
|
+
* @since 2.0.0
|
|
1553
|
+
*/
|
|
1554
|
+
export const getSomes: <A>(self: Iterable<Option<A>>) => Array<A> = filterMap(identity)
|
|
1555
|
+
|
|
1556
|
+
/**
|
|
1557
|
+
* Retrieves the `Left` values from an `Iterable` of `Either`s, collecting them into an array.
|
|
1558
|
+
*
|
|
1559
|
+
* @example
|
|
1560
|
+
* import { getLefts } from "effect/ReadonlyArray"
|
|
1561
|
+
* import { right, left } from "effect/Either"
|
|
1562
|
+
*
|
|
1563
|
+
* assert.deepStrictEqual(
|
|
1564
|
+
* getLefts([right(1), left("err"), right(2)]),
|
|
1565
|
+
* ["err"]
|
|
1566
|
+
* )
|
|
1567
|
+
*
|
|
1568
|
+
* @category filtering
|
|
1569
|
+
* @since 2.0.0
|
|
1570
|
+
*/
|
|
1571
|
+
export const getLefts = <E, A>(self: Iterable<Either<E, A>>): Array<E> => {
|
|
1572
|
+
const out: Array<E> = []
|
|
1573
|
+
for (const a of self) {
|
|
1574
|
+
if (E.isLeft(a)) {
|
|
1575
|
+
out.push(a.left)
|
|
1576
|
+
}
|
|
1577
|
+
}
|
|
1578
|
+
|
|
1579
|
+
return out
|
|
1580
|
+
}
|
|
1581
|
+
|
|
1582
|
+
/**
|
|
1583
|
+
* Retrieves the `Right` values from an `Iterable` of `Either`s, collecting them into an array.
|
|
1584
|
+
*
|
|
1585
|
+
* @example
|
|
1586
|
+
* import { getRights } from "effect/ReadonlyArray"
|
|
1587
|
+
* import { right, left } from "effect/Either"
|
|
1588
|
+
*
|
|
1589
|
+
* assert.deepStrictEqual(
|
|
1590
|
+
* getRights([right(1), left("err"), right(2)]),
|
|
1591
|
+
* [1, 2]
|
|
1592
|
+
* )
|
|
1593
|
+
*
|
|
1645
1594
|
* @category filtering
|
|
1646
1595
|
* @since 2.0.0
|
|
1647
1596
|
*/
|
|
1648
|
-
export const
|
|
1597
|
+
export const getRights = <E, A>(self: Iterable<Either<E, A>>): Array<A> => {
|
|
1598
|
+
const out: Array<A> = []
|
|
1599
|
+
for (const a of self) {
|
|
1600
|
+
if (E.isRight(a)) {
|
|
1601
|
+
out.push(a.right)
|
|
1602
|
+
}
|
|
1603
|
+
}
|
|
1604
|
+
|
|
1605
|
+
return out
|
|
1606
|
+
}
|
|
1649
1607
|
|
|
1650
1608
|
/**
|
|
1651
1609
|
* @category filtering
|
|
@@ -1773,7 +1731,7 @@ export const liftNullable = <A extends Array<unknown>, B>(
|
|
|
1773
1731
|
(...a) => fromNullable(f(...a))
|
|
1774
1732
|
|
|
1775
1733
|
/**
|
|
1776
|
-
* @category
|
|
1734
|
+
* @category sequencing
|
|
1777
1735
|
* @since 2.0.0
|
|
1778
1736
|
*/
|
|
1779
1737
|
export const flatMapNullable: {
|
|
@@ -1901,27 +1859,45 @@ export const forEach: {
|
|
|
1901
1859
|
} = dual(2, <A>(self: Iterable<A>, f: (a: A, i: number) => void): void => fromIterable(self).forEach((a, i) => f(a, i)))
|
|
1902
1860
|
|
|
1903
1861
|
/**
|
|
1904
|
-
* Remove duplicates from
|
|
1862
|
+
* Remove duplicates from an `Iterable` using the provided `isEquivalent` function,
|
|
1863
|
+
* preserving the order of the first occurrence of each element.
|
|
1905
1864
|
*
|
|
1906
1865
|
* @since 2.0.0
|
|
1907
1866
|
*/
|
|
1908
1867
|
export const dedupeWith: {
|
|
1909
|
-
<A>(
|
|
1868
|
+
<A>(
|
|
1869
|
+
isEquivalent: (self: A, that: A) => boolean
|
|
1870
|
+
): <T extends ReadonlyArray<any> | Iterable<any>>(self: T) => ReadonlyArray.With<T, ReadonlyArray.Infer<T>>
|
|
1871
|
+
<A>(self: NonEmptyReadonlyArray<A>, isEquivalent: (self: A, that: A) => boolean): NonEmptyArray<A>
|
|
1910
1872
|
<A>(self: Iterable<A>, isEquivalent: (self: A, that: A) => boolean): Array<A>
|
|
1911
1873
|
} = dual(
|
|
1912
1874
|
2,
|
|
1913
1875
|
<A>(self: Iterable<A>, isEquivalent: (self: A, that: A) => boolean): Array<A> => {
|
|
1914
1876
|
const input = fromIterable(self)
|
|
1915
|
-
|
|
1877
|
+
if (isNonEmptyReadonlyArray(input)) {
|
|
1878
|
+
const out: NonEmptyArray<A> = [headNonEmpty(input)]
|
|
1879
|
+
const rest = tailNonEmpty(input)
|
|
1880
|
+
for (const r of rest) {
|
|
1881
|
+
if (out.every((a) => !isEquivalent(r, a))) {
|
|
1882
|
+
out.push(r)
|
|
1883
|
+
}
|
|
1884
|
+
}
|
|
1885
|
+
return out
|
|
1886
|
+
}
|
|
1887
|
+
return []
|
|
1916
1888
|
}
|
|
1917
1889
|
)
|
|
1918
1890
|
|
|
1919
1891
|
/**
|
|
1920
|
-
* Remove duplicates from
|
|
1892
|
+
* Remove duplicates from an `Iterable`, preserving the order of the first occurrence of each element.
|
|
1893
|
+
* The equivalence used to compare elements is provided by `Equal.equivalence()` from the `Equal` module.
|
|
1921
1894
|
*
|
|
1922
1895
|
* @since 2.0.0
|
|
1923
1896
|
*/
|
|
1924
|
-
export const dedupe:
|
|
1897
|
+
export const dedupe: {
|
|
1898
|
+
<A>(self: NonEmptyReadonlyArray<A>): NonEmptyArray<A>
|
|
1899
|
+
<A>(self: Iterable<A>): Array<A>
|
|
1900
|
+
} = dedupeWith(Equal.equivalence()) as any
|
|
1925
1901
|
|
|
1926
1902
|
/**
|
|
1927
1903
|
* Deduplicates adjacent elements that are identical using the provided `isEquivalent` function.
|