effect 3.10.18 → 3.11.0
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/Array.js +206 -0
- package/dist/cjs/Array.js.map +1 -1
- package/dist/cjs/BigDecimal.js +181 -24
- package/dist/cjs/BigDecimal.js.map +1 -1
- package/dist/cjs/BigInt.js +54 -0
- package/dist/cjs/BigInt.js.map +1 -1
- package/dist/cjs/Boolean.js +24 -0
- package/dist/cjs/Boolean.js.map +1 -1
- package/dist/cjs/Brand.js +4 -0
- package/dist/cjs/Brand.js.map +1 -1
- package/dist/cjs/Channel.js +44 -4
- package/dist/cjs/Channel.js.map +1 -1
- package/dist/cjs/Chunk.js +8 -0
- package/dist/cjs/Chunk.js.map +1 -1
- package/dist/cjs/Config.js +10 -1
- package/dist/cjs/Config.js.map +1 -1
- package/dist/cjs/Context.js +50 -1
- package/dist/cjs/Context.js.map +1 -1
- package/dist/cjs/Cron.js +81 -67
- package/dist/cjs/Cron.js.map +1 -1
- package/dist/cjs/Data.js +14 -0
- package/dist/cjs/Data.js.map +1 -1
- package/dist/cjs/DateTime.js +178 -664
- package/dist/cjs/DateTime.js.map +1 -1
- package/dist/cjs/Duration.js +2 -0
- package/dist/cjs/Duration.js.map +1 -1
- package/dist/cjs/Effect.js +296 -4
- package/dist/cjs/Effect.js.map +1 -1
- package/dist/cjs/Either.js +38 -2
- package/dist/cjs/Either.js.map +1 -1
- package/dist/cjs/FiberHandle.js +6 -0
- package/dist/cjs/FiberHandle.js.map +1 -1
- package/dist/cjs/FiberMap.js +6 -0
- package/dist/cjs/FiberMap.js.map +1 -1
- package/dist/cjs/FiberSet.js +6 -0
- package/dist/cjs/FiberSet.js.map +1 -1
- package/dist/cjs/Function.js +34 -0
- package/dist/cjs/Function.js.map +1 -1
- package/dist/cjs/GlobalValue.js +2 -0
- package/dist/cjs/GlobalValue.js.map +1 -1
- package/dist/cjs/HashMap.js.map +1 -1
- package/dist/cjs/Inspectable.js +8 -4
- package/dist/cjs/Inspectable.js.map +1 -1
- package/dist/cjs/Iterable.js +18 -0
- package/dist/cjs/Iterable.js.map +1 -1
- package/dist/cjs/JSONSchema.js.map +1 -1
- package/dist/cjs/List.js +4 -0
- package/dist/cjs/List.js.map +1 -1
- package/dist/cjs/Logger.js +26 -0
- package/dist/cjs/Logger.js.map +1 -1
- package/dist/cjs/Mailbox.js +2 -0
- package/dist/cjs/Mailbox.js.map +1 -1
- package/dist/cjs/ManagedRuntime.js +2 -0
- package/dist/cjs/ManagedRuntime.js.map +1 -1
- package/dist/cjs/Metric.js +10 -0
- package/dist/cjs/Metric.js.map +1 -1
- package/dist/cjs/Micro.js +1104 -1069
- package/dist/cjs/Micro.js.map +1 -1
- package/dist/cjs/Number.js +44 -0
- package/dist/cjs/Number.js.map +1 -1
- package/dist/cjs/Option.js +70 -0
- package/dist/cjs/Option.js.map +1 -1
- package/dist/cjs/Order.js +2 -0
- package/dist/cjs/Order.js.map +1 -1
- package/dist/cjs/Ordering.js +4 -0
- package/dist/cjs/Ordering.js.map +1 -1
- package/dist/cjs/Predicate.js +68 -0
- package/dist/cjs/Predicate.js.map +1 -1
- package/dist/cjs/Random.js +4 -0
- package/dist/cjs/Random.js.map +1 -1
- package/dist/cjs/RateLimiter.js +4 -0
- package/dist/cjs/RateLimiter.js.map +1 -1
- package/dist/cjs/RcMap.js +2 -0
- package/dist/cjs/RcMap.js.map +1 -1
- package/dist/cjs/RcRef.js +2 -0
- package/dist/cjs/RcRef.js.map +1 -1
- package/dist/cjs/Record.js +56 -0
- package/dist/cjs/Record.js.map +1 -1
- package/dist/cjs/Redacted.js +8 -0
- package/dist/cjs/Redacted.js.map +1 -1
- package/dist/cjs/RegExp.js +4 -0
- package/dist/cjs/RegExp.js.map +1 -1
- package/dist/cjs/Request.js +4 -0
- package/dist/cjs/Request.js.map +1 -1
- package/dist/cjs/RequestResolver.js +2 -0
- package/dist/cjs/RequestResolver.js.map +1 -1
- package/dist/cjs/Runtime.js +6 -0
- package/dist/cjs/Runtime.js.map +1 -1
- package/dist/cjs/STM.js.map +1 -1
- package/dist/cjs/Schema.js +91 -8
- package/dist/cjs/Schema.js.map +1 -1
- package/dist/cjs/Sink.js +9 -1
- package/dist/cjs/Sink.js.map +1 -1
- package/dist/cjs/Stream.js +179 -7
- package/dist/cjs/Stream.js.map +1 -1
- package/dist/cjs/String.js +62 -0
- package/dist/cjs/String.js.map +1 -1
- package/dist/cjs/Struct.js +12 -0
- package/dist/cjs/Struct.js.map +1 -1
- package/dist/cjs/Symbol.js +2 -0
- package/dist/cjs/Symbol.js.map +1 -1
- package/dist/cjs/Trie.js +56 -0
- package/dist/cjs/Trie.js.map +1 -1
- package/dist/cjs/Tuple.js +18 -0
- package/dist/cjs/Tuple.js.map +1 -1
- package/dist/cjs/Utils.js +7 -1
- package/dist/cjs/Utils.js.map +1 -1
- package/dist/cjs/internal/channel/channelExecutor.js +5 -9
- package/dist/cjs/internal/channel/channelExecutor.js.map +1 -1
- package/dist/cjs/internal/channel.js +156 -130
- package/dist/cjs/internal/channel.js.map +1 -1
- package/dist/cjs/internal/config.js +13 -4
- package/dist/cjs/internal/config.js.map +1 -1
- package/dist/cjs/internal/context.js +46 -3
- package/dist/cjs/internal/context.js.map +1 -1
- package/dist/cjs/internal/dateTime.js +747 -0
- package/dist/cjs/internal/dateTime.js.map +1 -0
- package/dist/cjs/internal/fiberRuntime.js +34 -11
- package/dist/cjs/internal/fiberRuntime.js.map +1 -1
- package/dist/cjs/internal/groupBy.js +9 -3
- package/dist/cjs/internal/groupBy.js.map +1 -1
- package/dist/cjs/internal/layer.js +1 -1
- package/dist/cjs/internal/layer.js.map +1 -1
- package/dist/cjs/internal/mailbox.js +1 -1
- package/dist/cjs/internal/mailbox.js.map +1 -1
- package/dist/cjs/internal/sink.js +25 -21
- package/dist/cjs/internal/sink.js.map +1 -1
- package/dist/cjs/internal/stream.js +70 -71
- package/dist/cjs/internal/stream.js.map +1 -1
- package/dist/cjs/internal/version.js +1 -1
- package/dist/cjs/internal/version.js.map +1 -1
- package/dist/dts/Array.d.ts +534 -0
- package/dist/dts/Array.d.ts.map +1 -1
- package/dist/dts/BigDecimal.d.ts +172 -1
- package/dist/dts/BigDecimal.d.ts.map +1 -1
- package/dist/dts/BigInt.d.ts +114 -0
- package/dist/dts/BigInt.d.ts.map +1 -1
- package/dist/dts/Boolean.d.ts +56 -0
- package/dist/dts/Boolean.d.ts.map +1 -1
- package/dist/dts/Brand.d.ts +6 -0
- package/dist/dts/Brand.d.ts.map +1 -1
- package/dist/dts/Channel.d.ts +66 -5
- package/dist/dts/Channel.d.ts.map +1 -1
- package/dist/dts/Chunk.d.ts +30 -0
- package/dist/dts/Chunk.d.ts.map +1 -1
- package/dist/dts/Config.d.ts +25 -1
- package/dist/dts/Config.d.ts.map +1 -1
- package/dist/dts/Context.d.ts +155 -0
- package/dist/dts/Context.d.ts.map +1 -1
- package/dist/dts/Cron.d.ts +21 -6
- package/dist/dts/Cron.d.ts.map +1 -1
- package/dist/dts/Data.d.ts +26 -0
- package/dist/dts/Data.d.ts.map +1 -1
- package/dist/dts/DateTime.d.ts +192 -49
- package/dist/dts/DateTime.d.ts.map +1 -1
- package/dist/dts/Duration.d.ts +2 -0
- package/dist/dts/Duration.d.ts.map +1 -1
- package/dist/dts/Effect.d.ts +658 -1
- package/dist/dts/Effect.d.ts.map +1 -1
- package/dist/dts/Either.d.ts +84 -2
- package/dist/dts/Either.d.ts.map +1 -1
- package/dist/dts/FiberHandle.d.ts +6 -0
- package/dist/dts/FiberHandle.d.ts.map +1 -1
- package/dist/dts/FiberMap.d.ts +6 -0
- package/dist/dts/FiberMap.d.ts.map +1 -1
- package/dist/dts/FiberSet.d.ts +6 -0
- package/dist/dts/FiberSet.d.ts.map +1 -1
- package/dist/dts/Function.d.ts +50 -0
- package/dist/dts/Function.d.ts.map +1 -1
- package/dist/dts/GlobalValue.d.ts +2 -0
- package/dist/dts/GlobalValue.d.ts.map +1 -1
- package/dist/dts/HashMap.d.ts +6 -0
- package/dist/dts/HashMap.d.ts.map +1 -1
- package/dist/dts/Inspectable.d.ts.map +1 -1
- package/dist/dts/Iterable.d.ts +26 -0
- package/dist/dts/Iterable.d.ts.map +1 -1
- package/dist/dts/JSONSchema.d.ts +1 -0
- package/dist/dts/JSONSchema.d.ts.map +1 -1
- package/dist/dts/List.d.ts +20 -0
- package/dist/dts/List.d.ts.map +1 -1
- package/dist/dts/Logger.d.ts +34 -0
- package/dist/dts/Logger.d.ts.map +1 -1
- package/dist/dts/Mailbox.d.ts +2 -0
- package/dist/dts/Mailbox.d.ts.map +1 -1
- package/dist/dts/ManagedRuntime.d.ts +2 -0
- package/dist/dts/ManagedRuntime.d.ts.map +1 -1
- package/dist/dts/Metric.d.ts +18 -0
- package/dist/dts/Metric.d.ts.map +1 -1
- package/dist/dts/Micro.d.ts +880 -863
- package/dist/dts/Micro.d.ts.map +1 -1
- package/dist/dts/Number.d.ts +104 -0
- package/dist/dts/Number.d.ts.map +1 -1
- package/dist/dts/Option.d.ts +142 -0
- package/dist/dts/Option.d.ts.map +1 -1
- package/dist/dts/Order.d.ts +2 -0
- package/dist/dts/Order.d.ts.map +1 -1
- package/dist/dts/Ordering.d.ts +8 -0
- package/dist/dts/Ordering.d.ts.map +1 -1
- package/dist/dts/Predicate.d.ts +104 -0
- package/dist/dts/Predicate.d.ts.map +1 -1
- package/dist/dts/Random.d.ts +4 -0
- package/dist/dts/Random.d.ts.map +1 -1
- package/dist/dts/RateLimiter.d.ts +4 -0
- package/dist/dts/RateLimiter.d.ts.map +1 -1
- package/dist/dts/RcMap.d.ts +6 -0
- package/dist/dts/RcMap.d.ts.map +1 -1
- package/dist/dts/RcRef.d.ts +2 -0
- package/dist/dts/RcRef.d.ts.map +1 -1
- package/dist/dts/Record.d.ts +136 -0
- package/dist/dts/Record.d.ts.map +1 -1
- package/dist/dts/Redacted.d.ts +8 -0
- package/dist/dts/Redacted.d.ts.map +1 -1
- package/dist/dts/RegExp.d.ts +4 -0
- package/dist/dts/RegExp.d.ts.map +1 -1
- package/dist/dts/Request.d.ts +4 -0
- package/dist/dts/Request.d.ts.map +1 -1
- package/dist/dts/RequestResolver.d.ts +6 -0
- package/dist/dts/RequestResolver.d.ts.map +1 -1
- package/dist/dts/Runtime.d.ts +18 -0
- package/dist/dts/Runtime.d.ts.map +1 -1
- package/dist/dts/STM.d.ts +2 -0
- package/dist/dts/STM.d.ts.map +1 -1
- package/dist/dts/Schema.d.ts +90 -0
- package/dist/dts/Schema.d.ts.map +1 -1
- package/dist/dts/Sink.d.ts +8 -0
- package/dist/dts/Sink.d.ts.map +1 -1
- package/dist/dts/Stream.d.ts +394 -32
- package/dist/dts/Stream.d.ts.map +1 -1
- package/dist/dts/String.d.ts +94 -0
- package/dist/dts/String.d.ts.map +1 -1
- package/dist/dts/Struct.d.ts +24 -0
- package/dist/dts/Struct.d.ts.map +1 -1
- package/dist/dts/Symbol.d.ts +2 -0
- package/dist/dts/Symbol.d.ts.map +1 -1
- package/dist/dts/Trie.d.ts +132 -0
- package/dist/dts/Trie.d.ts.map +1 -1
- package/dist/dts/Tuple.d.ts +42 -0
- package/dist/dts/Tuple.d.ts.map +1 -1
- package/dist/dts/Types.d.ts +24 -0
- package/dist/dts/Types.d.ts.map +1 -1
- package/dist/dts/Utils.d.ts +4 -0
- package/dist/dts/Utils.d.ts.map +1 -1
- package/dist/dts/internal/context.d.ts +1 -1
- package/dist/dts/internal/context.d.ts.map +1 -1
- package/dist/dts/internal/dateTime.d.ts +2 -0
- package/dist/dts/internal/dateTime.d.ts.map +1 -0
- package/dist/dts/internal/fiberRuntime.d.ts.map +1 -1
- package/dist/dts/internal/stream.d.ts.map +1 -1
- package/dist/esm/Array.js +208 -0
- package/dist/esm/Array.js.map +1 -1
- package/dist/esm/BigDecimal.js +175 -20
- package/dist/esm/BigDecimal.js.map +1 -1
- package/dist/esm/BigInt.js +54 -0
- package/dist/esm/BigInt.js.map +1 -1
- package/dist/esm/Boolean.js +24 -0
- package/dist/esm/Boolean.js.map +1 -1
- package/dist/esm/Brand.js +4 -0
- package/dist/esm/Brand.js.map +1 -1
- package/dist/esm/Channel.js +42 -2
- package/dist/esm/Channel.js.map +1 -1
- package/dist/esm/Chunk.js +8 -0
- package/dist/esm/Chunk.js.map +1 -1
- package/dist/esm/Config.js +9 -0
- package/dist/esm/Config.js.map +1 -1
- package/dist/esm/Context.js +49 -0
- package/dist/esm/Context.js.map +1 -1
- package/dist/esm/Cron.js +81 -67
- package/dist/esm/Cron.js.map +1 -1
- package/dist/esm/Data.js +16 -0
- package/dist/esm/Data.js.map +1 -1
- package/dist/esm/DateTime.js +176 -627
- package/dist/esm/DateTime.js.map +1 -1
- package/dist/esm/Duration.js +2 -0
- package/dist/esm/Duration.js.map +1 -1
- package/dist/esm/Effect.js +297 -0
- package/dist/esm/Effect.js.map +1 -1
- package/dist/esm/Either.js +40 -2
- package/dist/esm/Either.js.map +1 -1
- package/dist/esm/FiberHandle.js +6 -0
- package/dist/esm/FiberHandle.js.map +1 -1
- package/dist/esm/FiberMap.js +6 -0
- package/dist/esm/FiberMap.js.map +1 -1
- package/dist/esm/FiberSet.js +6 -0
- package/dist/esm/FiberSet.js.map +1 -1
- package/dist/esm/Function.js +34 -0
- package/dist/esm/Function.js.map +1 -1
- package/dist/esm/GlobalValue.js +2 -0
- package/dist/esm/GlobalValue.js.map +1 -1
- package/dist/esm/HashMap.js.map +1 -1
- package/dist/esm/Inspectable.js +8 -4
- package/dist/esm/Inspectable.js.map +1 -1
- package/dist/esm/Iterable.js +18 -0
- package/dist/esm/Iterable.js.map +1 -1
- package/dist/esm/JSONSchema.js.map +1 -1
- package/dist/esm/List.js +4 -0
- package/dist/esm/List.js.map +1 -1
- package/dist/esm/Logger.js +26 -0
- package/dist/esm/Logger.js.map +1 -1
- package/dist/esm/Mailbox.js +2 -0
- package/dist/esm/Mailbox.js.map +1 -1
- package/dist/esm/ManagedRuntime.js +2 -0
- package/dist/esm/ManagedRuntime.js.map +1 -1
- package/dist/esm/Metric.js +10 -0
- package/dist/esm/Metric.js.map +1 -1
- package/dist/esm/Micro.js +1077 -1037
- package/dist/esm/Micro.js.map +1 -1
- package/dist/esm/Number.js +44 -0
- package/dist/esm/Number.js.map +1 -1
- package/dist/esm/Option.js +72 -0
- package/dist/esm/Option.js.map +1 -1
- package/dist/esm/Order.js +2 -0
- package/dist/esm/Order.js.map +1 -1
- package/dist/esm/Ordering.js +4 -0
- package/dist/esm/Ordering.js.map +1 -1
- package/dist/esm/Predicate.js +68 -0
- package/dist/esm/Predicate.js.map +1 -1
- package/dist/esm/Random.js +4 -0
- package/dist/esm/Random.js.map +1 -1
- package/dist/esm/RateLimiter.js +4 -0
- package/dist/esm/RateLimiter.js.map +1 -1
- package/dist/esm/RcMap.js +2 -0
- package/dist/esm/RcMap.js.map +1 -1
- package/dist/esm/RcRef.js +2 -0
- package/dist/esm/RcRef.js.map +1 -1
- package/dist/esm/Record.js +56 -0
- package/dist/esm/Record.js.map +1 -1
- package/dist/esm/Redacted.js +8 -0
- package/dist/esm/Redacted.js.map +1 -1
- package/dist/esm/RegExp.js +4 -0
- package/dist/esm/RegExp.js.map +1 -1
- package/dist/esm/Request.js +4 -0
- package/dist/esm/Request.js.map +1 -1
- package/dist/esm/RequestResolver.js +2 -0
- package/dist/esm/RequestResolver.js.map +1 -1
- package/dist/esm/Runtime.js +6 -0
- package/dist/esm/Runtime.js.map +1 -1
- package/dist/esm/STM.js.map +1 -1
- package/dist/esm/Schema.js +88 -0
- package/dist/esm/Schema.js.map +1 -1
- package/dist/esm/Sink.js +8 -0
- package/dist/esm/Sink.js.map +1 -1
- package/dist/esm/Stream.js +183 -5
- package/dist/esm/Stream.js.map +1 -1
- package/dist/esm/String.js +62 -0
- package/dist/esm/String.js.map +1 -1
- package/dist/esm/Struct.js +12 -0
- package/dist/esm/Struct.js.map +1 -1
- package/dist/esm/Symbol.js +2 -0
- package/dist/esm/Symbol.js.map +1 -1
- package/dist/esm/Trie.js +56 -0
- package/dist/esm/Trie.js.map +1 -1
- package/dist/esm/Tuple.js +22 -0
- package/dist/esm/Tuple.js.map +1 -1
- package/dist/esm/Utils.js +5 -0
- package/dist/esm/Utils.js.map +1 -1
- package/dist/esm/internal/channel/channelExecutor.js +5 -7
- package/dist/esm/internal/channel/channelExecutor.js.map +1 -1
- package/dist/esm/internal/channel.js +152 -129
- package/dist/esm/internal/channel.js.map +1 -1
- package/dist/esm/internal/config.js +11 -3
- package/dist/esm/internal/config.js.map +1 -1
- package/dist/esm/internal/context.js +42 -2
- package/dist/esm/internal/context.js.map +1 -1
- package/dist/esm/internal/dateTime.js +704 -0
- package/dist/esm/internal/dateTime.js.map +1 -0
- package/dist/esm/internal/fiberRuntime.js +31 -9
- package/dist/esm/internal/fiberRuntime.js.map +1 -1
- package/dist/esm/internal/groupBy.js +9 -3
- package/dist/esm/internal/groupBy.js.map +1 -1
- package/dist/esm/internal/layer.js +1 -1
- package/dist/esm/internal/layer.js.map +1 -1
- package/dist/esm/internal/mailbox.js +1 -1
- package/dist/esm/internal/mailbox.js.map +1 -1
- package/dist/esm/internal/sink.js +23 -20
- package/dist/esm/internal/sink.js.map +1 -1
- package/dist/esm/internal/stream.js +66 -69
- package/dist/esm/internal/stream.js.map +1 -1
- package/dist/esm/internal/version.js +1 -1
- package/dist/esm/internal/version.js.map +1 -1
- package/package.json +1 -1
- package/src/Array.ts +534 -0
- package/src/BigDecimal.ts +247 -21
- package/src/BigInt.ts +114 -0
- package/src/Boolean.ts +56 -0
- package/src/Brand.ts +6 -0
- package/src/Channel.ts +81 -5
- package/src/Chunk.ts +32 -0
- package/src/Config.ts +26 -1
- package/src/Context.ts +163 -0
- package/src/Cron.ts +91 -68
- package/src/Data.ts +26 -0
- package/src/DateTime.ts +307 -757
- package/src/Duration.ts +2 -0
- package/src/Effect.ts +910 -1
- package/src/Either.ts +84 -2
- package/src/FiberHandle.ts +6 -0
- package/src/FiberMap.ts +6 -0
- package/src/FiberSet.ts +6 -0
- package/src/Function.ts +50 -0
- package/src/GlobalValue.ts +2 -0
- package/src/HashMap.ts +6 -0
- package/src/Inspectable.ts +11 -7
- package/src/Iterable.ts +26 -0
- package/src/JSONSchema.ts +1 -0
- package/src/List.ts +24 -0
- package/src/Logger.ts +34 -0
- package/src/Mailbox.ts +2 -0
- package/src/ManagedRuntime.ts +2 -0
- package/src/Metric.ts +18 -0
- package/src/Micro.ts +2007 -1745
- package/src/Number.ts +104 -0
- package/src/Option.ts +142 -0
- package/src/Order.ts +2 -0
- package/src/Ordering.ts +8 -0
- package/src/Predicate.ts +104 -0
- package/src/Random.ts +4 -0
- package/src/RateLimiter.ts +4 -0
- package/src/RcMap.ts +6 -0
- package/src/RcRef.ts +2 -0
- package/src/Record.ts +136 -0
- package/src/Redacted.ts +8 -0
- package/src/RegExp.ts +4 -0
- package/src/Request.ts +4 -0
- package/src/RequestResolver.ts +6 -0
- package/src/Runtime.ts +18 -0
- package/src/STM.ts +2 -0
- package/src/Schema.ts +124 -0
- package/src/Sink.ts +11 -0
- package/src/Stream.ts +399 -44
- package/src/String.ts +94 -0
- package/src/Struct.ts +24 -0
- package/src/Symbol.ts +2 -0
- package/src/Trie.ts +132 -0
- package/src/Tuple.ts +42 -0
- package/src/Types.ts +24 -0
- package/src/Utils.ts +8 -0
- package/src/internal/channel/channelExecutor.ts +37 -33
- package/src/internal/channel.ts +504 -467
- package/src/internal/config.ts +18 -6
- package/src/internal/context.ts +56 -4
- package/src/internal/dateTime.ts +1126 -0
- package/src/internal/fiberRuntime.ts +35 -16
- package/src/internal/groupBy.ts +13 -22
- package/src/internal/layer.ts +5 -8
- package/src/internal/mailbox.ts +6 -4
- package/src/internal/sink.ts +55 -35
- package/src/internal/stream.ts +299 -299
- package/src/internal/version.ts +1 -1
package/src/Context.ts
CHANGED
|
@@ -45,6 +45,38 @@ export interface Tag<in out Id, in out Value> extends Pipeable, Inspectable {
|
|
|
45
45
|
[Unify.ignoreSymbol]?: TagUnifyIgnore
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
+
const ReferenceTypeId: unique symbol = internal.ReferenceTypeId
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* @since 3.11.0
|
|
52
|
+
* @category symbol
|
|
53
|
+
*/
|
|
54
|
+
export type ReferenceTypeId = typeof ReferenceTypeId
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* @since 3.11.0
|
|
58
|
+
* @category models
|
|
59
|
+
*/
|
|
60
|
+
export interface Reference<in out Id, in out Value> extends Pipeable, Inspectable {
|
|
61
|
+
readonly [ReferenceTypeId]: ReferenceTypeId
|
|
62
|
+
readonly defaultValue: () => Value
|
|
63
|
+
|
|
64
|
+
readonly _op: "Tag"
|
|
65
|
+
readonly Service: Value
|
|
66
|
+
readonly Identifier: Id
|
|
67
|
+
readonly [TagTypeId]: {
|
|
68
|
+
readonly _Service: Types.Invariant<Value>
|
|
69
|
+
readonly _Identifier: Types.Invariant<Id>
|
|
70
|
+
}
|
|
71
|
+
of(self: Value): Value
|
|
72
|
+
context(self: Value): Context<Id>
|
|
73
|
+
readonly stack?: string | undefined
|
|
74
|
+
readonly key: string
|
|
75
|
+
[Unify.typeSymbol]?: unknown
|
|
76
|
+
[Unify.unifySymbol]?: TagUnify<this>
|
|
77
|
+
[Unify.ignoreSymbol]?: TagUnifyIgnore
|
|
78
|
+
}
|
|
79
|
+
|
|
48
80
|
/**
|
|
49
81
|
* @since 2.0.0
|
|
50
82
|
* @category models
|
|
@@ -63,6 +95,14 @@ export interface TagClass<Self, Id, Type> extends Tag<Self, Type> {
|
|
|
63
95
|
new(_: never): TagClassShape<Id, Type>
|
|
64
96
|
}
|
|
65
97
|
|
|
98
|
+
/**
|
|
99
|
+
* @since 3.11.0
|
|
100
|
+
* @category models
|
|
101
|
+
*/
|
|
102
|
+
export interface ReferenceClass<Self, Id, Type> extends Reference<Self, Type> {
|
|
103
|
+
new(_: never): TagClassShape<Id, Type>
|
|
104
|
+
}
|
|
105
|
+
|
|
66
106
|
/**
|
|
67
107
|
* @category models
|
|
68
108
|
* @since 2.0.0
|
|
@@ -101,9 +141,11 @@ export declare namespace Tag {
|
|
|
101
141
|
* @param key - A key that will be used to compare tags.
|
|
102
142
|
*
|
|
103
143
|
* @example
|
|
144
|
+
* ```ts
|
|
104
145
|
* import { Context } from "effect"
|
|
105
146
|
*
|
|
106
147
|
* assert.strictEqual(Context.GenericTag("PORT").key === Context.GenericTag("PORT").key, true)
|
|
148
|
+
* ```
|
|
107
149
|
*
|
|
108
150
|
* @since 2.0.0
|
|
109
151
|
* @category constructors
|
|
@@ -148,9 +190,11 @@ export const unsafeMake: <Services>(unsafeMap: Map<string, any>) => Context<Serv
|
|
|
148
190
|
* @param input - The value to be checked if it is a `Context`.
|
|
149
191
|
*
|
|
150
192
|
* @example
|
|
193
|
+
* ```ts
|
|
151
194
|
* import { Context } from "effect"
|
|
152
195
|
*
|
|
153
196
|
* assert.strictEqual(Context.isContext(Context.empty()), true)
|
|
197
|
+
* ```
|
|
154
198
|
*
|
|
155
199
|
* @since 2.0.0
|
|
156
200
|
* @category guards
|
|
@@ -163,22 +207,36 @@ export const isContext: (input: unknown) => input is Context<never> = internal.i
|
|
|
163
207
|
* @param input - The value to be checked if it is a `Tag`.
|
|
164
208
|
*
|
|
165
209
|
* @example
|
|
210
|
+
* ```ts
|
|
166
211
|
* import { Context } from "effect"
|
|
167
212
|
*
|
|
168
213
|
* assert.strictEqual(Context.isTag(Context.GenericTag("Tag")), true)
|
|
214
|
+
* ```
|
|
169
215
|
*
|
|
170
216
|
* @since 2.0.0
|
|
171
217
|
* @category guards
|
|
172
218
|
*/
|
|
173
219
|
export const isTag: (input: unknown) => input is Tag<any, any> = internal.isTag
|
|
174
220
|
|
|
221
|
+
/**
|
|
222
|
+
* Checks if the provided argument is a `Reference`.
|
|
223
|
+
*
|
|
224
|
+
* @param input - The value to be checked if it is a `Reference`.
|
|
225
|
+
* @since 3.11.0
|
|
226
|
+
* @category guards
|
|
227
|
+
* @experimental
|
|
228
|
+
*/
|
|
229
|
+
export const isReference: (u: unknown) => u is Reference<any, any> = internal.isReference
|
|
230
|
+
|
|
175
231
|
/**
|
|
176
232
|
* Returns an empty `Context`.
|
|
177
233
|
*
|
|
178
234
|
* @example
|
|
235
|
+
* ```ts
|
|
179
236
|
* import { Context } from "effect"
|
|
180
237
|
*
|
|
181
238
|
* assert.strictEqual(Context.isContext(Context.empty()), true)
|
|
239
|
+
* ```
|
|
182
240
|
*
|
|
183
241
|
* @since 2.0.0
|
|
184
242
|
* @category constructors
|
|
@@ -189,6 +247,7 @@ export const empty: () => Context<never> = internal.empty
|
|
|
189
247
|
* Creates a new `Context` with a single service associated to the tag.
|
|
190
248
|
*
|
|
191
249
|
* @example
|
|
250
|
+
* ```ts
|
|
192
251
|
* import { Context } from "effect"
|
|
193
252
|
*
|
|
194
253
|
* const Port = Context.GenericTag<{ PORT: number }>("Port")
|
|
@@ -196,6 +255,7 @@ export const empty: () => Context<never> = internal.empty
|
|
|
196
255
|
* const Services = Context.make(Port, { PORT: 8080 })
|
|
197
256
|
*
|
|
198
257
|
* assert.deepStrictEqual(Context.get(Services, Port), { PORT: 8080 })
|
|
258
|
+
* ```
|
|
199
259
|
*
|
|
200
260
|
* @since 2.0.0
|
|
201
261
|
* @category constructors
|
|
@@ -207,6 +267,7 @@ export const make: <T extends Tag<any, any>>(tag: T, service: Tag.Service<T>) =>
|
|
|
207
267
|
* Adds a service to a given `Context`.
|
|
208
268
|
*
|
|
209
269
|
* @example
|
|
270
|
+
* ```ts
|
|
210
271
|
* import { Context, pipe } from "effect"
|
|
211
272
|
*
|
|
212
273
|
* const Port = Context.GenericTag<{ PORT: number }>("Port")
|
|
@@ -221,6 +282,7 @@ export const make: <T extends Tag<any, any>>(tag: T, service: Tag.Service<T>) =>
|
|
|
221
282
|
*
|
|
222
283
|
* assert.deepStrictEqual(Context.get(Services, Port), { PORT: 8080 })
|
|
223
284
|
* assert.deepStrictEqual(Context.get(Services, Timeout), { TIMEOUT: 5000 })
|
|
285
|
+
* ```
|
|
224
286
|
*
|
|
225
287
|
* @since 2.0.0
|
|
226
288
|
*/
|
|
@@ -229,6 +291,7 @@ export const add: {
|
|
|
229
291
|
* Adds a service to a given `Context`.
|
|
230
292
|
*
|
|
231
293
|
* @example
|
|
294
|
+
* ```ts
|
|
232
295
|
* import { Context, pipe } from "effect"
|
|
233
296
|
*
|
|
234
297
|
* const Port = Context.GenericTag<{ PORT: number }>("Port")
|
|
@@ -243,6 +306,7 @@ export const add: {
|
|
|
243
306
|
*
|
|
244
307
|
* assert.deepStrictEqual(Context.get(Services, Port), { PORT: 8080 })
|
|
245
308
|
* assert.deepStrictEqual(Context.get(Services, Timeout), { TIMEOUT: 5000 })
|
|
309
|
+
* ```
|
|
246
310
|
*
|
|
247
311
|
* @since 2.0.0
|
|
248
312
|
*/
|
|
@@ -254,6 +318,7 @@ export const add: {
|
|
|
254
318
|
* Adds a service to a given `Context`.
|
|
255
319
|
*
|
|
256
320
|
* @example
|
|
321
|
+
* ```ts
|
|
257
322
|
* import { Context, pipe } from "effect"
|
|
258
323
|
*
|
|
259
324
|
* const Port = Context.GenericTag<{ PORT: number }>("Port")
|
|
@@ -268,6 +333,7 @@ export const add: {
|
|
|
268
333
|
*
|
|
269
334
|
* assert.deepStrictEqual(Context.get(Services, Port), { PORT: 8080 })
|
|
270
335
|
* assert.deepStrictEqual(Context.get(Services, Timeout), { TIMEOUT: 5000 })
|
|
336
|
+
* ```
|
|
271
337
|
*
|
|
272
338
|
* @since 2.0.0
|
|
273
339
|
*/
|
|
@@ -285,6 +351,7 @@ export const add: {
|
|
|
285
351
|
* @param tag - The `Tag` of the service to retrieve.
|
|
286
352
|
*
|
|
287
353
|
* @example
|
|
354
|
+
* ```ts
|
|
288
355
|
* import { pipe, Context } from "effect"
|
|
289
356
|
*
|
|
290
357
|
* const Port = Context.GenericTag<{ PORT: number }>("Port")
|
|
@@ -296,6 +363,7 @@ export const add: {
|
|
|
296
363
|
* )
|
|
297
364
|
*
|
|
298
365
|
* assert.deepStrictEqual(Context.get(Services, Timeout), { TIMEOUT: 5000 })
|
|
366
|
+
* ```
|
|
299
367
|
*
|
|
300
368
|
* @since 2.0.0
|
|
301
369
|
* @category getters
|
|
@@ -308,6 +376,32 @@ export const get: {
|
|
|
308
376
|
* @param tag - The `Tag` of the service to retrieve.
|
|
309
377
|
*
|
|
310
378
|
* @example
|
|
379
|
+
* ```ts
|
|
380
|
+
* import { pipe, Context } from "effect"
|
|
381
|
+
*
|
|
382
|
+
* const Port = Context.GenericTag<{ PORT: number }>("Port")
|
|
383
|
+
* const Timeout = Context.GenericTag<{ TIMEOUT: number }>("Timeout")
|
|
384
|
+
*
|
|
385
|
+
* const Services = pipe(
|
|
386
|
+
* Context.make(Port, { PORT: 8080 }),
|
|
387
|
+
* Context.add(Timeout, { TIMEOUT: 5000 })
|
|
388
|
+
* )
|
|
389
|
+
*
|
|
390
|
+
* assert.deepStrictEqual(Context.get(Services, Timeout), { TIMEOUT: 5000 })
|
|
391
|
+
* ```
|
|
392
|
+
*
|
|
393
|
+
* @since 2.0.0
|
|
394
|
+
* @category getters
|
|
395
|
+
*/
|
|
396
|
+
<I, S>(tag: Reference<I, S>): <Services>(self: Context<Services>) => S
|
|
397
|
+
/**
|
|
398
|
+
* Get a service from the context that corresponds to the given tag.
|
|
399
|
+
*
|
|
400
|
+
* @param self - The `Context` to search for the service.
|
|
401
|
+
* @param tag - The `Tag` of the service to retrieve.
|
|
402
|
+
*
|
|
403
|
+
* @example
|
|
404
|
+
* ```ts
|
|
311
405
|
* import { pipe, Context } from "effect"
|
|
312
406
|
*
|
|
313
407
|
* const Port = Context.GenericTag<{ PORT: number }>("Port")
|
|
@@ -319,6 +413,7 @@ export const get: {
|
|
|
319
413
|
* )
|
|
320
414
|
*
|
|
321
415
|
* assert.deepStrictEqual(Context.get(Services, Timeout), { TIMEOUT: 5000 })
|
|
416
|
+
* ```
|
|
322
417
|
*
|
|
323
418
|
* @since 2.0.0
|
|
324
419
|
* @category getters
|
|
@@ -331,6 +426,7 @@ export const get: {
|
|
|
331
426
|
* @param tag - The `Tag` of the service to retrieve.
|
|
332
427
|
*
|
|
333
428
|
* @example
|
|
429
|
+
* ```ts
|
|
334
430
|
* import { pipe, Context } from "effect"
|
|
335
431
|
*
|
|
336
432
|
* const Port = Context.GenericTag<{ PORT: number }>("Port")
|
|
@@ -342,6 +438,32 @@ export const get: {
|
|
|
342
438
|
* )
|
|
343
439
|
*
|
|
344
440
|
* assert.deepStrictEqual(Context.get(Services, Timeout), { TIMEOUT: 5000 })
|
|
441
|
+
* ```
|
|
442
|
+
*
|
|
443
|
+
* @since 2.0.0
|
|
444
|
+
* @category getters
|
|
445
|
+
*/
|
|
446
|
+
<Services, I, S>(self: Context<Services>, tag: Reference<I, S>): S
|
|
447
|
+
/**
|
|
448
|
+
* Get a service from the context that corresponds to the given tag.
|
|
449
|
+
*
|
|
450
|
+
* @param self - The `Context` to search for the service.
|
|
451
|
+
* @param tag - The `Tag` of the service to retrieve.
|
|
452
|
+
*
|
|
453
|
+
* @example
|
|
454
|
+
* ```ts
|
|
455
|
+
* import { pipe, Context } from "effect"
|
|
456
|
+
*
|
|
457
|
+
* const Port = Context.GenericTag<{ PORT: number }>("Port")
|
|
458
|
+
* const Timeout = Context.GenericTag<{ TIMEOUT: number }>("Timeout")
|
|
459
|
+
*
|
|
460
|
+
* const Services = pipe(
|
|
461
|
+
* Context.make(Port, { PORT: 8080 }),
|
|
462
|
+
* Context.add(Timeout, { TIMEOUT: 5000 })
|
|
463
|
+
* )
|
|
464
|
+
*
|
|
465
|
+
* assert.deepStrictEqual(Context.get(Services, Timeout), { TIMEOUT: 5000 })
|
|
466
|
+
* ```
|
|
345
467
|
*
|
|
346
468
|
* @since 2.0.0
|
|
347
469
|
* @category getters
|
|
@@ -385,6 +507,7 @@ export const getOrElse: {
|
|
|
385
507
|
* @param tag - The `Tag` of the service to retrieve.
|
|
386
508
|
*
|
|
387
509
|
* @example
|
|
510
|
+
* ```ts
|
|
388
511
|
* import { Context } from "effect"
|
|
389
512
|
*
|
|
390
513
|
* const Port = Context.GenericTag<{ PORT: number }>("Port")
|
|
@@ -394,6 +517,7 @@ export const getOrElse: {
|
|
|
394
517
|
*
|
|
395
518
|
* assert.deepStrictEqual(Context.unsafeGet(Services, Port), { PORT: 8080 })
|
|
396
519
|
* assert.throws(() => Context.unsafeGet(Services, Timeout))
|
|
520
|
+
* ```
|
|
397
521
|
*
|
|
398
522
|
* @since 2.0.0
|
|
399
523
|
* @category unsafe
|
|
@@ -409,6 +533,7 @@ export const unsafeGet: {
|
|
|
409
533
|
* @param tag - The `Tag` of the service to retrieve.
|
|
410
534
|
*
|
|
411
535
|
* @example
|
|
536
|
+
* ```ts
|
|
412
537
|
* import { Context } from "effect"
|
|
413
538
|
*
|
|
414
539
|
* const Port = Context.GenericTag<{ PORT: number }>("Port")
|
|
@@ -418,6 +543,7 @@ export const unsafeGet: {
|
|
|
418
543
|
*
|
|
419
544
|
* assert.deepStrictEqual(Context.unsafeGet(Services, Port), { PORT: 8080 })
|
|
420
545
|
* assert.throws(() => Context.unsafeGet(Services, Timeout))
|
|
546
|
+
* ```
|
|
421
547
|
*
|
|
422
548
|
* @since 2.0.0
|
|
423
549
|
* @category unsafe
|
|
@@ -433,6 +559,7 @@ export const unsafeGet: {
|
|
|
433
559
|
* @param tag - The `Tag` of the service to retrieve.
|
|
434
560
|
*
|
|
435
561
|
* @example
|
|
562
|
+
* ```ts
|
|
436
563
|
* import { Context } from "effect"
|
|
437
564
|
*
|
|
438
565
|
* const Port = Context.GenericTag<{ PORT: number }>("Port")
|
|
@@ -442,6 +569,7 @@ export const unsafeGet: {
|
|
|
442
569
|
*
|
|
443
570
|
* assert.deepStrictEqual(Context.unsafeGet(Services, Port), { PORT: 8080 })
|
|
444
571
|
* assert.throws(() => Context.unsafeGet(Services, Timeout))
|
|
572
|
+
* ```
|
|
445
573
|
*
|
|
446
574
|
* @since 2.0.0
|
|
447
575
|
* @category unsafe
|
|
@@ -457,6 +585,7 @@ export const unsafeGet: {
|
|
|
457
585
|
* @param tag - The `Tag` of the service to retrieve.
|
|
458
586
|
*
|
|
459
587
|
* @example
|
|
588
|
+
* ```ts
|
|
460
589
|
* import { Context, Option } from "effect"
|
|
461
590
|
*
|
|
462
591
|
* const Port = Context.GenericTag<{ PORT: number }>("Port")
|
|
@@ -466,6 +595,7 @@ export const unsafeGet: {
|
|
|
466
595
|
*
|
|
467
596
|
* assert.deepStrictEqual(Context.getOption(Services, Port), Option.some({ PORT: 8080 }))
|
|
468
597
|
* assert.deepStrictEqual(Context.getOption(Services, Timeout), Option.none())
|
|
598
|
+
* ```
|
|
469
599
|
*
|
|
470
600
|
* @since 2.0.0
|
|
471
601
|
* @category getters
|
|
@@ -479,6 +609,7 @@ export const getOption: {
|
|
|
479
609
|
* @param tag - The `Tag` of the service to retrieve.
|
|
480
610
|
*
|
|
481
611
|
* @example
|
|
612
|
+
* ```ts
|
|
482
613
|
* import { Context, Option } from "effect"
|
|
483
614
|
*
|
|
484
615
|
* const Port = Context.GenericTag<{ PORT: number }>("Port")
|
|
@@ -488,6 +619,7 @@ export const getOption: {
|
|
|
488
619
|
*
|
|
489
620
|
* assert.deepStrictEqual(Context.getOption(Services, Port), Option.some({ PORT: 8080 }))
|
|
490
621
|
* assert.deepStrictEqual(Context.getOption(Services, Timeout), Option.none())
|
|
622
|
+
* ```
|
|
491
623
|
*
|
|
492
624
|
* @since 2.0.0
|
|
493
625
|
* @category getters
|
|
@@ -501,6 +633,7 @@ export const getOption: {
|
|
|
501
633
|
* @param tag - The `Tag` of the service to retrieve.
|
|
502
634
|
*
|
|
503
635
|
* @example
|
|
636
|
+
* ```ts
|
|
504
637
|
* import { Context, Option } from "effect"
|
|
505
638
|
*
|
|
506
639
|
* const Port = Context.GenericTag<{ PORT: number }>("Port")
|
|
@@ -510,6 +643,7 @@ export const getOption: {
|
|
|
510
643
|
*
|
|
511
644
|
* assert.deepStrictEqual(Context.getOption(Services, Port), Option.some({ PORT: 8080 }))
|
|
512
645
|
* assert.deepStrictEqual(Context.getOption(Services, Timeout), Option.none())
|
|
646
|
+
* ```
|
|
513
647
|
*
|
|
514
648
|
* @since 2.0.0
|
|
515
649
|
* @category getters
|
|
@@ -524,6 +658,7 @@ export const getOption: {
|
|
|
524
658
|
* @param that - The second `Context` to merge.
|
|
525
659
|
*
|
|
526
660
|
* @example
|
|
661
|
+
* ```ts
|
|
527
662
|
* import { Context } from "effect"
|
|
528
663
|
*
|
|
529
664
|
* const Port = Context.GenericTag<{ PORT: number }>("Port")
|
|
@@ -536,6 +671,7 @@ export const getOption: {
|
|
|
536
671
|
*
|
|
537
672
|
* assert.deepStrictEqual(Context.get(Services, Port), { PORT: 8080 })
|
|
538
673
|
* assert.deepStrictEqual(Context.get(Services, Timeout), { TIMEOUT: 5000 })
|
|
674
|
+
* ```
|
|
539
675
|
*
|
|
540
676
|
* @since 2.0.0
|
|
541
677
|
*/
|
|
@@ -547,6 +683,7 @@ export const merge: {
|
|
|
547
683
|
* @param that - The second `Context` to merge.
|
|
548
684
|
*
|
|
549
685
|
* @example
|
|
686
|
+
* ```ts
|
|
550
687
|
* import { Context } from "effect"
|
|
551
688
|
*
|
|
552
689
|
* const Port = Context.GenericTag<{ PORT: number }>("Port")
|
|
@@ -559,6 +696,7 @@ export const merge: {
|
|
|
559
696
|
*
|
|
560
697
|
* assert.deepStrictEqual(Context.get(Services, Port), { PORT: 8080 })
|
|
561
698
|
* assert.deepStrictEqual(Context.get(Services, Timeout), { TIMEOUT: 5000 })
|
|
699
|
+
* ```
|
|
562
700
|
*
|
|
563
701
|
* @since 2.0.0
|
|
564
702
|
*/
|
|
@@ -570,6 +708,7 @@ export const merge: {
|
|
|
570
708
|
* @param that - The second `Context` to merge.
|
|
571
709
|
*
|
|
572
710
|
* @example
|
|
711
|
+
* ```ts
|
|
573
712
|
* import { Context } from "effect"
|
|
574
713
|
*
|
|
575
714
|
* const Port = Context.GenericTag<{ PORT: number }>("Port")
|
|
@@ -582,6 +721,7 @@ export const merge: {
|
|
|
582
721
|
*
|
|
583
722
|
* assert.deepStrictEqual(Context.get(Services, Port), { PORT: 8080 })
|
|
584
723
|
* assert.deepStrictEqual(Context.get(Services, Timeout), { TIMEOUT: 5000 })
|
|
724
|
+
* ```
|
|
585
725
|
*
|
|
586
726
|
* @since 2.0.0
|
|
587
727
|
*/
|
|
@@ -595,6 +735,7 @@ export const merge: {
|
|
|
595
735
|
* @param tags - The list of `Tag`s to be included in the new `Context`.
|
|
596
736
|
*
|
|
597
737
|
* @example
|
|
738
|
+
* ```ts
|
|
598
739
|
* import { pipe, Context, Option } from "effect"
|
|
599
740
|
*
|
|
600
741
|
* const Port = Context.GenericTag<{ PORT: number }>("Port")
|
|
@@ -609,6 +750,7 @@ export const merge: {
|
|
|
609
750
|
*
|
|
610
751
|
* assert.deepStrictEqual(Context.getOption(Services, Port), Option.some({ PORT: 8080 }))
|
|
611
752
|
* assert.deepStrictEqual(Context.getOption(Services, Timeout), Option.none())
|
|
753
|
+
* ```
|
|
612
754
|
*
|
|
613
755
|
* @since 2.0.0
|
|
614
756
|
*/
|
|
@@ -626,6 +768,7 @@ export const omit: <Services, S extends Array<ValidTagsById<Services>>>(
|
|
|
626
768
|
|
|
627
769
|
/**
|
|
628
770
|
* @example
|
|
771
|
+
* ```ts
|
|
629
772
|
* import { Context, Layer } from "effect"
|
|
630
773
|
*
|
|
631
774
|
* class MyTag extends Context.Tag("MyTag")<
|
|
@@ -634,8 +777,28 @@ export const omit: <Services, S extends Array<ValidTagsById<Services>>>(
|
|
|
634
777
|
* >() {
|
|
635
778
|
* static Live = Layer.succeed(this, { myNum: 108 })
|
|
636
779
|
* }
|
|
780
|
+
* ```
|
|
637
781
|
*
|
|
638
782
|
* @since 2.0.0
|
|
639
783
|
* @category constructors
|
|
640
784
|
*/
|
|
641
785
|
export const Tag: <const Id extends string>(id: Id) => <Self, Shape>() => TagClass<Self, Id, Shape> = internal.Tag
|
|
786
|
+
|
|
787
|
+
/**
|
|
788
|
+
* @example
|
|
789
|
+
* import { Context, Layer } from "effect"
|
|
790
|
+
*
|
|
791
|
+
* class MyTag extends Context.Reference<MyTag>()("MyTag", {
|
|
792
|
+
* defaultValue: () => ({ myNum: 108 })
|
|
793
|
+
* }) {
|
|
794
|
+
* static Live = Layer.succeed(this, { myNum: 108 })
|
|
795
|
+
* }
|
|
796
|
+
*
|
|
797
|
+
* @since 3.11.0
|
|
798
|
+
* @category constructors
|
|
799
|
+
* @experimental
|
|
800
|
+
*/
|
|
801
|
+
export const Reference: <Self>() => <const Id extends string, Service>(
|
|
802
|
+
id: Id,
|
|
803
|
+
options: { readonly defaultValue: () => Service }
|
|
804
|
+
) => ReferenceClass<Self, Id, Service> = internal.Reference
|