@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
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 2.0.0
|
|
3
|
+
*/
|
|
4
|
+
import type * as Cause from "./Cause.js"
|
|
5
|
+
import * as internal from "./internal/configError.js"
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @since 2.0.0
|
|
9
|
+
* @category symbols
|
|
10
|
+
*/
|
|
11
|
+
export const ConfigErrorTypeId: unique symbol = internal.ConfigErrorTypeId
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @since 2.0.0
|
|
15
|
+
* @category symbols
|
|
16
|
+
*/
|
|
17
|
+
export type ConfigErrorTypeId = typeof ConfigErrorTypeId
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* The possible ways that loading configuration data may fail.
|
|
21
|
+
*
|
|
22
|
+
* @since 2.0.0
|
|
23
|
+
* @category models
|
|
24
|
+
*/
|
|
25
|
+
export type ConfigError =
|
|
26
|
+
| And
|
|
27
|
+
| Or
|
|
28
|
+
| InvalidData
|
|
29
|
+
| MissingData
|
|
30
|
+
| SourceUnavailable
|
|
31
|
+
| Unsupported
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* @since 2.0.0
|
|
35
|
+
*/
|
|
36
|
+
export declare namespace ConfigError {
|
|
37
|
+
/**
|
|
38
|
+
* @since 2.0.0
|
|
39
|
+
* @category models
|
|
40
|
+
*/
|
|
41
|
+
export interface Proto {
|
|
42
|
+
readonly _tag: "ConfigError"
|
|
43
|
+
readonly [ConfigErrorTypeId]: ConfigErrorTypeId
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* @since 2.0.0
|
|
48
|
+
* @category models
|
|
49
|
+
*/
|
|
50
|
+
export type Reducer<C, Z> = ConfigErrorReducer<C, Z>
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* @since 2.0.0
|
|
55
|
+
* @category models
|
|
56
|
+
*/
|
|
57
|
+
export interface ConfigErrorReducer<in C, in out Z> {
|
|
58
|
+
andCase(context: C, left: Z, right: Z): Z
|
|
59
|
+
orCase(context: C, left: Z, right: Z): Z
|
|
60
|
+
invalidDataCase(context: C, path: Array<string>, message: string): Z
|
|
61
|
+
missingDataCase(context: C, path: Array<string>, message: string): Z
|
|
62
|
+
sourceUnavailableCase(
|
|
63
|
+
context: C,
|
|
64
|
+
path: Array<string>,
|
|
65
|
+
message: string,
|
|
66
|
+
cause: Cause.Cause<unknown>
|
|
67
|
+
): Z
|
|
68
|
+
unsupportedCase(context: C, path: Array<string>, message: string): Z
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* @since 2.0.0
|
|
73
|
+
* @category models
|
|
74
|
+
*/
|
|
75
|
+
export interface And extends ConfigError.Proto {
|
|
76
|
+
readonly _op: "And"
|
|
77
|
+
readonly left: ConfigError
|
|
78
|
+
readonly right: ConfigError
|
|
79
|
+
readonly message: string
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* @since 2.0.0
|
|
84
|
+
* @category models
|
|
85
|
+
*/
|
|
86
|
+
export interface Or extends ConfigError.Proto {
|
|
87
|
+
readonly _op: "Or"
|
|
88
|
+
readonly left: ConfigError
|
|
89
|
+
readonly right: ConfigError
|
|
90
|
+
readonly message: string
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* @since 2.0.0
|
|
95
|
+
* @category models
|
|
96
|
+
*/
|
|
97
|
+
export interface InvalidData extends ConfigError.Proto {
|
|
98
|
+
readonly _op: "InvalidData"
|
|
99
|
+
readonly path: Array<string>
|
|
100
|
+
readonly message: string
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* @since 2.0.0
|
|
105
|
+
* @category models
|
|
106
|
+
*/
|
|
107
|
+
export interface MissingData extends ConfigError.Proto {
|
|
108
|
+
readonly _op: "MissingData"
|
|
109
|
+
readonly path: Array<string>
|
|
110
|
+
readonly message: string
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* @since 2.0.0
|
|
115
|
+
* @category models
|
|
116
|
+
*/
|
|
117
|
+
export interface SourceUnavailable extends ConfigError.Proto {
|
|
118
|
+
readonly _op: "SourceUnavailable"
|
|
119
|
+
readonly path: Array<string>
|
|
120
|
+
readonly message: string
|
|
121
|
+
readonly cause: Cause.Cause<unknown>
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* @since 2.0.0
|
|
126
|
+
* @category models
|
|
127
|
+
*/
|
|
128
|
+
export interface Unsupported extends ConfigError.Proto {
|
|
129
|
+
readonly _op: "Unsupported"
|
|
130
|
+
readonly path: Array<string>
|
|
131
|
+
readonly message: string
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* @since 2.0.0
|
|
136
|
+
* @category models
|
|
137
|
+
*/
|
|
138
|
+
export interface Options {
|
|
139
|
+
readonly pathDelim: string
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* @since 2.0.0
|
|
144
|
+
* @category constructors
|
|
145
|
+
*/
|
|
146
|
+
export const And: (self: ConfigError, that: ConfigError) => ConfigError = internal.And
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* @since 2.0.0
|
|
150
|
+
* @category constructors
|
|
151
|
+
*/
|
|
152
|
+
export const Or: (self: ConfigError, that: ConfigError) => ConfigError = internal.Or
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* @since 2.0.0
|
|
156
|
+
* @category constructors
|
|
157
|
+
*/
|
|
158
|
+
export const MissingData: (path: Array<string>, message: string, options?: Options) => ConfigError =
|
|
159
|
+
internal.MissingData
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* @since 2.0.0
|
|
163
|
+
* @category constructors
|
|
164
|
+
*/
|
|
165
|
+
export const InvalidData: (path: Array<string>, message: string, options?: Options) => ConfigError =
|
|
166
|
+
internal.InvalidData
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* @since 2.0.0
|
|
170
|
+
* @category constructors
|
|
171
|
+
*/
|
|
172
|
+
export const SourceUnavailable: (
|
|
173
|
+
path: Array<string>,
|
|
174
|
+
message: string,
|
|
175
|
+
cause: Cause.Cause<unknown>,
|
|
176
|
+
options?: Options
|
|
177
|
+
) => ConfigError = internal.SourceUnavailable
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* @since 2.0.0
|
|
181
|
+
* @category constructors
|
|
182
|
+
*/
|
|
183
|
+
export const Unsupported: (path: Array<string>, message: string, options?: Options) => ConfigError =
|
|
184
|
+
internal.Unsupported
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* Returns `true` if the specified value is a `ConfigError`, `false` otherwise.
|
|
188
|
+
*
|
|
189
|
+
* @since 2.0.0
|
|
190
|
+
* @category refinements
|
|
191
|
+
*/
|
|
192
|
+
export const isConfigError: (u: unknown) => u is ConfigError = internal.isConfigError
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* Returns `true` if the specified `ConfigError` is an `And`, `false` otherwise.
|
|
196
|
+
*
|
|
197
|
+
* @since 2.0.0
|
|
198
|
+
* @category refinements
|
|
199
|
+
*/
|
|
200
|
+
export const isAnd: (self: ConfigError) => self is And = internal.isAnd
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* Returns `true` if the specified `ConfigError` is an `Or`, `false` otherwise.
|
|
204
|
+
*
|
|
205
|
+
* @since 2.0.0
|
|
206
|
+
* @category refinements
|
|
207
|
+
*/
|
|
208
|
+
export const isOr: (self: ConfigError) => self is Or = internal.isOr
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* Returns `true` if the specified `ConfigError` is an `InvalidData`, `false`
|
|
212
|
+
* otherwise.
|
|
213
|
+
*
|
|
214
|
+
* @since 2.0.0
|
|
215
|
+
* @category refinements
|
|
216
|
+
*/
|
|
217
|
+
export const isInvalidData: (self: ConfigError) => self is InvalidData = internal.isInvalidData
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* Returns `true` if the specified `ConfigError` is an `MissingData`, `false`
|
|
221
|
+
* otherwise.
|
|
222
|
+
*
|
|
223
|
+
* @since 2.0.0
|
|
224
|
+
* @category refinements
|
|
225
|
+
*/
|
|
226
|
+
export const isMissingData: (self: ConfigError) => self is MissingData = internal.isMissingData
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* Returns `true` if the specified `ConfigError` contains only `MissingData` errors, `false` otherwise.
|
|
230
|
+
*
|
|
231
|
+
* @since 2.0.0
|
|
232
|
+
* @categer getters
|
|
233
|
+
*/
|
|
234
|
+
export const isMissingDataOnly: (self: ConfigError) => boolean = internal.isMissingDataOnly
|
|
235
|
+
|
|
236
|
+
/**
|
|
237
|
+
* Returns `true` if the specified `ConfigError` is a `SourceUnavailable`,
|
|
238
|
+
* `false` otherwise.
|
|
239
|
+
*
|
|
240
|
+
* @since 2.0.0
|
|
241
|
+
* @category refinements
|
|
242
|
+
*/
|
|
243
|
+
export const isSourceUnavailable: (self: ConfigError) => self is SourceUnavailable = internal.isSourceUnavailable
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
* Returns `true` if the specified `ConfigError` is an `Unsupported`, `false`
|
|
247
|
+
* otherwise.
|
|
248
|
+
*
|
|
249
|
+
* @since 2.0.0
|
|
250
|
+
* @category refinements
|
|
251
|
+
*/
|
|
252
|
+
export const isUnsupported: (self: ConfigError) => self is Unsupported = internal.isUnsupported
|
|
253
|
+
|
|
254
|
+
/**
|
|
255
|
+
* @since 2.0.0
|
|
256
|
+
* @category utils
|
|
257
|
+
*/
|
|
258
|
+
export const prefixed: {
|
|
259
|
+
(prefix: Array<string>): (self: ConfigError) => ConfigError
|
|
260
|
+
(self: ConfigError, prefix: Array<string>): ConfigError
|
|
261
|
+
} = internal.prefixed
|
|
262
|
+
|
|
263
|
+
/**
|
|
264
|
+
* @since 2.0.0
|
|
265
|
+
* @category folding
|
|
266
|
+
*/
|
|
267
|
+
export const reduceWithContext: {
|
|
268
|
+
<C, Z>(context: C, reducer: ConfigErrorReducer<C, Z>): (self: ConfigError) => Z
|
|
269
|
+
<C, Z>(self: ConfigError, context: C, reducer: ConfigErrorReducer<C, Z>): Z
|
|
270
|
+
} = internal.reduceWithContext
|
|
@@ -0,0 +1,333 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 2.0.0
|
|
3
|
+
*/
|
|
4
|
+
import type * as Config from "./Config.js"
|
|
5
|
+
import type * as ConfigError from "./ConfigError.js"
|
|
6
|
+
import type * as PathPatch from "./ConfigProviderPathPatch.js"
|
|
7
|
+
import type * as Context from "./Context.js"
|
|
8
|
+
import type * as Effect from "./Effect.js"
|
|
9
|
+
import type { LazyArg } from "./Function.js"
|
|
10
|
+
import type * as HashSet from "./HashSet.js"
|
|
11
|
+
import * as internal from "./internal/configProvider.js"
|
|
12
|
+
import type { Pipeable } from "./Pipeable.js"
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @since 2.0.0
|
|
16
|
+
* @category symbols
|
|
17
|
+
*/
|
|
18
|
+
export const ConfigProviderTypeId: unique symbol = internal.ConfigProviderTypeId
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* @since 2.0.0
|
|
22
|
+
* @category symbols
|
|
23
|
+
*/
|
|
24
|
+
export type ConfigProviderTypeId = typeof ConfigProviderTypeId
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* @since 2.0.0
|
|
28
|
+
* @category symbols
|
|
29
|
+
*/
|
|
30
|
+
export const FlatConfigProviderTypeId: unique symbol = internal.FlatConfigProviderTypeId
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* @since 2.0.0
|
|
34
|
+
* @category symbols
|
|
35
|
+
*/
|
|
36
|
+
export type FlatConfigProviderTypeId = typeof FlatConfigProviderTypeId
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* A ConfigProvider is a service that provides configuration given a description
|
|
40
|
+
* of the structure of that configuration.
|
|
41
|
+
*
|
|
42
|
+
* @since 2.0.0
|
|
43
|
+
* @category models
|
|
44
|
+
*/
|
|
45
|
+
export interface ConfigProvider extends ConfigProvider.Proto, Pipeable {
|
|
46
|
+
/**
|
|
47
|
+
* Loads the specified configuration, or fails with a config error.
|
|
48
|
+
*/
|
|
49
|
+
load<A>(config: Config.Config<A>): Effect.Effect<A, ConfigError.ConfigError>
|
|
50
|
+
/**
|
|
51
|
+
* Flattens this config provider into a simplified config provider that knows
|
|
52
|
+
* only how to deal with flat (key/value) properties.
|
|
53
|
+
*/
|
|
54
|
+
readonly flattened: ConfigProvider.Flat
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* @since 2.0.0
|
|
59
|
+
*/
|
|
60
|
+
export declare namespace ConfigProvider {
|
|
61
|
+
/**
|
|
62
|
+
* @since 2.0.0
|
|
63
|
+
* @category models
|
|
64
|
+
*/
|
|
65
|
+
export interface Proto {
|
|
66
|
+
readonly [ConfigProviderTypeId]: ConfigProviderTypeId
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* A simplified config provider that knows only how to deal with flat
|
|
71
|
+
* (key/value) properties. Because these providers are common, there is
|
|
72
|
+
* special support for implementing them.
|
|
73
|
+
*
|
|
74
|
+
* @since 2.0.0
|
|
75
|
+
* @category models
|
|
76
|
+
*/
|
|
77
|
+
export interface Flat {
|
|
78
|
+
readonly [FlatConfigProviderTypeId]: FlatConfigProviderTypeId
|
|
79
|
+
readonly patch: PathPatch.PathPatch
|
|
80
|
+
load<A>(
|
|
81
|
+
path: ReadonlyArray<string>,
|
|
82
|
+
config: Config.Config.Primitive<A>,
|
|
83
|
+
split?: boolean
|
|
84
|
+
): Effect.Effect<Array<A>, ConfigError.ConfigError>
|
|
85
|
+
enumerateChildren(
|
|
86
|
+
path: ReadonlyArray<string>
|
|
87
|
+
): Effect.Effect<HashSet.HashSet<string>, ConfigError.ConfigError>
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* @since 2.0.0
|
|
92
|
+
* @category models
|
|
93
|
+
*/
|
|
94
|
+
export interface FromMapConfig {
|
|
95
|
+
readonly pathDelim: string
|
|
96
|
+
readonly seqDelim: string
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* @since 2.0.0
|
|
101
|
+
* @category models
|
|
102
|
+
*/
|
|
103
|
+
export interface FromEnvConfig {
|
|
104
|
+
readonly pathDelim: string
|
|
105
|
+
readonly seqDelim: string
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* @since 1.0.0
|
|
110
|
+
* @category models
|
|
111
|
+
*/
|
|
112
|
+
export type KeyComponent = KeyName | KeyIndex
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* @since 1.0.0
|
|
116
|
+
* @category models
|
|
117
|
+
*/
|
|
118
|
+
export interface KeyName {
|
|
119
|
+
readonly _tag: "KeyName"
|
|
120
|
+
readonly name: string
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* @since 1.0.0
|
|
125
|
+
* @category models
|
|
126
|
+
*/
|
|
127
|
+
export interface KeyIndex {
|
|
128
|
+
readonly _tag: "KeyIndex"
|
|
129
|
+
readonly index: number
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* The service tag for `ConfigProvider`.
|
|
135
|
+
*
|
|
136
|
+
* @since 2.0.0
|
|
137
|
+
* @category context
|
|
138
|
+
*/
|
|
139
|
+
export const ConfigProvider: Context.Tag<ConfigProvider, ConfigProvider> = internal.configProviderTag
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Creates a new config provider.
|
|
143
|
+
*
|
|
144
|
+
* @since 2.0.0
|
|
145
|
+
* @category constructors
|
|
146
|
+
*/
|
|
147
|
+
export const make: (
|
|
148
|
+
options: {
|
|
149
|
+
readonly load: <A>(config: Config.Config<A>) => Effect.Effect<A, ConfigError.ConfigError>
|
|
150
|
+
readonly flattened: ConfigProvider.Flat
|
|
151
|
+
}
|
|
152
|
+
) => ConfigProvider = internal.make
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Creates a new flat config provider.
|
|
156
|
+
*
|
|
157
|
+
* @since 2.0.0
|
|
158
|
+
* @category constructors
|
|
159
|
+
*/
|
|
160
|
+
export const makeFlat: (options: {
|
|
161
|
+
readonly load: <A>(
|
|
162
|
+
path: ReadonlyArray<string>,
|
|
163
|
+
config: Config.Config.Primitive<A>,
|
|
164
|
+
split: boolean
|
|
165
|
+
) => Effect.Effect<Array<A>, ConfigError.ConfigError>
|
|
166
|
+
readonly enumerateChildren: (
|
|
167
|
+
path: ReadonlyArray<string>
|
|
168
|
+
) => Effect.Effect<HashSet.HashSet<string>, ConfigError.ConfigError>
|
|
169
|
+
readonly patch: PathPatch.PathPatch
|
|
170
|
+
}) => ConfigProvider.Flat = internal.makeFlat
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* A config provider that loads configuration from context variables
|
|
174
|
+
*
|
|
175
|
+
* **Options**:
|
|
176
|
+
*
|
|
177
|
+
* - `pathDelim`: The delimiter for the path segments (default: `"_"`).
|
|
178
|
+
* - `seqDelim`: The delimiter for the sequence of values (default: `","`).
|
|
179
|
+
*
|
|
180
|
+
* @since 2.0.0
|
|
181
|
+
* @category constructors
|
|
182
|
+
*/
|
|
183
|
+
export const fromEnv: (options?: Partial<ConfigProvider.FromEnvConfig>) => ConfigProvider = internal.fromEnv
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* Constructs a new `ConfigProvider` from a key/value (flat) provider, where
|
|
187
|
+
* nesting is embedded into the string keys.
|
|
188
|
+
*
|
|
189
|
+
* @since 2.0.0
|
|
190
|
+
* @category constructors
|
|
191
|
+
*/
|
|
192
|
+
export const fromFlat: (flat: ConfigProvider.Flat) => ConfigProvider = internal.fromFlat
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* Constructs a new `ConfigProvider` from a JSON object.
|
|
196
|
+
*
|
|
197
|
+
* @since 2.0.0
|
|
198
|
+
* @category constructors
|
|
199
|
+
*/
|
|
200
|
+
export const fromJson: (json: unknown) => ConfigProvider = internal.fromJson
|
|
201
|
+
|
|
202
|
+
// TODO(4.0): use `_` for nested configs instead of `.` in next major
|
|
203
|
+
/**
|
|
204
|
+
* Constructs a ConfigProvider using a map and the specified delimiter string,
|
|
205
|
+
* which determines how to split the keys in the map into path segments.
|
|
206
|
+
*
|
|
207
|
+
* @since 2.0.0
|
|
208
|
+
* @category constructors
|
|
209
|
+
*/
|
|
210
|
+
export const fromMap: (map: Map<string, string>, config?: Partial<ConfigProvider.FromMapConfig>) => ConfigProvider =
|
|
211
|
+
internal.fromMap
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* Returns a new config provider that will automatically convert all property
|
|
215
|
+
* names to constant case. This can be utilized to adapt the names of
|
|
216
|
+
* configuration properties from the default naming convention of camel case
|
|
217
|
+
* to the naming convention of a config provider.
|
|
218
|
+
*
|
|
219
|
+
* @since 2.0.0
|
|
220
|
+
* @category combinators
|
|
221
|
+
*/
|
|
222
|
+
export const constantCase: (self: ConfigProvider) => ConfigProvider = internal.constantCase
|
|
223
|
+
|
|
224
|
+
/**
|
|
225
|
+
* Returns a new config provider that will automatically tranform all path
|
|
226
|
+
* configuration names with the specified function. This can be utilized to
|
|
227
|
+
* adapt the names of configuration properties from one naming convention to
|
|
228
|
+
* another.
|
|
229
|
+
*
|
|
230
|
+
* @since 2.0.0
|
|
231
|
+
* @category utils
|
|
232
|
+
*/
|
|
233
|
+
export const mapInputPath: {
|
|
234
|
+
(f: (path: string) => string): (self: ConfigProvider) => ConfigProvider
|
|
235
|
+
(self: ConfigProvider, f: (path: string) => string): ConfigProvider
|
|
236
|
+
} = internal.mapInputPath
|
|
237
|
+
|
|
238
|
+
/**
|
|
239
|
+
* Returns a new config provider that will automatically convert all property
|
|
240
|
+
* names to kebab case. This can be utilized to adapt the names of
|
|
241
|
+
* configuration properties from the default naming convention of camel case
|
|
242
|
+
* to the naming convention of a config provider.
|
|
243
|
+
*
|
|
244
|
+
* @since 2.0.0
|
|
245
|
+
* @category combinators
|
|
246
|
+
*/
|
|
247
|
+
export const kebabCase: (self: ConfigProvider) => ConfigProvider = internal.kebabCase
|
|
248
|
+
|
|
249
|
+
/**
|
|
250
|
+
* Returns a new config provider that will automatically convert all property
|
|
251
|
+
* names to lower case. This can be utilized to adapt the names of
|
|
252
|
+
* configuration properties from the default naming convention of camel case
|
|
253
|
+
* to the naming convention of a config provider.
|
|
254
|
+
*
|
|
255
|
+
* @since 2.0.0
|
|
256
|
+
* @category combinators
|
|
257
|
+
*/
|
|
258
|
+
export const lowerCase: (self: ConfigProvider) => ConfigProvider = internal.lowerCase
|
|
259
|
+
|
|
260
|
+
/**
|
|
261
|
+
* Returns a new config provider that will automatically nest all
|
|
262
|
+
* configuration under the specified property name. This can be utilized to
|
|
263
|
+
* aggregate separate configuration sources that are all required to load a
|
|
264
|
+
* single configuration value.
|
|
265
|
+
*
|
|
266
|
+
* @since 2.0.0
|
|
267
|
+
* @category utils
|
|
268
|
+
*/
|
|
269
|
+
export const nested: {
|
|
270
|
+
(name: string): (self: ConfigProvider) => ConfigProvider
|
|
271
|
+
(self: ConfigProvider, name: string): ConfigProvider
|
|
272
|
+
} = internal.nested
|
|
273
|
+
|
|
274
|
+
/**
|
|
275
|
+
* Returns a new config provider that preferentially loads configuration data
|
|
276
|
+
* from this one, but which will fall back to the specified alternate provider
|
|
277
|
+
* if there are any issues loading the configuration from this provider.
|
|
278
|
+
*
|
|
279
|
+
* @since 2.0.0
|
|
280
|
+
* @category utils
|
|
281
|
+
*/
|
|
282
|
+
export const orElse: {
|
|
283
|
+
(that: LazyArg<ConfigProvider>): (self: ConfigProvider) => ConfigProvider
|
|
284
|
+
(self: ConfigProvider, that: LazyArg<ConfigProvider>): ConfigProvider
|
|
285
|
+
} = internal.orElse
|
|
286
|
+
|
|
287
|
+
/**
|
|
288
|
+
* Returns a new config provider that will automatically un-nest all
|
|
289
|
+
* configuration under the specified property name. This can be utilized to
|
|
290
|
+
* de-aggregate separate configuration sources that are all required to load a
|
|
291
|
+
* single configuration value.
|
|
292
|
+
*
|
|
293
|
+
* @since 2.0.0
|
|
294
|
+
* @category utils
|
|
295
|
+
*/
|
|
296
|
+
export const unnested: {
|
|
297
|
+
(name: string): (self: ConfigProvider) => ConfigProvider
|
|
298
|
+
(self: ConfigProvider, name: string): ConfigProvider
|
|
299
|
+
} = internal.unnested
|
|
300
|
+
|
|
301
|
+
/**
|
|
302
|
+
* Returns a new config provider that will automatically convert all property
|
|
303
|
+
* names to upper case. This can be utilized to adapt the names of
|
|
304
|
+
* configuration properties from the default naming convention of camel case
|
|
305
|
+
* to the naming convention of a config provider.
|
|
306
|
+
*
|
|
307
|
+
* @since 2.0.0
|
|
308
|
+
* @category combinators
|
|
309
|
+
*/
|
|
310
|
+
export const snakeCase: (self: ConfigProvider) => ConfigProvider = internal.snakeCase
|
|
311
|
+
|
|
312
|
+
/**
|
|
313
|
+
* Returns a new config provider that will automatically convert all property
|
|
314
|
+
* names to upper case. This can be utilized to adapt the names of
|
|
315
|
+
* configuration properties from the default naming convention of camel case
|
|
316
|
+
* to the naming convention of a config provider.
|
|
317
|
+
*
|
|
318
|
+
* @since 2.0.0
|
|
319
|
+
* @category combinators
|
|
320
|
+
*/
|
|
321
|
+
export const upperCase: (self: ConfigProvider) => ConfigProvider = internal.upperCase
|
|
322
|
+
|
|
323
|
+
/**
|
|
324
|
+
* Returns a new config provider that transforms the config provider with the
|
|
325
|
+
* specified function within the specified path.
|
|
326
|
+
*
|
|
327
|
+
* @since 2.0.0
|
|
328
|
+
* @category combinators
|
|
329
|
+
*/
|
|
330
|
+
export const within: {
|
|
331
|
+
(path: ReadonlyArray<string>, f: (self: ConfigProvider) => ConfigProvider): (self: ConfigProvider) => ConfigProvider
|
|
332
|
+
(self: ConfigProvider, path: ReadonlyArray<string>, f: (self: ConfigProvider) => ConfigProvider): ConfigProvider
|
|
333
|
+
} = internal.within
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 2.0.0
|
|
3
|
+
*/
|
|
4
|
+
import * as internal from "./internal/configProvider/pathPatch.js"
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Represents a description of how to modify the path to a configuration
|
|
8
|
+
* value.
|
|
9
|
+
*
|
|
10
|
+
* @since 2.0.0
|
|
11
|
+
* @category models
|
|
12
|
+
*/
|
|
13
|
+
export type PathPatch = Empty | AndThen | MapName | Nested | Unnested
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @since 2.0.0
|
|
17
|
+
* @category models
|
|
18
|
+
*/
|
|
19
|
+
export interface Empty {
|
|
20
|
+
readonly _tag: "Empty"
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* @since 2.0.0
|
|
25
|
+
* @category models
|
|
26
|
+
*/
|
|
27
|
+
export interface AndThen {
|
|
28
|
+
readonly _tag: "AndThen"
|
|
29
|
+
readonly first: PathPatch
|
|
30
|
+
readonly second: PathPatch
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* @since 2.0.0
|
|
35
|
+
* @category models
|
|
36
|
+
*/
|
|
37
|
+
export interface MapName {
|
|
38
|
+
readonly _tag: "MapName"
|
|
39
|
+
f(string: string): string
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* @since 2.0.0
|
|
44
|
+
* @category models
|
|
45
|
+
*/
|
|
46
|
+
export interface Nested {
|
|
47
|
+
readonly _tag: "Nested"
|
|
48
|
+
readonly name: string
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* @since 2.0.0
|
|
53
|
+
* @category models
|
|
54
|
+
*/
|
|
55
|
+
export interface Unnested {
|
|
56
|
+
readonly _tag: "Unnested"
|
|
57
|
+
readonly name: string
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* @since 2.0.0
|
|
62
|
+
* @category constructors
|
|
63
|
+
*/
|
|
64
|
+
export const empty: PathPatch = internal.empty
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* @since 2.0.0
|
|
68
|
+
* @category constructors
|
|
69
|
+
*/
|
|
70
|
+
export const andThen: {
|
|
71
|
+
(that: PathPatch): (self: PathPatch) => PathPatch
|
|
72
|
+
(self: PathPatch, that: PathPatch): PathPatch
|
|
73
|
+
} = internal.andThen
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* @since 2.0.0
|
|
77
|
+
* @category constructors
|
|
78
|
+
*/
|
|
79
|
+
export const mapName: {
|
|
80
|
+
(f: (string: string) => string): (self: PathPatch) => PathPatch
|
|
81
|
+
(self: PathPatch, f: (string: string) => string): PathPatch
|
|
82
|
+
} = internal.mapName
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* @since 2.0.0
|
|
86
|
+
* @category constructors
|
|
87
|
+
*/
|
|
88
|
+
export const nested: {
|
|
89
|
+
(name: string): (self: PathPatch) => PathPatch
|
|
90
|
+
(self: PathPatch, name: string): PathPatch
|
|
91
|
+
} = internal.nested
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* @since 2.0.0
|
|
95
|
+
* @category constructors
|
|
96
|
+
*/
|
|
97
|
+
export const unnested: {
|
|
98
|
+
(name: string): (self: PathPatch) => PathPatch
|
|
99
|
+
(self: PathPatch, name: string): PathPatch
|
|
100
|
+
} = internal.unnested
|