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/Cron.ts
CHANGED
|
@@ -2,13 +2,16 @@
|
|
|
2
2
|
* @since 2.0.0
|
|
3
3
|
*/
|
|
4
4
|
import * as Arr from "./Array.js"
|
|
5
|
+
import type * as DateTime from "./DateTime.js"
|
|
5
6
|
import * as Either from "./Either.js"
|
|
6
7
|
import * as Equal from "./Equal.js"
|
|
7
8
|
import * as equivalence from "./Equivalence.js"
|
|
8
9
|
import { dual, pipe } from "./Function.js"
|
|
9
10
|
import * as Hash from "./Hash.js"
|
|
10
11
|
import { format, type Inspectable, NodeInspectSymbol } from "./Inspectable.js"
|
|
12
|
+
import * as dateTime from "./internal/dateTime.js"
|
|
11
13
|
import * as N from "./Number.js"
|
|
14
|
+
import * as Option from "./Option.js"
|
|
12
15
|
import { type Pipeable, pipeArguments } from "./Pipeable.js"
|
|
13
16
|
import { hasProperty } from "./Predicate.js"
|
|
14
17
|
import * as String from "./String.js"
|
|
@@ -32,6 +35,7 @@ export type TypeId = typeof TypeId
|
|
|
32
35
|
*/
|
|
33
36
|
export interface Cron extends Pipeable, Equal.Equal, Inspectable {
|
|
34
37
|
readonly [TypeId]: TypeId
|
|
38
|
+
readonly tz: Option.Option<DateTime.TimeZone>
|
|
35
39
|
readonly minutes: ReadonlySet<number>
|
|
36
40
|
readonly hours: ReadonlySet<number>
|
|
37
41
|
readonly days: ReadonlySet<number>
|
|
@@ -39,14 +43,15 @@ export interface Cron extends Pipeable, Equal.Equal, Inspectable {
|
|
|
39
43
|
readonly weekdays: ReadonlySet<number>
|
|
40
44
|
}
|
|
41
45
|
|
|
42
|
-
const CronProto: Omit<Cron, "minutes" | "hours" | "days" | "months" | "weekdays"> = {
|
|
46
|
+
const CronProto: Omit<Cron, "minutes" | "hours" | "days" | "months" | "weekdays" | "tz"> = {
|
|
43
47
|
[TypeId]: TypeId,
|
|
44
48
|
[Equal.symbol](this: Cron, that: unknown) {
|
|
45
49
|
return isCron(that) && equals(this, that)
|
|
46
50
|
},
|
|
47
51
|
[Hash.symbol](this: Cron): number {
|
|
48
52
|
return pipe(
|
|
49
|
-
Hash.
|
|
53
|
+
Hash.hash(this.tz),
|
|
54
|
+
Hash.combine(Hash.array(Arr.fromIterable(this.minutes))),
|
|
50
55
|
Hash.combine(Hash.array(Arr.fromIterable(this.hours))),
|
|
51
56
|
Hash.combine(Hash.array(Arr.fromIterable(this.days))),
|
|
52
57
|
Hash.combine(Hash.array(Arr.fromIterable(this.months))),
|
|
@@ -60,6 +65,7 @@ const CronProto: Omit<Cron, "minutes" | "hours" | "days" | "months" | "weekdays"
|
|
|
60
65
|
toJSON(this: Cron) {
|
|
61
66
|
return {
|
|
62
67
|
_id: "Cron",
|
|
68
|
+
tz: this.tz,
|
|
63
69
|
minutes: Arr.fromIterable(this.minutes),
|
|
64
70
|
hours: Arr.fromIterable(this.hours),
|
|
65
71
|
days: Arr.fromIterable(this.days),
|
|
@@ -86,7 +92,7 @@ const CronProto: Omit<Cron, "minutes" | "hours" | "days" | "months" | "weekdays"
|
|
|
86
92
|
export const isCron = (u: unknown): u is Cron => hasProperty(u, TypeId)
|
|
87
93
|
|
|
88
94
|
/**
|
|
89
|
-
* Creates a `Cron` instance
|
|
95
|
+
* Creates a `Cron` instance.
|
|
90
96
|
*
|
|
91
97
|
* @param constraints - The cron constraints.
|
|
92
98
|
*
|
|
@@ -98,6 +104,7 @@ export const make = ({
|
|
|
98
104
|
hours,
|
|
99
105
|
minutes,
|
|
100
106
|
months,
|
|
107
|
+
tz,
|
|
101
108
|
weekdays
|
|
102
109
|
}: {
|
|
103
110
|
readonly minutes: Iterable<number>
|
|
@@ -105,6 +112,7 @@ export const make = ({
|
|
|
105
112
|
readonly days: Iterable<number>
|
|
106
113
|
readonly months: Iterable<number>
|
|
107
114
|
readonly weekdays: Iterable<number>
|
|
115
|
+
readonly tz?: DateTime.TimeZone | undefined
|
|
108
116
|
}): Cron => {
|
|
109
117
|
const o: Mutable<Cron> = Object.create(CronProto)
|
|
110
118
|
o.minutes = new Set(Arr.sort(minutes, N.Order))
|
|
@@ -112,6 +120,7 @@ export const make = ({
|
|
|
112
120
|
o.days = new Set(Arr.sort(days, N.Order))
|
|
113
121
|
o.months = new Set(Arr.sort(months, N.Order))
|
|
114
122
|
o.weekdays = new Set(Arr.sort(weekdays, N.Order))
|
|
123
|
+
o.tz = Option.fromNullable(tz)
|
|
115
124
|
return o
|
|
116
125
|
}
|
|
117
126
|
|
|
@@ -170,6 +179,7 @@ export const isParseError = (u: unknown): u is ParseError => hasProperty(u, Pars
|
|
|
170
179
|
* @param cron - The cron expression to parse.
|
|
171
180
|
*
|
|
172
181
|
* @example
|
|
182
|
+
* ```ts
|
|
173
183
|
* import { Cron, Either } from "effect"
|
|
174
184
|
*
|
|
175
185
|
* // At 04:00 on every day-of-month from 8 through 14.
|
|
@@ -180,11 +190,12 @@ export const isParseError = (u: unknown): u is ParseError => hasProperty(u, Pars
|
|
|
180
190
|
* months: [],
|
|
181
191
|
* weekdays: []
|
|
182
192
|
* })))
|
|
193
|
+
* ```
|
|
183
194
|
*
|
|
184
195
|
* @since 2.0.0
|
|
185
196
|
* @category constructors
|
|
186
197
|
*/
|
|
187
|
-
export const parse = (cron: string): Either.Either<Cron, ParseError> => {
|
|
198
|
+
export const parse = (cron: string, tz?: DateTime.TimeZone): Either.Either<Cron, ParseError> => {
|
|
188
199
|
const segments = cron.split(" ").filter(String.isNonEmpty)
|
|
189
200
|
if (segments.length !== 5) {
|
|
190
201
|
return Either.left(ParseError(`Invalid number of segments in cron expression`, cron))
|
|
@@ -197,57 +208,58 @@ export const parse = (cron: string): Either.Either<Cron, ParseError> => {
|
|
|
197
208
|
days: parseSegment(days, dayOptions),
|
|
198
209
|
months: parseSegment(months, monthOptions),
|
|
199
210
|
weekdays: parseSegment(weekdays, weekdayOptions)
|
|
200
|
-
}).pipe(Either.map((segments) => make(segments)))
|
|
211
|
+
}).pipe(Either.map((segments) => make({ ...segments, tz })))
|
|
201
212
|
}
|
|
202
213
|
|
|
203
214
|
/**
|
|
204
215
|
* Checks if a given `Date` falls within an active `Cron` time window.
|
|
205
216
|
*
|
|
217
|
+
* @throws `IllegalArgumentException` if the given `DateTime.Input` is invalid.
|
|
218
|
+
*
|
|
206
219
|
* @param cron - The `Cron` instance.
|
|
207
220
|
* @param date - The `Date` to check against.
|
|
208
221
|
*
|
|
209
222
|
* @example
|
|
223
|
+
* ```ts
|
|
210
224
|
* import { Cron, Either } from "effect"
|
|
211
225
|
*
|
|
212
226
|
* const cron = Either.getOrThrow(Cron.parse("0 4 8-14 * *"))
|
|
213
227
|
* assert.deepStrictEqual(Cron.match(cron, new Date("2021-01-08 04:00:00")), true)
|
|
214
228
|
* assert.deepStrictEqual(Cron.match(cron, new Date("2021-01-08 05:00:00")), false)
|
|
229
|
+
* ```
|
|
215
230
|
*
|
|
216
231
|
* @since 2.0.0
|
|
217
232
|
*/
|
|
218
|
-
export const match = (cron: Cron, date:
|
|
219
|
-
const
|
|
233
|
+
export const match = (cron: Cron, date: DateTime.DateTime.Input): boolean => {
|
|
234
|
+
const zoned = dateTime.unsafeMakeZoned(date)
|
|
235
|
+
const adjusted = Option.isSome(cron.tz) ? dateTime.setZone(zoned, cron.tz.value) : zoned
|
|
236
|
+
const parts = dateTime.toParts(adjusted)
|
|
220
237
|
|
|
221
|
-
|
|
222
|
-
if (minutes.size !== 0 && !minutes.has(minute)) {
|
|
238
|
+
if (cron.minutes.size !== 0 && !cron.minutes.has(parts.minutes)) {
|
|
223
239
|
return false
|
|
224
240
|
}
|
|
225
241
|
|
|
226
|
-
|
|
227
|
-
if (hours.size !== 0 && !hours.has(hour)) {
|
|
242
|
+
if (cron.hours.size !== 0 && !cron.hours.has(parts.hours)) {
|
|
228
243
|
return false
|
|
229
244
|
}
|
|
230
245
|
|
|
231
|
-
|
|
232
|
-
if (months.size !== 0 && !months.has(month)) {
|
|
246
|
+
if (cron.months.size !== 0 && !cron.months.has(parts.month)) {
|
|
233
247
|
return false
|
|
234
248
|
}
|
|
235
249
|
|
|
236
|
-
if (days.size === 0 && weekdays.size === 0) {
|
|
250
|
+
if (cron.days.size === 0 && cron.weekdays.size === 0) {
|
|
237
251
|
return true
|
|
238
252
|
}
|
|
239
253
|
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
return days.has(day)
|
|
254
|
+
if (cron.weekdays.size === 0) {
|
|
255
|
+
return cron.days.has(parts.day)
|
|
243
256
|
}
|
|
244
257
|
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
return weekdays.has(weekday)
|
|
258
|
+
if (cron.days.size === 0) {
|
|
259
|
+
return cron.weekdays.has(parts.weekDay)
|
|
248
260
|
}
|
|
249
261
|
|
|
250
|
-
return days.has(day) || weekdays.has(
|
|
262
|
+
return cron.days.has(parts.day) || cron.weekdays.has(parts.weekDay)
|
|
251
263
|
}
|
|
252
264
|
|
|
253
265
|
/**
|
|
@@ -255,19 +267,24 @@ export const match = (cron: Cron, date: Date): boolean => {
|
|
|
255
267
|
*
|
|
256
268
|
* Uses the current time as a starting point if no value is provided for `now`.
|
|
257
269
|
*
|
|
270
|
+
* @throws `IllegalArgumentException` if the given `DateTime.Input` is invalid.
|
|
271
|
+
* @throws `Error` if the next run date cannot be found within 10,000 iterations.
|
|
272
|
+
*
|
|
258
273
|
* @example
|
|
274
|
+
* ```ts
|
|
259
275
|
* import { Cron, Either } from "effect"
|
|
260
276
|
*
|
|
261
277
|
* const after = new Date("2021-01-01 00:00:00")
|
|
262
278
|
* const cron = Either.getOrThrow(Cron.parse("0 4 8-14 * *"))
|
|
263
279
|
* assert.deepStrictEqual(Cron.next(cron, after), new Date("2021-01-08 04:00:00"))
|
|
280
|
+
* ```
|
|
264
281
|
*
|
|
265
282
|
* @param cron - The `Cron` instance.
|
|
266
283
|
* @param now - The `Date` to start searching from.
|
|
267
284
|
*
|
|
268
285
|
* @since 2.0.0
|
|
269
286
|
*/
|
|
270
|
-
export const next = (cron: Cron, now?:
|
|
287
|
+
export const next = (cron: Cron, now?: DateTime.DateTime.Input): Date => {
|
|
271
288
|
const { days, hours, minutes, months, weekdays } = cron
|
|
272
289
|
|
|
273
290
|
const restrictMinutes = minutes.size !== 0
|
|
@@ -276,61 +293,67 @@ export const next = (cron: Cron, now?: Date): Date => {
|
|
|
276
293
|
const restrictMonths = months.size !== 0
|
|
277
294
|
const restrictWeekdays = weekdays.size !== 0
|
|
278
295
|
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
current.
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
if (restrictDays && restrictWeekdays) {
|
|
297
|
-
if (!days.has(current.getDate()) && !weekdays.has(current.getDay())) {
|
|
298
|
-
current.setDate(current.getDate() + 1)
|
|
299
|
-
current.setHours(0)
|
|
300
|
-
current.setMinutes(0)
|
|
296
|
+
// TODO: This is unsafe.
|
|
297
|
+
const zoned = dateTime.unsafeMakeZoned(now ?? new Date())
|
|
298
|
+
const adjusted = Option.isSome(cron.tz) ? dateTime.setZone(zoned, cron.tz.value) : zoned
|
|
299
|
+
|
|
300
|
+
// TODO: This algorithm can be optimized to avoid some unnecessary iterations.
|
|
301
|
+
const result = dateTime.mutate(adjusted, (current) => {
|
|
302
|
+
// Increment by one minute to ensure we don't match the current date.
|
|
303
|
+
current.setUTCMinutes(current.getUTCMinutes() + 1)
|
|
304
|
+
current.setUTCSeconds(0)
|
|
305
|
+
current.setUTCMilliseconds(0)
|
|
306
|
+
|
|
307
|
+
for (let i = 0; i < 10_000; i++) {
|
|
308
|
+
if (restrictMonths && !months.has(current.getUTCMonth() + 1)) {
|
|
309
|
+
current.setUTCMonth(current.getUTCMonth() + 1)
|
|
310
|
+
current.setUTCDate(1)
|
|
311
|
+
current.setUTCHours(0)
|
|
312
|
+
current.setUTCMinutes(0)
|
|
301
313
|
continue
|
|
302
314
|
}
|
|
303
|
-
|
|
304
|
-
if (
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
315
|
+
|
|
316
|
+
if (restrictDays && restrictWeekdays) {
|
|
317
|
+
if (!days.has(current.getUTCDate()) && !weekdays.has(current.getUTCDay())) {
|
|
318
|
+
current.setUTCDate(current.getUTCDate() + 1)
|
|
319
|
+
current.setUTCHours(0)
|
|
320
|
+
current.setUTCMinutes(0)
|
|
321
|
+
continue
|
|
322
|
+
}
|
|
323
|
+
} else if (restrictDays) {
|
|
324
|
+
if (!days.has(current.getUTCDate())) {
|
|
325
|
+
current.setUTCDate(current.getUTCDate() + 1)
|
|
326
|
+
current.setUTCHours(0)
|
|
327
|
+
current.setUTCMinutes(0)
|
|
328
|
+
continue
|
|
329
|
+
}
|
|
330
|
+
} else if (restrictWeekdays) {
|
|
331
|
+
if (!weekdays.has(current.getUTCDay())) {
|
|
332
|
+
current.setUTCDate(current.getUTCDate() + 1)
|
|
333
|
+
current.setUTCHours(0)
|
|
334
|
+
current.setUTCMinutes(0)
|
|
335
|
+
continue
|
|
336
|
+
}
|
|
309
337
|
}
|
|
310
|
-
|
|
311
|
-
if (!
|
|
312
|
-
current.
|
|
313
|
-
current.
|
|
314
|
-
current.setMinutes(0)
|
|
338
|
+
|
|
339
|
+
if (restrictHours && !hours.has(current.getUTCHours())) {
|
|
340
|
+
current.setUTCHours(current.getUTCHours() + 1)
|
|
341
|
+
current.setUTCMinutes(0)
|
|
315
342
|
continue
|
|
316
343
|
}
|
|
317
|
-
}
|
|
318
344
|
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
}
|
|
345
|
+
if (restrictMinutes && !minutes.has(current.getUTCMinutes())) {
|
|
346
|
+
current.setUTCMinutes(current.getUTCMinutes() + 1)
|
|
347
|
+
continue
|
|
348
|
+
}
|
|
324
349
|
|
|
325
|
-
|
|
326
|
-
current.setMinutes(current.getMinutes() + 1)
|
|
327
|
-
continue
|
|
350
|
+
return
|
|
328
351
|
}
|
|
329
352
|
|
|
330
|
-
|
|
331
|
-
}
|
|
353
|
+
throw new Error("Unable to find next cron date")
|
|
354
|
+
})
|
|
332
355
|
|
|
333
|
-
|
|
356
|
+
return dateTime.toDateUtc(result)
|
|
334
357
|
}
|
|
335
358
|
|
|
336
359
|
/**
|
|
@@ -341,7 +364,7 @@ export const next = (cron: Cron, now?: Date): Date => {
|
|
|
341
364
|
*
|
|
342
365
|
* @since 2.0.0
|
|
343
366
|
*/
|
|
344
|
-
export const sequence = function*(cron: Cron, now?:
|
|
367
|
+
export const sequence = function*(cron: Cron, now?: DateTime.DateTime.Input): IterableIterator<Date> {
|
|
345
368
|
while (true) {
|
|
346
369
|
yield now = next(cron, now)
|
|
347
370
|
}
|
package/src/Data.ts
CHANGED
|
@@ -27,6 +27,7 @@ export declare namespace Case {
|
|
|
27
27
|
|
|
28
28
|
/**
|
|
29
29
|
* @example
|
|
30
|
+
* ```ts
|
|
30
31
|
* import { Data, Equal } from "effect"
|
|
31
32
|
*
|
|
32
33
|
* const alice = Data.struct({ name: "Alice", age: 30 })
|
|
@@ -38,6 +39,7 @@ export declare namespace Case {
|
|
|
38
39
|
*
|
|
39
40
|
* assert.deepStrictEqual(Equal.equals(alice, { name: "Alice", age: 30 }), false)
|
|
40
41
|
* assert.deepStrictEqual(Equal.equals(alice, bob), false)
|
|
42
|
+
* ```
|
|
41
43
|
*
|
|
42
44
|
* @category constructors
|
|
43
45
|
* @since 2.0.0
|
|
@@ -53,6 +55,7 @@ export const unsafeStruct = <A extends Record<string, any>>(as: A): { readonly [
|
|
|
53
55
|
|
|
54
56
|
/**
|
|
55
57
|
* @example
|
|
58
|
+
* ```ts
|
|
56
59
|
* import { Data, Equal } from "effect"
|
|
57
60
|
*
|
|
58
61
|
* const alice = Data.tuple("Alice", 30)
|
|
@@ -64,6 +67,7 @@ export const unsafeStruct = <A extends Record<string, any>>(as: A): { readonly [
|
|
|
64
67
|
*
|
|
65
68
|
* assert.deepStrictEqual(Equal.equals(alice, ["Alice", 30]), false)
|
|
66
69
|
* assert.deepStrictEqual(Equal.equals(alice, bob), false)
|
|
70
|
+
* ```
|
|
67
71
|
*
|
|
68
72
|
* @category constructors
|
|
69
73
|
* @since 2.0.0
|
|
@@ -72,6 +76,7 @@ export const tuple = <As extends ReadonlyArray<any>>(...as: As): Readonly<As> =>
|
|
|
72
76
|
|
|
73
77
|
/**
|
|
74
78
|
* @example
|
|
79
|
+
* ```ts
|
|
75
80
|
* import { Data, Equal } from "effect"
|
|
76
81
|
*
|
|
77
82
|
* const alice = Data.struct({ name: "Alice", age: 30 })
|
|
@@ -89,6 +94,7 @@ export const tuple = <As extends ReadonlyArray<any>>(...as: As): Readonly<As> =>
|
|
|
89
94
|
* ),
|
|
90
95
|
* true
|
|
91
96
|
* )
|
|
97
|
+
* ```
|
|
92
98
|
*
|
|
93
99
|
* @category constructors
|
|
94
100
|
* @since 2.0.0
|
|
@@ -110,6 +116,7 @@ export {
|
|
|
110
116
|
* Provides a constructor for the specified `Case`.
|
|
111
117
|
*
|
|
112
118
|
* @example
|
|
119
|
+
* ```ts
|
|
113
120
|
* import { Data, Equal } from "effect"
|
|
114
121
|
*
|
|
115
122
|
* interface Person {
|
|
@@ -128,6 +135,7 @@ export {
|
|
|
128
135
|
* assert.deepStrictEqual(Equal.equals(mike1, mike2), true)
|
|
129
136
|
* assert.deepStrictEqual(Equal.equals(mike1, john), false)
|
|
130
137
|
*
|
|
138
|
+
* ```
|
|
131
139
|
* @since 2.0.0
|
|
132
140
|
* @category constructors
|
|
133
141
|
*/
|
|
@@ -138,6 +146,7 @@ export {
|
|
|
138
146
|
* Provides a tagged constructor for the specified `Case`.
|
|
139
147
|
*
|
|
140
148
|
* @example
|
|
149
|
+
* ```ts
|
|
141
150
|
* import { Data } from "effect"
|
|
142
151
|
*
|
|
143
152
|
* interface Person {
|
|
@@ -150,6 +159,7 @@ export {
|
|
|
150
159
|
* const mike = Person({ name: "Mike" })
|
|
151
160
|
*
|
|
152
161
|
* assert.deepEqual(mike, { _tag: "Person", name: "Mike" })
|
|
162
|
+
* ```
|
|
153
163
|
*
|
|
154
164
|
* @since 2.0.0
|
|
155
165
|
* @category constructors
|
|
@@ -167,6 +177,7 @@ export const tagged = <A extends { readonly _tag: string }>(
|
|
|
167
177
|
* Provides a constructor for a Case Class.
|
|
168
178
|
*
|
|
169
179
|
* @example
|
|
180
|
+
* ```ts
|
|
170
181
|
* import { Data, Equal } from "effect"
|
|
171
182
|
*
|
|
172
183
|
* class Person extends Data.Class<{ readonly name: string }> {}
|
|
@@ -179,6 +190,7 @@ export const tagged = <A extends { readonly _tag: string }>(
|
|
|
179
190
|
* // Checking equality
|
|
180
191
|
* assert.deepStrictEqual(Equal.equals(mike1, mike2), true)
|
|
181
192
|
* assert.deepStrictEqual(Equal.equals(mike1, john), false)
|
|
193
|
+
* ```
|
|
182
194
|
*
|
|
183
195
|
* @since 2.0.0
|
|
184
196
|
* @category constructors
|
|
@@ -192,6 +204,7 @@ export const Class: new<A extends Record<string, any> = {}>(
|
|
|
192
204
|
* Provides a Tagged constructor for a Case Class.
|
|
193
205
|
*
|
|
194
206
|
* @example
|
|
207
|
+
* ```ts
|
|
195
208
|
* import { Data, Equal } from "effect"
|
|
196
209
|
*
|
|
197
210
|
* class Person extends Data.TaggedClass("Person")<{ readonly name: string }> {}
|
|
@@ -206,6 +219,7 @@ export const Class: new<A extends Record<string, any> = {}>(
|
|
|
206
219
|
* assert.deepStrictEqual(Equal.equals(mike1, john), false)
|
|
207
220
|
*
|
|
208
221
|
* assert.deepStrictEqual(mike1._tag, "Person")
|
|
222
|
+
* ```
|
|
209
223
|
*
|
|
210
224
|
* @since 2.0.0
|
|
211
225
|
* @category constructors
|
|
@@ -403,6 +417,7 @@ export declare namespace TaggedEnum {
|
|
|
403
417
|
* the constructor.
|
|
404
418
|
*
|
|
405
419
|
* @example
|
|
420
|
+
* ```ts
|
|
406
421
|
* import { Data } from "effect"
|
|
407
422
|
*
|
|
408
423
|
* const { BadRequest, NotFound } = Data.taggedEnum<
|
|
@@ -411,6 +426,7 @@ export declare namespace TaggedEnum {
|
|
|
411
426
|
* >()
|
|
412
427
|
*
|
|
413
428
|
* const notFound = NotFound({ status: 404, message: "Not Found" })
|
|
429
|
+
* ```
|
|
414
430
|
*
|
|
415
431
|
* @example
|
|
416
432
|
* import { Data } from "effect"
|
|
@@ -437,6 +453,7 @@ export const taggedEnum: {
|
|
|
437
453
|
* the constructor.
|
|
438
454
|
*
|
|
439
455
|
* @example
|
|
456
|
+
* ```ts
|
|
440
457
|
* import { Data } from "effect"
|
|
441
458
|
*
|
|
442
459
|
* const { BadRequest, NotFound } = Data.taggedEnum<
|
|
@@ -445,6 +462,7 @@ export const taggedEnum: {
|
|
|
445
462
|
* >()
|
|
446
463
|
*
|
|
447
464
|
* const notFound = NotFound({ status: 404, message: "Not Found" })
|
|
465
|
+
* ```
|
|
448
466
|
*
|
|
449
467
|
* @example
|
|
450
468
|
* import { Data } from "effect"
|
|
@@ -482,6 +500,7 @@ export const taggedEnum: {
|
|
|
482
500
|
* the constructor.
|
|
483
501
|
*
|
|
484
502
|
* @example
|
|
503
|
+
* ```ts
|
|
485
504
|
* import { Data } from "effect"
|
|
486
505
|
*
|
|
487
506
|
* const { BadRequest, NotFound } = Data.taggedEnum<
|
|
@@ -490,6 +509,7 @@ export const taggedEnum: {
|
|
|
490
509
|
* >()
|
|
491
510
|
*
|
|
492
511
|
* const notFound = NotFound({ status: 404, message: "Not Found" })
|
|
512
|
+
* ```
|
|
493
513
|
*
|
|
494
514
|
* @example
|
|
495
515
|
* import { Data } from "effect"
|
|
@@ -527,6 +547,7 @@ export const taggedEnum: {
|
|
|
527
547
|
* the constructor.
|
|
528
548
|
*
|
|
529
549
|
* @example
|
|
550
|
+
* ```ts
|
|
530
551
|
* import { Data } from "effect"
|
|
531
552
|
*
|
|
532
553
|
* const { BadRequest, NotFound } = Data.taggedEnum<
|
|
@@ -535,6 +556,7 @@ export const taggedEnum: {
|
|
|
535
556
|
* >()
|
|
536
557
|
*
|
|
537
558
|
* const notFound = NotFound({ status: 404, message: "Not Found" })
|
|
559
|
+
* ```
|
|
538
560
|
*
|
|
539
561
|
* @example
|
|
540
562
|
* import { Data } from "effect"
|
|
@@ -572,6 +594,7 @@ export const taggedEnum: {
|
|
|
572
594
|
* the constructor.
|
|
573
595
|
*
|
|
574
596
|
* @example
|
|
597
|
+
* ```ts
|
|
575
598
|
* import { Data } from "effect"
|
|
576
599
|
*
|
|
577
600
|
* const { BadRequest, NotFound } = Data.taggedEnum<
|
|
@@ -580,6 +603,7 @@ export const taggedEnum: {
|
|
|
580
603
|
* >()
|
|
581
604
|
*
|
|
582
605
|
* const notFound = NotFound({ status: 404, message: "Not Found" })
|
|
606
|
+
* ```
|
|
583
607
|
*
|
|
584
608
|
* @example
|
|
585
609
|
* import { Data } from "effect"
|
|
@@ -617,6 +641,7 @@ export const taggedEnum: {
|
|
|
617
641
|
* the constructor.
|
|
618
642
|
*
|
|
619
643
|
* @example
|
|
644
|
+
* ```ts
|
|
620
645
|
* import { Data } from "effect"
|
|
621
646
|
*
|
|
622
647
|
* const { BadRequest, NotFound } = Data.taggedEnum<
|
|
@@ -625,6 +650,7 @@ export const taggedEnum: {
|
|
|
625
650
|
* >()
|
|
626
651
|
*
|
|
627
652
|
* const notFound = NotFound({ status: 404, message: "Not Found" })
|
|
653
|
+
* ```
|
|
628
654
|
*
|
|
629
655
|
* @example
|
|
630
656
|
* import { Data } from "effect"
|