effect 3.8.4 → 3.9.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 +24 -3
- package/dist/cjs/Array.js.map +1 -1
- package/dist/cjs/BigDecimal.js +5 -3
- package/dist/cjs/BigDecimal.js.map +1 -1
- package/dist/cjs/BigInt.js.map +1 -1
- package/dist/cjs/Boolean.js.map +1 -1
- package/dist/cjs/Cause.js.map +1 -1
- package/dist/cjs/Channel.js.map +1 -1
- package/dist/cjs/ChildExecutorDecision.js.map +1 -1
- package/dist/cjs/Chunk.js +3 -0
- package/dist/cjs/Chunk.js.map +1 -1
- package/dist/cjs/Config.js.map +1 -1
- package/dist/cjs/ConfigError.js.map +1 -1
- package/dist/cjs/ConfigProvider.js.map +1 -1
- package/dist/cjs/ConfigProviderPathPatch.js.map +1 -1
- package/dist/cjs/Console.js.map +1 -1
- package/dist/cjs/Context.js.map +1 -1
- package/dist/cjs/Cron.js +3 -0
- package/dist/cjs/Cron.js.map +1 -1
- package/dist/cjs/Data.js.map +1 -1
- package/dist/cjs/DateTime.js +6 -0
- package/dist/cjs/DateTime.js.map +1 -1
- package/dist/cjs/Deferred.js.map +1 -1
- package/dist/cjs/Differ.js.map +1 -1
- package/dist/cjs/Duration.js +3 -0
- package/dist/cjs/Duration.js.map +1 -1
- package/dist/cjs/Effect.js +122 -35
- package/dist/cjs/Effect.js.map +1 -1
- package/dist/cjs/Either.js.map +1 -1
- package/dist/cjs/Equivalence.js.map +1 -1
- package/dist/cjs/ExecutionStrategy.js.map +1 -1
- package/dist/cjs/Exit.js.map +1 -1
- package/dist/cjs/Fiber.js.map +1 -1
- package/dist/cjs/FiberHandle.js +3 -0
- package/dist/cjs/FiberHandle.js.map +1 -1
- package/dist/cjs/FiberId.js.map +1 -1
- package/dist/cjs/FiberMap.js +3 -0
- package/dist/cjs/FiberMap.js.map +1 -1
- package/dist/cjs/FiberRef.js.map +1 -1
- package/dist/cjs/FiberRefs.js.map +1 -1
- package/dist/cjs/FiberRefsPatch.js.map +1 -1
- package/dist/cjs/FiberSet.js +3 -0
- package/dist/cjs/FiberSet.js.map +1 -1
- package/dist/cjs/Function.js.map +1 -1
- package/dist/cjs/GroupBy.js.map +1 -1
- package/dist/cjs/Hash.js.map +1 -1
- package/dist/cjs/HashMap.js.map +1 -1
- package/dist/cjs/HashSet.js.map +1 -1
- package/dist/cjs/Inspectable.js +15 -1
- package/dist/cjs/Inspectable.js.map +1 -1
- package/dist/cjs/Iterable.js.map +1 -1
- package/dist/cjs/KeyedPool.js.map +1 -1
- package/dist/cjs/Layer.js.map +1 -1
- package/dist/cjs/List.js +6 -0
- package/dist/cjs/List.js.map +1 -1
- package/dist/cjs/LogLevel.js.map +1 -1
- package/dist/cjs/Logger.js.map +1 -1
- package/dist/cjs/Mailbox.js.map +1 -1
- package/dist/cjs/ManagedRuntime.js +16 -1
- package/dist/cjs/ManagedRuntime.js.map +1 -1
- package/dist/cjs/MergeDecision.js.map +1 -1
- package/dist/cjs/MergeState.js.map +1 -1
- package/dist/cjs/MergeStrategy.js.map +1 -1
- package/dist/cjs/Metric.js.map +1 -1
- package/dist/cjs/MetricHook.js.map +1 -1
- package/dist/cjs/MetricKey.js.map +1 -1
- package/dist/cjs/MetricPolling.js.map +1 -1
- package/dist/cjs/MetricState.js.map +1 -1
- package/dist/cjs/Micro.js +6 -0
- package/dist/cjs/Micro.js.map +1 -1
- package/dist/cjs/MutableHashMap.js +3 -0
- package/dist/cjs/MutableHashMap.js.map +1 -1
- package/dist/cjs/MutableHashSet.js +3 -0
- package/dist/cjs/MutableHashSet.js.map +1 -1
- package/dist/cjs/MutableList.js +3 -0
- package/dist/cjs/MutableList.js.map +1 -1
- package/dist/cjs/MutableQueue.js +3 -0
- package/dist/cjs/MutableQueue.js.map +1 -1
- package/dist/cjs/MutableRef.js +3 -0
- package/dist/cjs/MutableRef.js.map +1 -1
- package/dist/cjs/Number.js.map +1 -1
- package/dist/cjs/Option.js.map +1 -1
- package/dist/cjs/Order.js.map +1 -1
- package/dist/cjs/Ordering.js.map +1 -1
- package/dist/cjs/Pipeable.js.map +1 -1
- package/dist/cjs/Pool.js.map +1 -1
- package/dist/cjs/Predicate.js +18 -2
- package/dist/cjs/Predicate.js.map +1 -1
- package/dist/cjs/PubSub.js.map +1 -1
- package/dist/cjs/Queue.js.map +1 -1
- package/dist/cjs/RcMap.js.map +1 -1
- package/dist/cjs/Readable.js.map +1 -1
- package/dist/cjs/Record.js.map +1 -1
- package/dist/cjs/RedBlackTree.js.map +1 -1
- package/dist/cjs/Ref.js.map +1 -1
- package/dist/cjs/RegExp.js +20 -1
- package/dist/cjs/RegExp.js.map +1 -1
- package/dist/cjs/Request.js.map +1 -1
- package/dist/cjs/RequestResolver.js.map +1 -1
- package/dist/cjs/Resource.js.map +1 -1
- package/dist/cjs/Runtime.js.map +1 -1
- package/dist/cjs/RuntimeFlags.js.map +1 -1
- package/dist/cjs/RuntimeFlagsPatch.js.map +1 -1
- package/dist/cjs/STM.js.map +1 -1
- package/dist/cjs/Schedule.js.map +1 -1
- package/dist/cjs/ScheduleInterval.js.map +1 -1
- package/dist/cjs/ScheduleIntervals.js.map +1 -1
- package/dist/cjs/Scheduler.js.map +1 -1
- package/dist/cjs/Scope.js.map +1 -1
- package/dist/cjs/ScopedRef.js.map +1 -1
- package/dist/cjs/Sink.js.map +1 -1
- package/dist/cjs/SortedMap.js +3 -0
- package/dist/cjs/SortedMap.js.map +1 -1
- package/dist/cjs/SortedSet.js +3 -0
- package/dist/cjs/SortedSet.js.map +1 -1
- package/dist/cjs/Stream.js +17 -3
- package/dist/cjs/Stream.js.map +1 -1
- package/dist/cjs/StreamHaltStrategy.js.map +1 -1
- package/dist/cjs/String.js.map +1 -1
- package/dist/cjs/Struct.js.map +1 -1
- package/dist/cjs/Subscribable.js.map +1 -1
- package/dist/cjs/SubscriptionRef.js.map +1 -1
- package/dist/cjs/SynchronizedRef.js.map +1 -1
- package/dist/cjs/TArray.js.map +1 -1
- package/dist/cjs/TDeferred.js.map +1 -1
- package/dist/cjs/TMap.js.map +1 -1
- package/dist/cjs/TPriorityQueue.js.map +1 -1
- package/dist/cjs/TPubSub.js.map +1 -1
- package/dist/cjs/TQueue.js.map +1 -1
- package/dist/cjs/TReentrantLock.js.map +1 -1
- package/dist/cjs/TRef.js.map +1 -1
- package/dist/cjs/TSemaphore.js.map +1 -1
- package/dist/cjs/TSet.js.map +1 -1
- package/dist/cjs/Take.js.map +1 -1
- package/dist/cjs/TestAnnotationMap.js.map +1 -1
- package/dist/cjs/TestClock.js.map +1 -1
- package/dist/cjs/TestServices.js.map +1 -1
- package/dist/cjs/Trie.js.map +1 -1
- package/dist/cjs/Tuple.js +21 -2
- package/dist/cjs/Tuple.js.map +1 -1
- package/dist/cjs/Unify.js.map +1 -1
- package/dist/cjs/UpstreamPullRequest.js.map +1 -1
- package/dist/cjs/UpstreamPullStrategy.js.map +1 -1
- package/dist/cjs/Utils.js +1 -14
- package/dist/cjs/Utils.js.map +1 -1
- package/dist/cjs/internal/cause.js +3 -0
- package/dist/cjs/internal/cause.js.map +1 -1
- package/dist/cjs/internal/context.js +6 -1
- package/dist/cjs/internal/context.js.map +1 -1
- package/dist/cjs/internal/core-effect.js.map +1 -1
- package/dist/cjs/internal/core.js +16 -3
- package/dist/cjs/internal/core.js.map +1 -1
- package/dist/cjs/internal/effect/circular.js +5 -1
- package/dist/cjs/internal/effect/circular.js.map +1 -1
- package/dist/cjs/internal/fiberId.js +9 -0
- package/dist/cjs/internal/fiberId.js.map +1 -1
- package/dist/cjs/internal/hashMap.js +3 -0
- package/dist/cjs/internal/hashMap.js.map +1 -1
- package/dist/cjs/internal/hashSet.js +3 -0
- package/dist/cjs/internal/hashSet.js.map +1 -1
- package/dist/cjs/internal/layer.js +33 -19
- package/dist/cjs/internal/layer.js.map +1 -1
- package/dist/cjs/internal/mailbox.js +3 -0
- package/dist/cjs/internal/mailbox.js.map +1 -1
- package/dist/cjs/internal/managedRuntime/circular.js +10 -0
- package/dist/cjs/internal/managedRuntime/circular.js.map +1 -0
- package/dist/cjs/internal/managedRuntime.js +23 -9
- package/dist/cjs/internal/managedRuntime.js.map +1 -1
- package/dist/cjs/internal/option.js +3 -0
- package/dist/cjs/internal/option.js.map +1 -1
- package/dist/cjs/internal/pool.js +6 -1
- package/dist/cjs/internal/pool.js.map +1 -1
- package/dist/cjs/internal/redBlackTree.js +3 -0
- package/dist/cjs/internal/redBlackTree.js.map +1 -1
- package/dist/cjs/internal/resource.js +15 -5
- package/dist/cjs/internal/resource.js.map +1 -1
- package/dist/cjs/internal/runtime.js +4 -1
- package/dist/cjs/internal/runtime.js.map +1 -1
- package/dist/cjs/internal/scopedRef.js +11 -8
- package/dist/cjs/internal/scopedRef.js.map +1 -1
- package/dist/cjs/internal/stm/core.js +1 -2
- package/dist/cjs/internal/stm/core.js.map +1 -1
- package/dist/cjs/internal/stream.js +12 -3
- package/dist/cjs/internal/stream.js.map +1 -1
- package/dist/cjs/internal/trie.js +3 -0
- package/dist/cjs/internal/trie.js.map +1 -1
- package/dist/cjs/internal/version.js +1 -1
- package/dist/dts/Array.d.ts +2735 -2
- package/dist/dts/Array.d.ts.map +1 -1
- package/dist/dts/BigDecimal.d.ts +558 -1
- package/dist/dts/BigDecimal.d.ts.map +1 -1
- package/dist/dts/BigInt.d.ts +490 -0
- package/dist/dts/BigInt.d.ts.map +1 -1
- package/dist/dts/Boolean.d.ts +228 -0
- package/dist/dts/Boolean.d.ts.map +1 -1
- package/dist/dts/Cause.d.ts +172 -0
- package/dist/dts/Cause.d.ts.map +1 -1
- package/dist/dts/Channel.d.ts +750 -0
- package/dist/dts/Channel.d.ts.map +1 -1
- package/dist/dts/ChildExecutorDecision.d.ts +12 -0
- package/dist/dts/ChildExecutorDecision.d.ts.map +1 -1
- package/dist/dts/Chunk.d.ts +791 -0
- package/dist/dts/Chunk.d.ts.map +1 -1
- package/dist/dts/Config.d.ts +174 -0
- package/dist/dts/Config.d.ts.map +1 -1
- package/dist/dts/ConfigError.d.ts +16 -0
- package/dist/dts/ConfigError.d.ts.map +1 -1
- package/dist/dts/ConfigProvider.d.ts +84 -0
- package/dist/dts/ConfigProvider.d.ts.map +1 -1
- package/dist/dts/ConfigProviderPathPatch.d.ts +32 -0
- package/dist/dts/ConfigProviderPathPatch.d.ts.map +1 -1
- package/dist/dts/Console.d.ts +24 -0
- package/dist/dts/Console.d.ts.map +1 -1
- package/dist/dts/Context.d.ts +234 -3
- package/dist/dts/Context.d.ts.map +1 -1
- package/dist/dts/Cron.d.ts +12 -0
- package/dist/dts/Cron.d.ts.map +1 -1
- package/dist/dts/Data.d.ts +165 -0
- package/dist/dts/Data.d.ts.map +1 -1
- package/dist/dts/DateTime.d.ts +878 -0
- package/dist/dts/DateTime.d.ts.map +1 -1
- package/dist/dts/Deferred.d.ts +171 -1
- package/dist/dts/Deferred.d.ts.map +1 -1
- package/dist/dts/Differ.d.ts +78 -0
- package/dist/dts/Differ.d.ts.map +1 -1
- package/dist/dts/Duration.d.ts +130 -0
- package/dist/dts/Duration.d.ts.map +1 -1
- package/dist/dts/Effect.d.ts +4350 -13
- package/dist/dts/Effect.d.ts.map +1 -1
- package/dist/dts/Either.d.ts +620 -0
- package/dist/dts/Either.d.ts.map +1 -1
- package/dist/dts/Equivalence.d.ts +24 -0
- package/dist/dts/Equivalence.d.ts.map +1 -1
- package/dist/dts/ExecutionStrategy.d.ts +14 -0
- package/dist/dts/ExecutionStrategy.d.ts.map +1 -1
- package/dist/dts/Exit.d.ts +252 -0
- package/dist/dts/Exit.d.ts.map +1 -1
- package/dist/dts/Fiber.d.ts +182 -0
- package/dist/dts/Fiber.d.ts.map +1 -1
- package/dist/dts/FiberHandle.d.ts +42 -0
- package/dist/dts/FiberHandle.d.ts.map +1 -1
- package/dist/dts/FiberId.d.ts +24 -0
- package/dist/dts/FiberId.d.ts.map +1 -1
- package/dist/dts/FiberMap.d.ts +102 -0
- package/dist/dts/FiberMap.d.ts.map +1 -1
- package/dist/dts/FiberRef.d.ts +80 -0
- package/dist/dts/FiberRef.d.ts.map +1 -1
- package/dist/dts/FiberRefs.d.ts +84 -0
- package/dist/dts/FiberRefs.d.ts.map +1 -1
- package/dist/dts/FiberRefsPatch.d.ts +30 -0
- package/dist/dts/FiberRefsPatch.d.ts.map +1 -1
- package/dist/dts/FiberSet.d.ts +38 -0
- package/dist/dts/FiberSet.d.ts.map +1 -1
- package/dist/dts/Function.d.ts +144 -28
- package/dist/dts/Function.d.ts.map +1 -1
- package/dist/dts/GroupBy.d.ts +38 -0
- package/dist/dts/GroupBy.d.ts.map +1 -1
- package/dist/dts/Hash.d.ts +8 -0
- package/dist/dts/Hash.d.ts.map +1 -1
- package/dist/dts/HashMap.d.ts +315 -0
- package/dist/dts/HashMap.d.ts.map +1 -1
- package/dist/dts/HashSet.d.ts +284 -0
- package/dist/dts/HashSet.d.ts.map +1 -1
- package/dist/dts/Inspectable.d.ts +15 -0
- package/dist/dts/Inspectable.d.ts.map +1 -1
- package/dist/dts/Iterable.d.ts +454 -0
- package/dist/dts/Iterable.d.ts.map +1 -1
- package/dist/dts/KeyedPool.d.ts +34 -0
- package/dist/dts/KeyedPool.d.ts.map +1 -1
- package/dist/dts/Layer.d.ts +460 -5
- package/dist/dts/Layer.d.ts.map +1 -1
- package/dist/dts/List.d.ts +430 -0
- package/dist/dts/List.d.ts.map +1 -1
- package/dist/dts/LogLevel.d.ts +46 -0
- package/dist/dts/LogLevel.d.ts.map +1 -1
- package/dist/dts/Logger.d.ts +194 -0
- package/dist/dts/Logger.d.ts.map +1 -1
- package/dist/dts/Mailbox.d.ts +16 -0
- package/dist/dts/Mailbox.d.ts.map +1 -1
- package/dist/dts/ManagedRuntime.d.ts +41 -2
- package/dist/dts/ManagedRuntime.d.ts.map +1 -1
- package/dist/dts/MergeDecision.d.ts +8 -0
- package/dist/dts/MergeDecision.d.ts.map +1 -1
- package/dist/dts/MergeState.d.ts +8 -0
- package/dist/dts/MergeState.d.ts.map +1 -1
- package/dist/dts/MergeStrategy.d.ts +12 -0
- package/dist/dts/MergeStrategy.d.ts.map +1 -1
- package/dist/dts/Metric.d.ts +410 -0
- package/dist/dts/Metric.d.ts.map +1 -1
- package/dist/dts/MetricHook.d.ts +24 -0
- package/dist/dts/MetricHook.d.ts.map +1 -1
- package/dist/dts/MetricKey.d.ts +48 -0
- package/dist/dts/MetricKey.d.ts.map +1 -1
- package/dist/dts/MetricPolling.d.ts +40 -0
- package/dist/dts/MetricPolling.d.ts.map +1 -1
- package/dist/dts/MetricState.d.ts +16 -0
- package/dist/dts/MetricState.d.ts.map +1 -1
- package/dist/dts/Micro.d.ts +1110 -0
- package/dist/dts/Micro.d.ts.map +1 -1
- package/dist/dts/MutableHashMap.d.ts +50 -0
- package/dist/dts/MutableHashMap.d.ts.map +1 -1
- package/dist/dts/MutableHashSet.d.ts +24 -0
- package/dist/dts/MutableHashSet.d.ts.map +1 -1
- package/dist/dts/MutableList.d.ts +36 -0
- package/dist/dts/MutableList.d.ts.map +1 -1
- package/dist/dts/MutableQueue.d.ts +62 -0
- package/dist/dts/MutableQueue.d.ts.map +1 -1
- package/dist/dts/MutableRef.d.ts +56 -0
- package/dist/dts/MutableRef.d.ts.map +1 -1
- package/dist/dts/Number.d.ts +474 -0
- package/dist/dts/Number.d.ts.map +1 -1
- package/dist/dts/Option.d.ts +1019 -0
- package/dist/dts/Option.d.ts.map +1 -1
- package/dist/dts/Order.d.ts +24 -0
- package/dist/dts/Order.d.ts.map +1 -1
- package/dist/dts/Ordering.d.ts +66 -0
- package/dist/dts/Ordering.d.ts.map +1 -1
- package/dist/dts/Pipeable.d.ts +21 -21
- package/dist/dts/Pipeable.d.ts.map +1 -1
- package/dist/dts/Pool.d.ts +37 -1
- package/dist/dts/Pool.d.ts.map +1 -1
- package/dist/dts/Predicate.d.ts +513 -0
- package/dist/dts/Predicate.d.ts.map +1 -1
- package/dist/dts/PubSub.d.ts +28 -0
- package/dist/dts/PubSub.d.ts.map +1 -1
- package/dist/dts/Queue.d.ts +106 -2
- package/dist/dts/Queue.d.ts.map +1 -1
- package/dist/dts/RcMap.d.ts +70 -0
- package/dist/dts/RcMap.d.ts.map +1 -1
- package/dist/dts/Readable.d.ts +16 -0
- package/dist/dts/Readable.d.ts.map +1 -1
- package/dist/dts/Record.d.ts +800 -0
- package/dist/dts/Record.d.ts.map +1 -1
- package/dist/dts/RedBlackTree.d.ts +300 -0
- package/dist/dts/RedBlackTree.d.ts.map +1 -1
- package/dist/dts/Ref.d.ts +88 -0
- package/dist/dts/Ref.d.ts.map +1 -1
- package/dist/dts/RegExp.d.ts +12 -2
- package/dist/dts/RegExp.d.ts.map +1 -1
- package/dist/dts/Request.d.ts +76 -0
- package/dist/dts/Request.d.ts.map +1 -1
- package/dist/dts/RequestResolver.d.ts +144 -0
- package/dist/dts/RequestResolver.d.ts.map +1 -1
- package/dist/dts/Resource.d.ts +21 -1
- package/dist/dts/Resource.d.ts.map +1 -1
- package/dist/dts/Runtime.d.ts +126 -0
- package/dist/dts/Runtime.d.ts.map +1 -1
- package/dist/dts/RuntimeFlags.d.ts +100 -0
- package/dist/dts/RuntimeFlags.d.ts.map +1 -1
- package/dist/dts/RuntimeFlagsPatch.d.ts +112 -0
- package/dist/dts/RuntimeFlagsPatch.d.ts.map +1 -1
- package/dist/dts/STM.d.ts +1090 -0
- package/dist/dts/STM.d.ts.map +1 -1
- package/dist/dts/Schedule.d.ts +704 -0
- package/dist/dts/Schedule.d.ts.map +1 -1
- package/dist/dts/ScheduleInterval.d.ts +68 -0
- package/dist/dts/ScheduleInterval.d.ts.map +1 -1
- package/dist/dts/ScheduleIntervals.d.ts +50 -0
- package/dist/dts/ScheduleIntervals.d.ts.map +1 -1
- package/dist/dts/Scope.d.ts +36 -0
- package/dist/dts/Scope.d.ts.map +1 -1
- package/dist/dts/ScopedRef.d.ts +43 -1
- package/dist/dts/ScopedRef.d.ts.map +1 -1
- package/dist/dts/Sink.d.ts +464 -0
- package/dist/dts/Sink.d.ts.map +1 -1
- package/dist/dts/SortedMap.d.ts +76 -0
- package/dist/dts/SortedMap.d.ts.map +1 -1
- package/dist/dts/SortedSet.d.ts +142 -0
- package/dist/dts/SortedSet.d.ts.map +1 -1
- package/dist/dts/Stream.d.ts +4998 -1
- package/dist/dts/Stream.d.ts.map +1 -1
- package/dist/dts/StreamHaltStrategy.d.ts +12 -0
- package/dist/dts/StreamHaltStrategy.d.ts.map +1 -1
- package/dist/dts/String.d.ts +200 -0
- package/dist/dts/String.d.ts.map +1 -1
- package/dist/dts/Struct.d.ts +84 -0
- package/dist/dts/Struct.d.ts.map +1 -1
- package/dist/dts/Subscribable.d.ts +16 -0
- package/dist/dts/Subscribable.d.ts.map +1 -1
- package/dist/dts/SubscriptionRef.d.ts +152 -0
- package/dist/dts/SubscriptionRef.d.ts.map +1 -1
- package/dist/dts/SynchronizedRef.d.ts +152 -0
- package/dist/dts/SynchronizedRef.d.ts.map +1 -1
- package/dist/dts/TArray.d.ts +426 -0
- package/dist/dts/TArray.d.ts.map +1 -1
- package/dist/dts/TDeferred.d.ts +24 -0
- package/dist/dts/TDeferred.d.ts.map +1 -1
- package/dist/dts/TMap.d.ts +366 -0
- package/dist/dts/TMap.d.ts.map +1 -1
- package/dist/dts/TPriorityQueue.d.ts +60 -0
- package/dist/dts/TPriorityQueue.d.ts.map +1 -1
- package/dist/dts/TPubSub.d.ts +28 -0
- package/dist/dts/TPubSub.d.ts.map +1 -1
- package/dist/dts/TQueue.d.ts +108 -0
- package/dist/dts/TQueue.d.ts.map +1 -1
- package/dist/dts/TReentrantLock.d.ts +36 -0
- package/dist/dts/TReentrantLock.d.ts.map +1 -1
- package/dist/dts/TRef.d.ts +88 -0
- package/dist/dts/TRef.d.ts.map +1 -1
- package/dist/dts/TSemaphore.d.ts +40 -0
- package/dist/dts/TSemaphore.d.ts.map +1 -1
- package/dist/dts/TSet.d.ts +254 -0
- package/dist/dts/TSet.d.ts.map +1 -1
- package/dist/dts/Take.d.ts +56 -0
- package/dist/dts/Take.d.ts.map +1 -1
- package/dist/dts/TestAnnotationMap.d.ts.map +1 -1
- package/dist/dts/TestClock.d.ts.map +1 -1
- package/dist/dts/TestServices.d.ts.map +1 -1
- package/dist/dts/Trie.d.ts +906 -0
- package/dist/dts/Trie.d.ts.map +1 -1
- package/dist/dts/Tuple.d.ts +203 -0
- package/dist/dts/Tuple.d.ts.map +1 -1
- package/dist/dts/Types.d.ts +39 -0
- package/dist/dts/Types.d.ts.map +1 -1
- package/dist/dts/Unify.d.ts +26 -13
- package/dist/dts/Unify.d.ts.map +1 -1
- package/dist/dts/UpstreamPullRequest.d.ts +12 -0
- package/dist/dts/UpstreamPullRequest.d.ts.map +1 -1
- package/dist/dts/UpstreamPullStrategy.d.ts +12 -0
- package/dist/dts/UpstreamPullStrategy.d.ts.map +1 -1
- package/dist/dts/Utils.d.ts.map +1 -1
- package/dist/dts/internal/core.d.ts.map +1 -1
- package/dist/dts/internal/hashMap.d.ts.map +1 -1
- package/dist/dts/internal/layer.d.ts.map +1 -1
- package/dist/dts/internal/managedRuntime/circular.d.ts +2 -0
- package/dist/dts/internal/managedRuntime/circular.d.ts.map +1 -0
- package/dist/dts/internal/stream.d.ts.map +1 -1
- package/dist/esm/Array.js +21 -0
- package/dist/esm/Array.js.map +1 -1
- package/dist/esm/BigDecimal.js +6 -3
- package/dist/esm/BigDecimal.js.map +1 -1
- package/dist/esm/BigInt.js.map +1 -1
- package/dist/esm/Boolean.js.map +1 -1
- package/dist/esm/Cause.js.map +1 -1
- package/dist/esm/Channel.js.map +1 -1
- package/dist/esm/ChildExecutorDecision.js.map +1 -1
- package/dist/esm/Chunk.js +4 -1
- package/dist/esm/Chunk.js.map +1 -1
- package/dist/esm/Config.js.map +1 -1
- package/dist/esm/ConfigError.js.map +1 -1
- package/dist/esm/ConfigProvider.js.map +1 -1
- package/dist/esm/ConfigProviderPathPatch.js.map +1 -1
- package/dist/esm/Console.js.map +1 -1
- package/dist/esm/Context.js.map +1 -1
- package/dist/esm/Cron.js +4 -1
- package/dist/esm/Cron.js.map +1 -1
- package/dist/esm/Data.js.map +1 -1
- package/dist/esm/DateTime.js +6 -0
- package/dist/esm/DateTime.js.map +1 -1
- package/dist/esm/Deferred.js.map +1 -1
- package/dist/esm/Differ.js.map +1 -1
- package/dist/esm/Duration.js +4 -1
- package/dist/esm/Duration.js.map +1 -1
- package/dist/esm/Effect.js +116 -30
- package/dist/esm/Effect.js.map +1 -1
- package/dist/esm/Either.js.map +1 -1
- package/dist/esm/Equivalence.js.map +1 -1
- package/dist/esm/ExecutionStrategy.js.map +1 -1
- package/dist/esm/Exit.js.map +1 -1
- package/dist/esm/Fiber.js.map +1 -1
- package/dist/esm/FiberHandle.js +3 -0
- package/dist/esm/FiberHandle.js.map +1 -1
- package/dist/esm/FiberId.js.map +1 -1
- package/dist/esm/FiberMap.js +3 -0
- package/dist/esm/FiberMap.js.map +1 -1
- package/dist/esm/FiberRef.js.map +1 -1
- package/dist/esm/FiberRefs.js.map +1 -1
- package/dist/esm/FiberRefsPatch.js.map +1 -1
- package/dist/esm/FiberSet.js +3 -0
- package/dist/esm/FiberSet.js.map +1 -1
- package/dist/esm/Function.js.map +1 -1
- package/dist/esm/GroupBy.js.map +1 -1
- package/dist/esm/Hash.js.map +1 -1
- package/dist/esm/HashMap.js.map +1 -1
- package/dist/esm/HashSet.js.map +1 -1
- package/dist/esm/Inspectable.js +14 -0
- package/dist/esm/Inspectable.js.map +1 -1
- package/dist/esm/Iterable.js.map +1 -1
- package/dist/esm/KeyedPool.js.map +1 -1
- package/dist/esm/Layer.js.map +1 -1
- package/dist/esm/List.js +7 -1
- package/dist/esm/List.js.map +1 -1
- package/dist/esm/LogLevel.js.map +1 -1
- package/dist/esm/Logger.js.map +1 -1
- package/dist/esm/Mailbox.js.map +1 -1
- package/dist/esm/ManagedRuntime.js +15 -0
- package/dist/esm/ManagedRuntime.js.map +1 -1
- package/dist/esm/MergeDecision.js.map +1 -1
- package/dist/esm/MergeState.js.map +1 -1
- package/dist/esm/MergeStrategy.js.map +1 -1
- package/dist/esm/Metric.js.map +1 -1
- package/dist/esm/MetricHook.js.map +1 -1
- package/dist/esm/MetricKey.js.map +1 -1
- package/dist/esm/MetricPolling.js.map +1 -1
- package/dist/esm/MetricState.js.map +1 -1
- package/dist/esm/Micro.js +7 -1
- package/dist/esm/Micro.js.map +1 -1
- package/dist/esm/MutableHashMap.js +4 -1
- package/dist/esm/MutableHashMap.js.map +1 -1
- package/dist/esm/MutableHashSet.js +4 -1
- package/dist/esm/MutableHashSet.js.map +1 -1
- package/dist/esm/MutableList.js +4 -1
- package/dist/esm/MutableList.js.map +1 -1
- package/dist/esm/MutableQueue.js +4 -1
- package/dist/esm/MutableQueue.js.map +1 -1
- package/dist/esm/MutableRef.js +4 -1
- package/dist/esm/MutableRef.js.map +1 -1
- package/dist/esm/Number.js.map +1 -1
- package/dist/esm/Option.js.map +1 -1
- package/dist/esm/Order.js.map +1 -1
- package/dist/esm/Ordering.js.map +1 -1
- package/dist/esm/Pipeable.js.map +1 -1
- package/dist/esm/Pool.js.map +1 -1
- package/dist/esm/Predicate.js +15 -0
- package/dist/esm/Predicate.js.map +1 -1
- package/dist/esm/PubSub.js.map +1 -1
- package/dist/esm/Queue.js.map +1 -1
- package/dist/esm/RcMap.js.map +1 -1
- package/dist/esm/Readable.js.map +1 -1
- package/dist/esm/Record.js.map +1 -1
- package/dist/esm/RedBlackTree.js.map +1 -1
- package/dist/esm/Ref.js.map +1 -1
- package/dist/esm/RegExp.js +16 -0
- package/dist/esm/RegExp.js.map +1 -1
- package/dist/esm/Request.js.map +1 -1
- package/dist/esm/RequestResolver.js.map +1 -1
- package/dist/esm/Resource.js.map +1 -1
- package/dist/esm/Runtime.js.map +1 -1
- package/dist/esm/RuntimeFlags.js.map +1 -1
- package/dist/esm/RuntimeFlagsPatch.js.map +1 -1
- package/dist/esm/STM.js.map +1 -1
- package/dist/esm/Schedule.js.map +1 -1
- package/dist/esm/ScheduleInterval.js.map +1 -1
- package/dist/esm/ScheduleIntervals.js.map +1 -1
- package/dist/esm/Scheduler.js.map +1 -1
- package/dist/esm/Scope.js.map +1 -1
- package/dist/esm/ScopedRef.js.map +1 -1
- package/dist/esm/Sink.js.map +1 -1
- package/dist/esm/SortedMap.js +4 -1
- package/dist/esm/SortedMap.js.map +1 -1
- package/dist/esm/SortedSet.js +4 -1
- package/dist/esm/SortedSet.js.map +1 -1
- package/dist/esm/Stream.js +14 -0
- package/dist/esm/Stream.js.map +1 -1
- package/dist/esm/StreamHaltStrategy.js.map +1 -1
- package/dist/esm/String.js.map +1 -1
- package/dist/esm/Struct.js.map +1 -1
- package/dist/esm/Subscribable.js.map +1 -1
- package/dist/esm/SubscriptionRef.js.map +1 -1
- package/dist/esm/SynchronizedRef.js.map +1 -1
- package/dist/esm/TArray.js.map +1 -1
- package/dist/esm/TDeferred.js.map +1 -1
- package/dist/esm/TMap.js.map +1 -1
- package/dist/esm/TPriorityQueue.js.map +1 -1
- package/dist/esm/TPubSub.js.map +1 -1
- package/dist/esm/TQueue.js.map +1 -1
- package/dist/esm/TReentrantLock.js.map +1 -1
- package/dist/esm/TRef.js.map +1 -1
- package/dist/esm/TSemaphore.js.map +1 -1
- package/dist/esm/TSet.js.map +1 -1
- package/dist/esm/Take.js.map +1 -1
- package/dist/esm/TestAnnotationMap.js.map +1 -1
- package/dist/esm/TestClock.js.map +1 -1
- package/dist/esm/TestServices.js.map +1 -1
- package/dist/esm/Trie.js.map +1 -1
- package/dist/esm/Tuple.js +19 -0
- package/dist/esm/Tuple.js.map +1 -1
- package/dist/esm/Unify.js.map +1 -1
- package/dist/esm/UpstreamPullRequest.js.map +1 -1
- package/dist/esm/UpstreamPullStrategy.js.map +1 -1
- package/dist/esm/Utils.js +1 -14
- package/dist/esm/Utils.js.map +1 -1
- package/dist/esm/internal/cause.js +4 -1
- package/dist/esm/internal/cause.js.map +1 -1
- package/dist/esm/internal/context.js +7 -2
- package/dist/esm/internal/context.js.map +1 -1
- package/dist/esm/internal/core-effect.js.map +1 -1
- package/dist/esm/internal/core.js +14 -2
- package/dist/esm/internal/core.js.map +1 -1
- package/dist/esm/internal/effect/circular.js +5 -1
- package/dist/esm/internal/effect/circular.js.map +1 -1
- package/dist/esm/internal/fiberId.js +10 -1
- package/dist/esm/internal/fiberId.js.map +1 -1
- package/dist/esm/internal/hashMap.js +4 -1
- package/dist/esm/internal/hashMap.js.map +1 -1
- package/dist/esm/internal/hashSet.js +4 -1
- package/dist/esm/internal/hashSet.js.map +1 -1
- package/dist/esm/internal/layer.js +32 -18
- package/dist/esm/internal/layer.js.map +1 -1
- package/dist/esm/internal/mailbox.js +3 -0
- package/dist/esm/internal/mailbox.js.map +1 -1
- package/dist/esm/internal/managedRuntime/circular.js +4 -0
- package/dist/esm/internal/managedRuntime/circular.js.map +1 -0
- package/dist/esm/internal/managedRuntime.js +21 -8
- package/dist/esm/internal/managedRuntime.js.map +1 -1
- package/dist/esm/internal/option.js +4 -1
- package/dist/esm/internal/option.js.map +1 -1
- package/dist/esm/internal/pool.js +6 -1
- package/dist/esm/internal/pool.js.map +1 -1
- package/dist/esm/internal/redBlackTree.js +4 -1
- package/dist/esm/internal/redBlackTree.js.map +1 -1
- package/dist/esm/internal/resource.js +15 -5
- package/dist/esm/internal/resource.js.map +1 -1
- package/dist/esm/internal/runtime.js +4 -1
- package/dist/esm/internal/runtime.js.map +1 -1
- package/dist/esm/internal/scopedRef.js +11 -8
- package/dist/esm/internal/scopedRef.js.map +1 -1
- package/dist/esm/internal/stm/core.js +1 -2
- package/dist/esm/internal/stm/core.js.map +1 -1
- package/dist/esm/internal/stream.js +9 -0
- package/dist/esm/internal/stream.js.map +1 -1
- package/dist/esm/internal/trie.js +4 -1
- package/dist/esm/internal/trie.js.map +1 -1
- package/dist/esm/internal/version.js +1 -1
- package/package.json +1 -1
- package/src/Array.ts +2791 -40
- package/src/BigDecimal.ts +589 -19
- package/src/BigInt.ts +516 -16
- package/src/Boolean.ts +241 -8
- package/src/Cause.ts +177 -1
- package/src/Channel.ts +766 -49
- package/src/ChildExecutorDecision.ts +12 -0
- package/src/Chunk.ts +822 -5
- package/src/Config.ts +187 -8
- package/src/ConfigError.ts +16 -0
- package/src/ConfigProvider.ts +89 -1
- package/src/ConfigProviderPathPatch.ts +32 -0
- package/src/Console.ts +37 -8
- package/src/Context.ts +234 -3
- package/src/Cron.ts +16 -1
- package/src/Data.ts +165 -0
- package/src/DateTime.ts +1012 -50
- package/src/Deferred.ts +171 -1
- package/src/Differ.ts +89 -27
- package/src/Duration.ts +160 -17
- package/src/Effect.ts +4717 -164
- package/src/Either.ts +650 -34
- package/src/Equivalence.ts +24 -0
- package/src/ExecutionStrategy.ts +29 -10
- package/src/Exit.ts +252 -0
- package/src/Fiber.ts +182 -0
- package/src/FiberHandle.ts +45 -0
- package/src/FiberId.ts +24 -0
- package/src/FiberMap.ts +147 -21
- package/src/FiberRef.ts +80 -0
- package/src/FiberRefs.ts +84 -0
- package/src/FiberRefsPatch.ts +35 -1
- package/src/FiberSet.ts +41 -0
- package/src/Function.ts +416 -31
- package/src/GroupBy.ts +38 -0
- package/src/Hash.ts +8 -0
- package/src/HashMap.ts +316 -0
- package/src/HashSet.ts +284 -0
- package/src/Inspectable.ts +22 -0
- package/src/Iterable.ts +456 -6
- package/src/KeyedPool.ts +34 -0
- package/src/Layer.ts +475 -38
- package/src/List.ts +483 -4
- package/src/LogLevel.ts +46 -0
- package/src/Logger.ts +195 -4
- package/src/Mailbox.ts +16 -0
- package/src/ManagedRuntime.ts +46 -2
- package/src/MergeDecision.ts +8 -0
- package/src/MergeState.ts +8 -0
- package/src/MergeStrategy.ts +25 -8
- package/src/Metric.ts +426 -15
- package/src/MetricHook.ts +24 -0
- package/src/MetricKey.ts +62 -8
- package/src/MetricPolling.ts +42 -6
- package/src/MetricState.ts +16 -0
- package/src/Micro.ts +1223 -61
- package/src/MutableHashMap.ts +109 -2
- package/src/MutableHashSet.ts +28 -1
- package/src/MutableList.ts +40 -1
- package/src/MutableQueue.ts +66 -1
- package/src/MutableRef.ts +60 -1
- package/src/Number.ts +500 -16
- package/src/Option.ts +1042 -16
- package/src/Order.ts +24 -0
- package/src/Ordering.ts +66 -0
- package/src/Pipeable.ts +224 -21
- package/src/Pool.ts +42 -1
- package/src/Predicate.ts +514 -0
- package/src/PubSub.ts +28 -0
- package/src/Queue.ts +106 -2
- package/src/RcMap.ts +70 -0
- package/src/Readable.ts +18 -7
- package/src/Record.ts +814 -40
- package/src/RedBlackTree.ts +305 -1
- package/src/Ref.ts +88 -0
- package/src/RegExp.ts +17 -0
- package/src/Request.ts +76 -0
- package/src/RequestResolver.ts +145 -4
- package/src/Resource.ts +22 -1
- package/src/Runtime.ts +134 -2
- package/src/RuntimeFlags.ts +100 -0
- package/src/RuntimeFlagsPatch.ts +112 -0
- package/src/STM.ts +1107 -11
- package/src/Schedule.ts +704 -0
- package/src/ScheduleInterval.ts +68 -0
- package/src/ScheduleIntervals.ts +50 -0
- package/src/Scheduler.ts +2 -0
- package/src/Scope.ts +36 -0
- package/src/ScopedRef.ts +44 -1
- package/src/Sink.ts +464 -0
- package/src/SortedMap.ts +80 -1
- package/src/SortedSet.ts +147 -4
- package/src/Stream.ts +5041 -54
- package/src/StreamHaltStrategy.ts +29 -12
- package/src/String.ts +200 -0
- package/src/Struct.ts +86 -7
- package/src/Subscribable.ts +16 -0
- package/src/SubscriptionRef.ts +159 -11
- package/src/SynchronizedRef.ts +169 -8
- package/src/TArray.ts +431 -1
- package/src/TDeferred.ts +24 -0
- package/src/TMap.ts +381 -12
- package/src/TPriorityQueue.ts +60 -0
- package/src/TPubSub.ts +28 -0
- package/src/TQueue.ts +108 -0
- package/src/TReentrantLock.ts +36 -0
- package/src/TRef.ts +88 -0
- package/src/TSemaphore.ts +40 -0
- package/src/TSet.ts +280 -12
- package/src/Take.ts +56 -0
- package/src/TestAnnotationMap.ts +45 -1
- package/src/TestClock.ts +6 -0
- package/src/TestServices.ts +66 -0
- package/src/Trie.ts +906 -0
- package/src/Tuple.ts +223 -8
- package/src/Types.ts +41 -0
- package/src/Unify.ts +28 -17
- package/src/UpstreamPullRequest.ts +12 -0
- package/src/UpstreamPullStrategy.ts +12 -0
- package/src/Utils.ts +1 -15
- package/src/internal/cause.ts +4 -1
- package/src/internal/context.ts +7 -2
- package/src/internal/core-effect.ts +7 -7
- package/src/internal/core.ts +14 -2
- package/src/internal/effect/circular.ts +8 -2
- package/src/internal/fiberId.ts +10 -1
- package/src/internal/hashMap.ts +4 -1
- package/src/internal/hashSet.ts +4 -1
- package/src/internal/layer.ts +105 -38
- package/src/internal/mailbox.ts +3 -0
- package/src/internal/managedRuntime/circular.ts +6 -0
- package/src/internal/managedRuntime.ts +36 -22
- package/src/internal/option.ts +4 -1
- package/src/internal/pool.ts +7 -1
- package/src/internal/redBlackTree.ts +4 -1
- package/src/internal/resource.ts +16 -5
- package/src/internal/runtime.ts +4 -1
- package/src/internal/scopedRef.ts +12 -8
- package/src/internal/stm/core.ts +2 -3
- package/src/internal/stream.ts +27 -0
- package/src/internal/trie.ts +4 -1
- package/src/internal/version.ts +1 -1
package/src/DateTime.ts
CHANGED
|
@@ -230,6 +230,9 @@ const Proto = {
|
|
|
230
230
|
pipe() {
|
|
231
231
|
return pipeArguments(this, arguments)
|
|
232
232
|
},
|
|
233
|
+
[Inspectable.DenoInspectSymbol](this: DateTime) {
|
|
234
|
+
return this.toString()
|
|
235
|
+
},
|
|
233
236
|
[Inspectable.NodeInspectSymbol](this: DateTime) {
|
|
234
237
|
return this.toString()
|
|
235
238
|
},
|
|
@@ -273,6 +276,9 @@ const ProtoZoned = {
|
|
|
273
276
|
|
|
274
277
|
const ProtoTimeZone = {
|
|
275
278
|
[TimeZoneTypeId]: TimeZoneTypeId,
|
|
279
|
+
[Inspectable.DenoInspectSymbol](this: TimeZone) {
|
|
280
|
+
return this.toString()
|
|
281
|
+
},
|
|
276
282
|
[Inspectable.NodeInspectSymbol](this: TimeZone) {
|
|
277
283
|
return this.toString()
|
|
278
284
|
}
|
|
@@ -394,7 +400,13 @@ export const Order: order.Order<DateTime> = order.make((self, that) =>
|
|
|
394
400
|
* @since 3.6.0
|
|
395
401
|
*/
|
|
396
402
|
export const clamp: {
|
|
403
|
+
/**
|
|
404
|
+
* @since 3.6.0
|
|
405
|
+
*/
|
|
397
406
|
(options: { minimum: DateTime; maximum: DateTime }): (self: DateTime) => DateTime
|
|
407
|
+
/**
|
|
408
|
+
* @since 3.6.0
|
|
409
|
+
*/
|
|
398
410
|
(self: DateTime, options: { minimum: DateTime; maximum: DateTime }): DateTime
|
|
399
411
|
} = order.clamp(Order)
|
|
400
412
|
|
|
@@ -611,12 +623,59 @@ export const unsafeNow: LazyArg<Utc> = () => makeUtc(Date.now())
|
|
|
611
623
|
* })
|
|
612
624
|
*/
|
|
613
625
|
export const setZone: {
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
626
|
+
// =============================================================================
|
|
627
|
+
// time zones
|
|
628
|
+
// =============================================================================
|
|
629
|
+
|
|
630
|
+
/**
|
|
631
|
+
* Set the time zone of a `DateTime`, returning a new `DateTime.Zoned`.
|
|
632
|
+
*
|
|
633
|
+
* @since 3.6.0
|
|
634
|
+
* @category time zones
|
|
635
|
+
* @example
|
|
636
|
+
* import { DateTime, Effect } from "effect"
|
|
637
|
+
*
|
|
638
|
+
* Effect.gen(function* () {
|
|
639
|
+
* const now = yield* DateTime.now
|
|
640
|
+
* const zone = DateTime.zoneUnsafeMakeNamed("Europe/London")
|
|
641
|
+
*
|
|
642
|
+
* // set the time zone
|
|
643
|
+
* const zoned: DateTime.Zoned = DateTime.setZone(now, zone)
|
|
644
|
+
* })
|
|
645
|
+
*/
|
|
646
|
+
(
|
|
647
|
+
zone: TimeZone,
|
|
648
|
+
options?: {
|
|
649
|
+
readonly adjustForTimeZone?: boolean | undefined
|
|
650
|
+
}
|
|
651
|
+
): (self: DateTime) => Zoned
|
|
652
|
+
// =============================================================================
|
|
653
|
+
// time zones
|
|
654
|
+
// =============================================================================
|
|
655
|
+
|
|
656
|
+
/**
|
|
657
|
+
* Set the time zone of a `DateTime`, returning a new `DateTime.Zoned`.
|
|
658
|
+
*
|
|
659
|
+
* @since 3.6.0
|
|
660
|
+
* @category time zones
|
|
661
|
+
* @example
|
|
662
|
+
* import { DateTime, Effect } from "effect"
|
|
663
|
+
*
|
|
664
|
+
* Effect.gen(function* () {
|
|
665
|
+
* const now = yield* DateTime.now
|
|
666
|
+
* const zone = DateTime.zoneUnsafeMakeNamed("Europe/London")
|
|
667
|
+
*
|
|
668
|
+
* // set the time zone
|
|
669
|
+
* const zoned: DateTime.Zoned = DateTime.setZone(now, zone)
|
|
670
|
+
* })
|
|
671
|
+
*/
|
|
672
|
+
(
|
|
673
|
+
self: DateTime,
|
|
674
|
+
zone: TimeZone,
|
|
675
|
+
options?: {
|
|
676
|
+
readonly adjustForTimeZone?: boolean | undefined
|
|
677
|
+
}
|
|
678
|
+
): Zoned
|
|
620
679
|
} = dual(isDateTimeArgs, (self: DateTime, zone: TimeZone, options?: {
|
|
621
680
|
readonly adjustForTimeZone?: boolean | undefined
|
|
622
681
|
}): Zoned =>
|
|
@@ -642,12 +701,53 @@ export const setZone: {
|
|
|
642
701
|
* })
|
|
643
702
|
*/
|
|
644
703
|
export const setZoneOffset: {
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
704
|
+
/**
|
|
705
|
+
* Add a fixed offset time zone to a `DateTime`.
|
|
706
|
+
*
|
|
707
|
+
* The offset is in milliseconds.
|
|
708
|
+
*
|
|
709
|
+
* @since 3.6.0
|
|
710
|
+
* @category time zones
|
|
711
|
+
* @example
|
|
712
|
+
* import { DateTime, Effect } from "effect"
|
|
713
|
+
*
|
|
714
|
+
* Effect.gen(function* () {
|
|
715
|
+
* const now = yield* DateTime.now
|
|
716
|
+
*
|
|
717
|
+
* // set the offset time zone in milliseconds
|
|
718
|
+
* const zoned: DateTime.Zoned = DateTime.setZoneOffset(now, 3 * 60 * 60 * 1000)
|
|
719
|
+
* })
|
|
720
|
+
*/
|
|
721
|
+
(
|
|
722
|
+
offset: number,
|
|
723
|
+
options?: {
|
|
724
|
+
readonly adjustForTimeZone?: boolean | undefined
|
|
725
|
+
}
|
|
726
|
+
): (self: DateTime) => Zoned
|
|
727
|
+
/**
|
|
728
|
+
* Add a fixed offset time zone to a `DateTime`.
|
|
729
|
+
*
|
|
730
|
+
* The offset is in milliseconds.
|
|
731
|
+
*
|
|
732
|
+
* @since 3.6.0
|
|
733
|
+
* @category time zones
|
|
734
|
+
* @example
|
|
735
|
+
* import { DateTime, Effect } from "effect"
|
|
736
|
+
*
|
|
737
|
+
* Effect.gen(function* () {
|
|
738
|
+
* const now = yield* DateTime.now
|
|
739
|
+
*
|
|
740
|
+
* // set the offset time zone in milliseconds
|
|
741
|
+
* const zoned: DateTime.Zoned = DateTime.setZoneOffset(now, 3 * 60 * 60 * 1000)
|
|
742
|
+
* })
|
|
743
|
+
*/
|
|
744
|
+
(
|
|
745
|
+
self: DateTime,
|
|
746
|
+
offset: number,
|
|
747
|
+
options?: {
|
|
748
|
+
readonly adjustForTimeZone?: boolean | undefined
|
|
749
|
+
}
|
|
750
|
+
): Zoned
|
|
651
751
|
} = dual(isDateTimeArgs, (self: DateTime, offset: number, options?: {
|
|
652
752
|
readonly adjustForTimeZone?: boolean | undefined
|
|
653
753
|
}): Zoned => setZone(self, zoneMakeOffset(offset), options))
|
|
@@ -799,12 +899,49 @@ export const zoneToString = (self: TimeZone): string => {
|
|
|
799
899
|
* })
|
|
800
900
|
*/
|
|
801
901
|
export const setZoneNamed: {
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
902
|
+
/**
|
|
903
|
+
* Set the time zone of a `DateTime` from an IANA time zone identifier. If the
|
|
904
|
+
* time zone is invalid, `None` will be returned.
|
|
905
|
+
*
|
|
906
|
+
* @since 3.6.0
|
|
907
|
+
* @category time zones
|
|
908
|
+
* @example
|
|
909
|
+
* import { DateTime, Effect } from "effect"
|
|
910
|
+
*
|
|
911
|
+
* Effect.gen(function* () {
|
|
912
|
+
* const now = yield* DateTime.now
|
|
913
|
+
* // set the time zone, returns an Option
|
|
914
|
+
* DateTime.setZoneNamed(now, "Europe/London")
|
|
915
|
+
* })
|
|
916
|
+
*/
|
|
917
|
+
(
|
|
918
|
+
zoneId: string,
|
|
919
|
+
options?: {
|
|
920
|
+
readonly adjustForTimeZone?: boolean | undefined
|
|
921
|
+
}
|
|
922
|
+
): (self: DateTime) => Option.Option<Zoned>
|
|
923
|
+
/**
|
|
924
|
+
* Set the time zone of a `DateTime` from an IANA time zone identifier. If the
|
|
925
|
+
* time zone is invalid, `None` will be returned.
|
|
926
|
+
*
|
|
927
|
+
* @since 3.6.0
|
|
928
|
+
* @category time zones
|
|
929
|
+
* @example
|
|
930
|
+
* import { DateTime, Effect } from "effect"
|
|
931
|
+
*
|
|
932
|
+
* Effect.gen(function* () {
|
|
933
|
+
* const now = yield* DateTime.now
|
|
934
|
+
* // set the time zone, returns an Option
|
|
935
|
+
* DateTime.setZoneNamed(now, "Europe/London")
|
|
936
|
+
* })
|
|
937
|
+
*/
|
|
938
|
+
(
|
|
939
|
+
self: DateTime,
|
|
940
|
+
zoneId: string,
|
|
941
|
+
options?: {
|
|
942
|
+
readonly adjustForTimeZone?: boolean | undefined
|
|
943
|
+
}
|
|
944
|
+
): Option.Option<Zoned>
|
|
808
945
|
} = dual(
|
|
809
946
|
isDateTimeArgs,
|
|
810
947
|
(self: DateTime, zoneId: string, options?: {
|
|
@@ -828,12 +965,49 @@ export const setZoneNamed: {
|
|
|
828
965
|
* })
|
|
829
966
|
*/
|
|
830
967
|
export const unsafeSetZoneNamed: {
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
968
|
+
/**
|
|
969
|
+
* Set the time zone of a `DateTime` from an IANA time zone identifier. If the
|
|
970
|
+
* time zone is invalid, an `IllegalArgumentException` will be thrown.
|
|
971
|
+
*
|
|
972
|
+
* @since 3.6.0
|
|
973
|
+
* @category time zones
|
|
974
|
+
* @example
|
|
975
|
+
* import { DateTime, Effect } from "effect"
|
|
976
|
+
*
|
|
977
|
+
* Effect.gen(function* () {
|
|
978
|
+
* const now = yield* DateTime.now
|
|
979
|
+
* // set the time zone
|
|
980
|
+
* DateTime.unsafeSetZoneNamed(now, "Europe/London")
|
|
981
|
+
* })
|
|
982
|
+
*/
|
|
983
|
+
(
|
|
984
|
+
zoneId: string,
|
|
985
|
+
options?: {
|
|
986
|
+
readonly adjustForTimeZone?: boolean | undefined
|
|
987
|
+
}
|
|
988
|
+
): (self: DateTime) => Zoned
|
|
989
|
+
/**
|
|
990
|
+
* Set the time zone of a `DateTime` from an IANA time zone identifier. If the
|
|
991
|
+
* time zone is invalid, an `IllegalArgumentException` will be thrown.
|
|
992
|
+
*
|
|
993
|
+
* @since 3.6.0
|
|
994
|
+
* @category time zones
|
|
995
|
+
* @example
|
|
996
|
+
* import { DateTime, Effect } from "effect"
|
|
997
|
+
*
|
|
998
|
+
* Effect.gen(function* () {
|
|
999
|
+
* const now = yield* DateTime.now
|
|
1000
|
+
* // set the time zone
|
|
1001
|
+
* DateTime.unsafeSetZoneNamed(now, "Europe/London")
|
|
1002
|
+
* })
|
|
1003
|
+
*/
|
|
1004
|
+
(
|
|
1005
|
+
self: DateTime,
|
|
1006
|
+
zoneId: string,
|
|
1007
|
+
options?: {
|
|
1008
|
+
readonly adjustForTimeZone?: boolean | undefined
|
|
1009
|
+
}
|
|
1010
|
+
): Zoned
|
|
837
1011
|
} = dual(isDateTimeArgs, (self: DateTime, zoneId: string, options?: {
|
|
838
1012
|
readonly adjustForTimeZone?: boolean | undefined
|
|
839
1013
|
}): Zoned => setZone(self, zoneUnsafeMakeNamed(zoneId), options))
|
|
@@ -862,7 +1036,53 @@ export const unsafeSetZoneNamed: {
|
|
|
862
1036
|
* })
|
|
863
1037
|
*/
|
|
864
1038
|
export const distance: {
|
|
1039
|
+
// =============================================================================
|
|
1040
|
+
// comparisons
|
|
1041
|
+
// =============================================================================
|
|
1042
|
+
|
|
1043
|
+
/**
|
|
1044
|
+
* Calulate the difference between two `DateTime` values, returning the number
|
|
1045
|
+
* of milliseconds the `other` DateTime is from `self`.
|
|
1046
|
+
*
|
|
1047
|
+
* If `other` is *after* `self`, the result will be a positive number.
|
|
1048
|
+
*
|
|
1049
|
+
* @since 3.6.0
|
|
1050
|
+
* @category comparisons
|
|
1051
|
+
* @example
|
|
1052
|
+
* import { DateTime, Effect } from "effect"
|
|
1053
|
+
*
|
|
1054
|
+
* Effect.gen(function* () {
|
|
1055
|
+
* const now = yield* DateTime.now
|
|
1056
|
+
* const other = DateTime.add(now, { minutes: 1 })
|
|
1057
|
+
*
|
|
1058
|
+
* // returns 60000
|
|
1059
|
+
* DateTime.distance(now, other)
|
|
1060
|
+
* })
|
|
1061
|
+
*/
|
|
865
1062
|
(other: DateTime): (self: DateTime) => number
|
|
1063
|
+
// =============================================================================
|
|
1064
|
+
// comparisons
|
|
1065
|
+
// =============================================================================
|
|
1066
|
+
|
|
1067
|
+
/**
|
|
1068
|
+
* Calulate the difference between two `DateTime` values, returning the number
|
|
1069
|
+
* of milliseconds the `other` DateTime is from `self`.
|
|
1070
|
+
*
|
|
1071
|
+
* If `other` is *after* `self`, the result will be a positive number.
|
|
1072
|
+
*
|
|
1073
|
+
* @since 3.6.0
|
|
1074
|
+
* @category comparisons
|
|
1075
|
+
* @example
|
|
1076
|
+
* import { DateTime, Effect } from "effect"
|
|
1077
|
+
*
|
|
1078
|
+
* Effect.gen(function* () {
|
|
1079
|
+
* const now = yield* DateTime.now
|
|
1080
|
+
* const other = DateTime.add(now, { minutes: 1 })
|
|
1081
|
+
*
|
|
1082
|
+
* // returns 60000
|
|
1083
|
+
* DateTime.distance(now, other)
|
|
1084
|
+
* })
|
|
1085
|
+
*/
|
|
866
1086
|
(self: DateTime, other: DateTime): number
|
|
867
1087
|
} = dual(2, (self: DateTime, other: DateTime): number => toEpochMillis(other) - toEpochMillis(self))
|
|
868
1088
|
|
|
@@ -892,7 +1112,57 @@ export const distance: {
|
|
|
892
1112
|
* })
|
|
893
1113
|
*/
|
|
894
1114
|
export const distanceDurationEither: {
|
|
1115
|
+
/**
|
|
1116
|
+
* Calulate the difference between two `DateTime` values.
|
|
1117
|
+
*
|
|
1118
|
+
* If the `other` DateTime is before `self`, the result will be a negative
|
|
1119
|
+
* `Duration`, returned as a `Left`.
|
|
1120
|
+
*
|
|
1121
|
+
* If the `other` DateTime is after `self`, the result will be a positive
|
|
1122
|
+
* `Duration`, returned as a `Right`.
|
|
1123
|
+
*
|
|
1124
|
+
* @since 3.6.0
|
|
1125
|
+
* @category comparisons
|
|
1126
|
+
* @example
|
|
1127
|
+
* import { DateTime, Effect } from "effect"
|
|
1128
|
+
*
|
|
1129
|
+
* Effect.gen(function* () {
|
|
1130
|
+
* const now = yield* DateTime.now
|
|
1131
|
+
* const other = DateTime.add(now, { minutes: 1 })
|
|
1132
|
+
*
|
|
1133
|
+
* // returns Either.right(Duration.minutes(1))
|
|
1134
|
+
* DateTime.distanceDurationEither(now, other)
|
|
1135
|
+
*
|
|
1136
|
+
* // returns Either.left(Duration.minutes(1))
|
|
1137
|
+
* DateTime.distanceDurationEither(other, now)
|
|
1138
|
+
* })
|
|
1139
|
+
*/
|
|
895
1140
|
(other: DateTime): (self: DateTime) => Either.Either<Duration.Duration, Duration.Duration>
|
|
1141
|
+
/**
|
|
1142
|
+
* Calulate the difference between two `DateTime` values.
|
|
1143
|
+
*
|
|
1144
|
+
* If the `other` DateTime is before `self`, the result will be a negative
|
|
1145
|
+
* `Duration`, returned as a `Left`.
|
|
1146
|
+
*
|
|
1147
|
+
* If the `other` DateTime is after `self`, the result will be a positive
|
|
1148
|
+
* `Duration`, returned as a `Right`.
|
|
1149
|
+
*
|
|
1150
|
+
* @since 3.6.0
|
|
1151
|
+
* @category comparisons
|
|
1152
|
+
* @example
|
|
1153
|
+
* import { DateTime, Effect } from "effect"
|
|
1154
|
+
*
|
|
1155
|
+
* Effect.gen(function* () {
|
|
1156
|
+
* const now = yield* DateTime.now
|
|
1157
|
+
* const other = DateTime.add(now, { minutes: 1 })
|
|
1158
|
+
*
|
|
1159
|
+
* // returns Either.right(Duration.minutes(1))
|
|
1160
|
+
* DateTime.distanceDurationEither(now, other)
|
|
1161
|
+
*
|
|
1162
|
+
* // returns Either.left(Duration.minutes(1))
|
|
1163
|
+
* DateTime.distanceDurationEither(other, now)
|
|
1164
|
+
* })
|
|
1165
|
+
*/
|
|
896
1166
|
(self: DateTime, other: DateTime): Either.Either<Duration.Duration, Duration.Duration>
|
|
897
1167
|
} = dual(2, (self: DateTime, other: DateTime): Either.Either<Duration.Duration, Duration.Duration> => {
|
|
898
1168
|
const diffMillis = distance(self, other)
|
|
@@ -918,7 +1188,39 @@ export const distanceDurationEither: {
|
|
|
918
1188
|
* })
|
|
919
1189
|
*/
|
|
920
1190
|
export const distanceDuration: {
|
|
1191
|
+
/**
|
|
1192
|
+
* Calulate the distance between two `DateTime` values.
|
|
1193
|
+
*
|
|
1194
|
+
* @since 3.6.0
|
|
1195
|
+
* @category comparisons
|
|
1196
|
+
* @example
|
|
1197
|
+
* import { DateTime, Effect } from "effect"
|
|
1198
|
+
*
|
|
1199
|
+
* Effect.gen(function* () {
|
|
1200
|
+
* const now = yield* DateTime.now
|
|
1201
|
+
* const other = DateTime.add(now, { minutes: 1 })
|
|
1202
|
+
*
|
|
1203
|
+
* // returns Duration.minutes(1)
|
|
1204
|
+
* DateTime.distanceDuration(now, other)
|
|
1205
|
+
* })
|
|
1206
|
+
*/
|
|
921
1207
|
(other: DateTime): (self: DateTime) => Duration.Duration
|
|
1208
|
+
/**
|
|
1209
|
+
* Calulate the distance between two `DateTime` values.
|
|
1210
|
+
*
|
|
1211
|
+
* @since 3.6.0
|
|
1212
|
+
* @category comparisons
|
|
1213
|
+
* @example
|
|
1214
|
+
* import { DateTime, Effect } from "effect"
|
|
1215
|
+
*
|
|
1216
|
+
* Effect.gen(function* () {
|
|
1217
|
+
* const now = yield* DateTime.now
|
|
1218
|
+
* const other = DateTime.add(now, { minutes: 1 })
|
|
1219
|
+
*
|
|
1220
|
+
* // returns Duration.minutes(1)
|
|
1221
|
+
* DateTime.distanceDuration(now, other)
|
|
1222
|
+
* })
|
|
1223
|
+
*/
|
|
922
1224
|
(self: DateTime, other: DateTime): Duration.Duration
|
|
923
1225
|
} = dual(
|
|
924
1226
|
2,
|
|
@@ -930,7 +1232,15 @@ export const distanceDuration: {
|
|
|
930
1232
|
* @category comparisons
|
|
931
1233
|
*/
|
|
932
1234
|
export const min: {
|
|
1235
|
+
/**
|
|
1236
|
+
* @since 3.6.0
|
|
1237
|
+
* @category comparisons
|
|
1238
|
+
*/
|
|
933
1239
|
(that: DateTime): (self: DateTime) => DateTime
|
|
1240
|
+
/**
|
|
1241
|
+
* @since 3.6.0
|
|
1242
|
+
* @category comparisons
|
|
1243
|
+
*/
|
|
934
1244
|
(self: DateTime, that: DateTime): DateTime
|
|
935
1245
|
} = order.min(Order)
|
|
936
1246
|
|
|
@@ -939,7 +1249,15 @@ export const min: {
|
|
|
939
1249
|
* @category comparisons
|
|
940
1250
|
*/
|
|
941
1251
|
export const max: {
|
|
1252
|
+
/**
|
|
1253
|
+
* @since 3.6.0
|
|
1254
|
+
* @category comparisons
|
|
1255
|
+
*/
|
|
942
1256
|
(that: DateTime): (self: DateTime) => DateTime
|
|
1257
|
+
/**
|
|
1258
|
+
* @since 3.6.0
|
|
1259
|
+
* @category comparisons
|
|
1260
|
+
*/
|
|
943
1261
|
(self: DateTime, that: DateTime): DateTime
|
|
944
1262
|
} = order.max(Order)
|
|
945
1263
|
|
|
@@ -948,7 +1266,15 @@ export const max: {
|
|
|
948
1266
|
* @category comparisons
|
|
949
1267
|
*/
|
|
950
1268
|
export const greaterThan: {
|
|
1269
|
+
/**
|
|
1270
|
+
* @since 3.6.0
|
|
1271
|
+
* @category comparisons
|
|
1272
|
+
*/
|
|
951
1273
|
(that: DateTime): (self: DateTime) => boolean
|
|
1274
|
+
/**
|
|
1275
|
+
* @since 3.6.0
|
|
1276
|
+
* @category comparisons
|
|
1277
|
+
*/
|
|
952
1278
|
(self: DateTime, that: DateTime): boolean
|
|
953
1279
|
} = order.greaterThan(Order)
|
|
954
1280
|
|
|
@@ -957,7 +1283,15 @@ export const greaterThan: {
|
|
|
957
1283
|
* @category comparisons
|
|
958
1284
|
*/
|
|
959
1285
|
export const greaterThanOrEqualTo: {
|
|
1286
|
+
/**
|
|
1287
|
+
* @since 3.6.0
|
|
1288
|
+
* @category comparisons
|
|
1289
|
+
*/
|
|
960
1290
|
(that: DateTime): (self: DateTime) => boolean
|
|
1291
|
+
/**
|
|
1292
|
+
* @since 3.6.0
|
|
1293
|
+
* @category comparisons
|
|
1294
|
+
*/
|
|
961
1295
|
(self: DateTime, that: DateTime): boolean
|
|
962
1296
|
} = order.greaterThanOrEqualTo(Order)
|
|
963
1297
|
|
|
@@ -966,7 +1300,15 @@ export const greaterThanOrEqualTo: {
|
|
|
966
1300
|
* @category comparisons
|
|
967
1301
|
*/
|
|
968
1302
|
export const lessThan: {
|
|
1303
|
+
/**
|
|
1304
|
+
* @since 3.6.0
|
|
1305
|
+
* @category comparisons
|
|
1306
|
+
*/
|
|
969
1307
|
(that: DateTime): (self: DateTime) => boolean
|
|
1308
|
+
/**
|
|
1309
|
+
* @since 3.6.0
|
|
1310
|
+
* @category comparisons
|
|
1311
|
+
*/
|
|
970
1312
|
(self: DateTime, that: DateTime): boolean
|
|
971
1313
|
} = order.lessThan(Order)
|
|
972
1314
|
|
|
@@ -975,7 +1317,15 @@ export const lessThan: {
|
|
|
975
1317
|
* @category comparisons
|
|
976
1318
|
*/
|
|
977
1319
|
export const lessThanOrEqualTo: {
|
|
1320
|
+
/**
|
|
1321
|
+
* @since 3.6.0
|
|
1322
|
+
* @category comparisons
|
|
1323
|
+
*/
|
|
978
1324
|
(that: DateTime): (self: DateTime) => boolean
|
|
1325
|
+
/**
|
|
1326
|
+
* @since 3.6.0
|
|
1327
|
+
* @category comparisons
|
|
1328
|
+
*/
|
|
979
1329
|
(self: DateTime, that: DateTime): boolean
|
|
980
1330
|
} = order.lessThanOrEqualTo(Order)
|
|
981
1331
|
|
|
@@ -984,7 +1334,15 @@ export const lessThanOrEqualTo: {
|
|
|
984
1334
|
* @category comparisons
|
|
985
1335
|
*/
|
|
986
1336
|
export const between: {
|
|
1337
|
+
/**
|
|
1338
|
+
* @since 3.6.0
|
|
1339
|
+
* @category comparisons
|
|
1340
|
+
*/
|
|
987
1341
|
(options: { minimum: DateTime; maximum: DateTime }): (self: DateTime) => boolean
|
|
1342
|
+
/**
|
|
1343
|
+
* @since 3.6.0
|
|
1344
|
+
* @category comparisons
|
|
1345
|
+
*/
|
|
988
1346
|
(self: DateTime, options: { minimum: DateTime; maximum: DateTime }): boolean
|
|
989
1347
|
} = order.between(Order)
|
|
990
1348
|
|
|
@@ -1179,7 +1537,35 @@ export const toPartsUtc = (self: DateTime): DateTime.PartsWithWeekday => {
|
|
|
1179
1537
|
* assert.strictEqual(year, 2024)
|
|
1180
1538
|
*/
|
|
1181
1539
|
export const getPartUtc: {
|
|
1540
|
+
/**
|
|
1541
|
+
* Get a part of a `DateTime` as a number.
|
|
1542
|
+
*
|
|
1543
|
+
* The part will be in the UTC time zone.
|
|
1544
|
+
*
|
|
1545
|
+
* @since 3.6.0
|
|
1546
|
+
* @category parts
|
|
1547
|
+
* @example
|
|
1548
|
+
* import { DateTime } from "effect"
|
|
1549
|
+
*
|
|
1550
|
+
* const now = DateTime.unsafeMake({ year: 2024 })
|
|
1551
|
+
* const year = DateTime.getPartUtc(now, "year")
|
|
1552
|
+
* assert.strictEqual(year, 2024)
|
|
1553
|
+
*/
|
|
1182
1554
|
(part: keyof DateTime.PartsWithWeekday): (self: DateTime) => number
|
|
1555
|
+
/**
|
|
1556
|
+
* Get a part of a `DateTime` as a number.
|
|
1557
|
+
*
|
|
1558
|
+
* The part will be in the UTC time zone.
|
|
1559
|
+
*
|
|
1560
|
+
* @since 3.6.0
|
|
1561
|
+
* @category parts
|
|
1562
|
+
* @example
|
|
1563
|
+
* import { DateTime } from "effect"
|
|
1564
|
+
*
|
|
1565
|
+
* const now = DateTime.unsafeMake({ year: 2024 })
|
|
1566
|
+
* const year = DateTime.getPartUtc(now, "year")
|
|
1567
|
+
* assert.strictEqual(year, 2024)
|
|
1568
|
+
*/
|
|
1183
1569
|
(self: DateTime, part: keyof DateTime.PartsWithWeekday): number
|
|
1184
1570
|
} = dual(2, (self: DateTime, part: keyof DateTime.PartsWithWeekday): number => toPartsUtc(self)[part])
|
|
1185
1571
|
|
|
@@ -1198,7 +1584,35 @@ export const getPartUtc: {
|
|
|
1198
1584
|
* assert.strictEqual(year, 2024)
|
|
1199
1585
|
*/
|
|
1200
1586
|
export const getPart: {
|
|
1587
|
+
/**
|
|
1588
|
+
* Get a part of a `DateTime` as a number.
|
|
1589
|
+
*
|
|
1590
|
+
* The part will be time zone adjusted.
|
|
1591
|
+
*
|
|
1592
|
+
* @since 3.6.0
|
|
1593
|
+
* @category parts
|
|
1594
|
+
* @example
|
|
1595
|
+
* import { DateTime } from "effect"
|
|
1596
|
+
*
|
|
1597
|
+
* const now = DateTime.unsafeMakeZoned({ year: 2024 }, { timeZone: "Europe/London" })
|
|
1598
|
+
* const year = DateTime.getPart(now, "year")
|
|
1599
|
+
* assert.strictEqual(year, 2024)
|
|
1600
|
+
*/
|
|
1201
1601
|
(part: keyof DateTime.PartsWithWeekday): (self: DateTime) => number
|
|
1602
|
+
/**
|
|
1603
|
+
* Get a part of a `DateTime` as a number.
|
|
1604
|
+
*
|
|
1605
|
+
* The part will be time zone adjusted.
|
|
1606
|
+
*
|
|
1607
|
+
* @since 3.6.0
|
|
1608
|
+
* @category parts
|
|
1609
|
+
* @example
|
|
1610
|
+
* import { DateTime } from "effect"
|
|
1611
|
+
*
|
|
1612
|
+
* const now = DateTime.unsafeMakeZoned({ year: 2024 }, { timeZone: "Europe/London" })
|
|
1613
|
+
* const year = DateTime.getPart(now, "year")
|
|
1614
|
+
* assert.strictEqual(year, 2024)
|
|
1615
|
+
*/
|
|
1202
1616
|
(self: DateTime, part: keyof DateTime.PartsWithWeekday): number
|
|
1203
1617
|
} = dual(2, (self: DateTime, part: keyof DateTime.PartsWithWeekday): number => toParts(self)[part])
|
|
1204
1618
|
|
|
@@ -1239,7 +1653,23 @@ const setPartsDate = (date: Date, parts: Partial<DateTime.PartsWithWeekday>): vo
|
|
|
1239
1653
|
* @category parts
|
|
1240
1654
|
*/
|
|
1241
1655
|
export const setParts: {
|
|
1656
|
+
/**
|
|
1657
|
+
* Set the different parts of a `DateTime` as an object.
|
|
1658
|
+
*
|
|
1659
|
+
* The Date will be time zone adjusted.
|
|
1660
|
+
*
|
|
1661
|
+
* @since 3.6.0
|
|
1662
|
+
* @category parts
|
|
1663
|
+
*/
|
|
1242
1664
|
(parts: Partial<DateTime.PartsWithWeekday>): <A extends DateTime>(self: A) => DateTime.PreserveZone<A>
|
|
1665
|
+
/**
|
|
1666
|
+
* Set the different parts of a `DateTime` as an object.
|
|
1667
|
+
*
|
|
1668
|
+
* The Date will be time zone adjusted.
|
|
1669
|
+
*
|
|
1670
|
+
* @since 3.6.0
|
|
1671
|
+
* @category parts
|
|
1672
|
+
*/
|
|
1243
1673
|
<A extends DateTime>(self: A, parts: Partial<DateTime.PartsWithWeekday>): DateTime.PreserveZone<A>
|
|
1244
1674
|
} = dual(
|
|
1245
1675
|
2,
|
|
@@ -1254,7 +1684,19 @@ export const setParts: {
|
|
|
1254
1684
|
* @category parts
|
|
1255
1685
|
*/
|
|
1256
1686
|
export const setPartsUtc: {
|
|
1687
|
+
/**
|
|
1688
|
+
* Set the different parts of a `DateTime` as an object.
|
|
1689
|
+
*
|
|
1690
|
+
* @since 3.6.0
|
|
1691
|
+
* @category parts
|
|
1692
|
+
*/
|
|
1257
1693
|
(parts: Partial<DateTime.PartsWithWeekday>): <A extends DateTime>(self: A) => DateTime.PreserveZone<A>
|
|
1694
|
+
/**
|
|
1695
|
+
* Set the different parts of a `DateTime` as an object.
|
|
1696
|
+
*
|
|
1697
|
+
* @since 3.6.0
|
|
1698
|
+
* @category parts
|
|
1699
|
+
*/
|
|
1258
1700
|
<A extends DateTime>(self: A, parts: Partial<DateTime.PartsWithWeekday>): DateTime.PreserveZone<A>
|
|
1259
1701
|
} = dual(
|
|
1260
1702
|
2,
|
|
@@ -1309,7 +1751,35 @@ export const setZoneCurrent = (self: DateTime): Effect.Effect<Zoned, never, Curr
|
|
|
1309
1751
|
* }).pipe(DateTime.withCurrentZone(zone))
|
|
1310
1752
|
*/
|
|
1311
1753
|
export const withCurrentZone: {
|
|
1754
|
+
/**
|
|
1755
|
+
* Provide the `CurrentTimeZone` to an effect.
|
|
1756
|
+
*
|
|
1757
|
+
* @since 3.6.0
|
|
1758
|
+
* @category current time zone
|
|
1759
|
+
* @example
|
|
1760
|
+
* import { DateTime, Effect } from "effect"
|
|
1761
|
+
*
|
|
1762
|
+
* const zone = DateTime.zoneUnsafeMakeNamed("Europe/London")
|
|
1763
|
+
*
|
|
1764
|
+
* Effect.gen(function* () {
|
|
1765
|
+
* const now = yield* DateTime.nowInCurrentZone
|
|
1766
|
+
* }).pipe(DateTime.withCurrentZone(zone))
|
|
1767
|
+
*/
|
|
1312
1768
|
(zone: TimeZone): <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, Exclude<R, CurrentTimeZone>>
|
|
1769
|
+
/**
|
|
1770
|
+
* Provide the `CurrentTimeZone` to an effect.
|
|
1771
|
+
*
|
|
1772
|
+
* @since 3.6.0
|
|
1773
|
+
* @category current time zone
|
|
1774
|
+
* @example
|
|
1775
|
+
* import { DateTime, Effect } from "effect"
|
|
1776
|
+
*
|
|
1777
|
+
* const zone = DateTime.zoneUnsafeMakeNamed("Europe/London")
|
|
1778
|
+
*
|
|
1779
|
+
* Effect.gen(function* () {
|
|
1780
|
+
* const now = yield* DateTime.nowInCurrentZone
|
|
1781
|
+
* }).pipe(DateTime.withCurrentZone(zone))
|
|
1782
|
+
*/
|
|
1313
1783
|
<A, E, R>(effect: Effect.Effect<A, E, R>, zone: TimeZone): Effect.Effect<A, E, Exclude<R, CurrentTimeZone>>
|
|
1314
1784
|
} = dual(
|
|
1315
1785
|
2,
|
|
@@ -1350,9 +1820,35 @@ export const withCurrentZoneLocal = <A, E, R>(
|
|
|
1350
1820
|
* }).pipe(DateTime.withCurrentZoneOffset(3 * 60 * 60 * 1000))
|
|
1351
1821
|
*/
|
|
1352
1822
|
export const withCurrentZoneOffset: {
|
|
1823
|
+
/**
|
|
1824
|
+
* Provide the `CurrentTimeZone` to an effect, using a offset.
|
|
1825
|
+
*
|
|
1826
|
+
* @since 3.6.0
|
|
1827
|
+
* @category current time zone
|
|
1828
|
+
* @example
|
|
1829
|
+
* import { DateTime, Effect } from "effect"
|
|
1830
|
+
*
|
|
1831
|
+
* Effect.gen(function* () {
|
|
1832
|
+
* // will use the system's local time zone
|
|
1833
|
+
* const now = yield* DateTime.nowInCurrentZone
|
|
1834
|
+
* }).pipe(DateTime.withCurrentZoneOffset(3 * 60 * 60 * 1000))
|
|
1835
|
+
*/
|
|
1353
1836
|
(offset: number): <A, E, R>(
|
|
1354
1837
|
effect: Effect.Effect<A, E, R>
|
|
1355
1838
|
) => Effect.Effect<A, E, Exclude<R, CurrentTimeZone>>
|
|
1839
|
+
/**
|
|
1840
|
+
* Provide the `CurrentTimeZone` to an effect, using a offset.
|
|
1841
|
+
*
|
|
1842
|
+
* @since 3.6.0
|
|
1843
|
+
* @category current time zone
|
|
1844
|
+
* @example
|
|
1845
|
+
* import { DateTime, Effect } from "effect"
|
|
1846
|
+
*
|
|
1847
|
+
* Effect.gen(function* () {
|
|
1848
|
+
* // will use the system's local time zone
|
|
1849
|
+
* const now = yield* DateTime.nowInCurrentZone
|
|
1850
|
+
* }).pipe(DateTime.withCurrentZoneOffset(3 * 60 * 60 * 1000))
|
|
1851
|
+
*/
|
|
1356
1852
|
<A, E, R>(effect: Effect.Effect<A, E, R>, offset: number): Effect.Effect<A, E, Exclude<R, CurrentTimeZone>>
|
|
1357
1853
|
} = dual(
|
|
1358
1854
|
2,
|
|
@@ -1377,9 +1873,41 @@ export const withCurrentZoneOffset: {
|
|
|
1377
1873
|
* }).pipe(DateTime.withCurrentZoneNamed("Europe/London"))
|
|
1378
1874
|
*/
|
|
1379
1875
|
export const withCurrentZoneNamed: {
|
|
1876
|
+
/**
|
|
1877
|
+
* Provide the `CurrentTimeZone` to an effect using an IANA time zone
|
|
1878
|
+
* identifier.
|
|
1879
|
+
*
|
|
1880
|
+
* If the time zone is invalid, it will fail with an `IllegalArgumentException`.
|
|
1881
|
+
*
|
|
1882
|
+
* @since 3.6.0
|
|
1883
|
+
* @category current time zone
|
|
1884
|
+
* @example
|
|
1885
|
+
* import { DateTime, Effect } from "effect"
|
|
1886
|
+
*
|
|
1887
|
+
* Effect.gen(function* () {
|
|
1888
|
+
* // will use the "Europe/London" time zone
|
|
1889
|
+
* const now = yield* DateTime.nowInCurrentZone
|
|
1890
|
+
* }).pipe(DateTime.withCurrentZoneNamed("Europe/London"))
|
|
1891
|
+
*/
|
|
1380
1892
|
(zone: string): <A, E, R>(
|
|
1381
1893
|
effect: Effect.Effect<A, E, R>
|
|
1382
1894
|
) => Effect.Effect<A, E | IllegalArgumentException, Exclude<R, CurrentTimeZone>>
|
|
1895
|
+
/**
|
|
1896
|
+
* Provide the `CurrentTimeZone` to an effect using an IANA time zone
|
|
1897
|
+
* identifier.
|
|
1898
|
+
*
|
|
1899
|
+
* If the time zone is invalid, it will fail with an `IllegalArgumentException`.
|
|
1900
|
+
*
|
|
1901
|
+
* @since 3.6.0
|
|
1902
|
+
* @category current time zone
|
|
1903
|
+
* @example
|
|
1904
|
+
* import { DateTime, Effect } from "effect"
|
|
1905
|
+
*
|
|
1906
|
+
* Effect.gen(function* () {
|
|
1907
|
+
* // will use the "Europe/London" time zone
|
|
1908
|
+
* const now = yield* DateTime.nowInCurrentZone
|
|
1909
|
+
* }).pipe(DateTime.withCurrentZoneNamed("Europe/London"))
|
|
1910
|
+
*/
|
|
1383
1911
|
<A, E, R>(
|
|
1384
1912
|
effect: Effect.Effect<A, E, R>,
|
|
1385
1913
|
zone: string
|
|
@@ -1490,7 +2018,25 @@ const calculateNamedOffset = (adjustedMillis: number, zone: TimeZone.Named): num
|
|
|
1490
2018
|
* @category mapping
|
|
1491
2019
|
*/
|
|
1492
2020
|
export const mutate: {
|
|
2021
|
+
/**
|
|
2022
|
+
* Modify a `DateTime` by applying a function to a cloned `Date` instance.
|
|
2023
|
+
*
|
|
2024
|
+
* The `Date` will first have the time zone applied if possible, and then be
|
|
2025
|
+
* converted back to a `DateTime` within the same time zone.
|
|
2026
|
+
*
|
|
2027
|
+
* @since 3.6.0
|
|
2028
|
+
* @category mapping
|
|
2029
|
+
*/
|
|
1493
2030
|
(f: (date: Date) => void): <A extends DateTime>(self: A) => DateTime.PreserveZone<A>
|
|
2031
|
+
/**
|
|
2032
|
+
* Modify a `DateTime` by applying a function to a cloned `Date` instance.
|
|
2033
|
+
*
|
|
2034
|
+
* The `Date` will first have the time zone applied if possible, and then be
|
|
2035
|
+
* converted back to a `DateTime` within the same time zone.
|
|
2036
|
+
*
|
|
2037
|
+
* @since 3.6.0
|
|
2038
|
+
* @category mapping
|
|
2039
|
+
*/
|
|
1494
2040
|
<A extends DateTime>(self: A, f: (date: Date) => void): DateTime.PreserveZone<A>
|
|
1495
2041
|
} = dual(2, (self: DateTime, f: (date: Date) => void): DateTime => {
|
|
1496
2042
|
if (self._tag === "Utc") {
|
|
@@ -1511,7 +2057,19 @@ export const mutate: {
|
|
|
1511
2057
|
* @category mapping
|
|
1512
2058
|
*/
|
|
1513
2059
|
export const mutateUtc: {
|
|
2060
|
+
/**
|
|
2061
|
+
* Modify a `DateTime` by applying a function to a cloned UTC `Date` instance.
|
|
2062
|
+
*
|
|
2063
|
+
* @since 3.6.0
|
|
2064
|
+
* @category mapping
|
|
2065
|
+
*/
|
|
1514
2066
|
(f: (date: Date) => void): <A extends DateTime>(self: A) => DateTime.PreserveZone<A>
|
|
2067
|
+
/**
|
|
2068
|
+
* Modify a `DateTime` by applying a function to a cloned UTC `Date` instance.
|
|
2069
|
+
*
|
|
2070
|
+
* @since 3.6.0
|
|
2071
|
+
* @category mapping
|
|
2072
|
+
*/
|
|
1515
2073
|
<A extends DateTime>(self: A, f: (date: Date) => void): DateTime.PreserveZone<A>
|
|
1516
2074
|
} = dual(2, (self: DateTime, f: (date: Date) => void): DateTime =>
|
|
1517
2075
|
mapEpochMillis(self, (millis) => {
|
|
@@ -1535,7 +2093,35 @@ export const mutateUtc: {
|
|
|
1535
2093
|
* )
|
|
1536
2094
|
*/
|
|
1537
2095
|
export const mapEpochMillis: {
|
|
2096
|
+
/**
|
|
2097
|
+
* Transform a `DateTime` by applying a function to the number of milliseconds
|
|
2098
|
+
* since the Unix epoch.
|
|
2099
|
+
*
|
|
2100
|
+
* @since 3.6.0
|
|
2101
|
+
* @category mapping
|
|
2102
|
+
* @example
|
|
2103
|
+
* import { DateTime } from "effect"
|
|
2104
|
+
*
|
|
2105
|
+
* // add 10 milliseconds
|
|
2106
|
+
* DateTime.unsafeMake(0).pipe(
|
|
2107
|
+
* DateTime.mapEpochMillis((millis) => millis + 10)
|
|
2108
|
+
* )
|
|
2109
|
+
*/
|
|
1538
2110
|
(f: (millis: number) => number): <A extends DateTime>(self: A) => DateTime.PreserveZone<A>
|
|
2111
|
+
/**
|
|
2112
|
+
* Transform a `DateTime` by applying a function to the number of milliseconds
|
|
2113
|
+
* since the Unix epoch.
|
|
2114
|
+
*
|
|
2115
|
+
* @since 3.6.0
|
|
2116
|
+
* @category mapping
|
|
2117
|
+
* @example
|
|
2118
|
+
* import { DateTime } from "effect"
|
|
2119
|
+
*
|
|
2120
|
+
* // add 10 milliseconds
|
|
2121
|
+
* DateTime.unsafeMake(0).pipe(
|
|
2122
|
+
* DateTime.mapEpochMillis((millis) => millis + 10)
|
|
2123
|
+
* )
|
|
2124
|
+
*/
|
|
1539
2125
|
<A extends DateTime>(self: A, f: (millis: number) => number): DateTime.PreserveZone<A>
|
|
1540
2126
|
} = dual(2, (self: DateTime, f: (millis: number) => number): DateTime => {
|
|
1541
2127
|
const millis = f(toEpochMillis(self))
|
|
@@ -1557,7 +2143,35 @@ export const mapEpochMillis: {
|
|
|
1557
2143
|
* )
|
|
1558
2144
|
*/
|
|
1559
2145
|
export const withDate: {
|
|
2146
|
+
/**
|
|
2147
|
+
* Using the time zone adjusted `Date`, apply a function to the `Date` and
|
|
2148
|
+
* return the result.
|
|
2149
|
+
*
|
|
2150
|
+
* @since 3.6.0
|
|
2151
|
+
* @category mapping
|
|
2152
|
+
* @example
|
|
2153
|
+
* import { DateTime } from "effect"
|
|
2154
|
+
*
|
|
2155
|
+
* // get the time zone adjusted date in milliseconds
|
|
2156
|
+
* DateTime.unsafeMakeZoned(0, { timeZone: "Europe/London" }).pipe(
|
|
2157
|
+
* DateTime.withDate((date) => date.getTime())
|
|
2158
|
+
* )
|
|
2159
|
+
*/
|
|
1560
2160
|
<A>(f: (date: Date) => A): (self: DateTime) => A
|
|
2161
|
+
/**
|
|
2162
|
+
* Using the time zone adjusted `Date`, apply a function to the `Date` and
|
|
2163
|
+
* return the result.
|
|
2164
|
+
*
|
|
2165
|
+
* @since 3.6.0
|
|
2166
|
+
* @category mapping
|
|
2167
|
+
* @example
|
|
2168
|
+
* import { DateTime } from "effect"
|
|
2169
|
+
*
|
|
2170
|
+
* // get the time zone adjusted date in milliseconds
|
|
2171
|
+
* DateTime.unsafeMakeZoned(0, { timeZone: "Europe/London" }).pipe(
|
|
2172
|
+
* DateTime.withDate((date) => date.getTime())
|
|
2173
|
+
* )
|
|
2174
|
+
*/
|
|
1561
2175
|
<A>(self: DateTime, f: (date: Date) => A): A
|
|
1562
2176
|
} = dual(2, <A>(self: DateTime, f: (date: Date) => A): A => f(toDate(self)))
|
|
1563
2177
|
|
|
@@ -1576,7 +2190,35 @@ export const withDate: {
|
|
|
1576
2190
|
* )
|
|
1577
2191
|
*/
|
|
1578
2192
|
export const withDateUtc: {
|
|
2193
|
+
/**
|
|
2194
|
+
* Using the time zone adjusted `Date`, apply a function to the `Date` and
|
|
2195
|
+
* return the result.
|
|
2196
|
+
*
|
|
2197
|
+
* @since 3.6.0
|
|
2198
|
+
* @category mapping
|
|
2199
|
+
* @example
|
|
2200
|
+
* import { DateTime } from "effect"
|
|
2201
|
+
*
|
|
2202
|
+
* // get the date in milliseconds
|
|
2203
|
+
* DateTime.unsafeMake(0).pipe(
|
|
2204
|
+
* DateTime.withDateUtc((date) => date.getTime())
|
|
2205
|
+
* )
|
|
2206
|
+
*/
|
|
1579
2207
|
<A>(f: (date: Date) => A): (self: DateTime) => A
|
|
2208
|
+
/**
|
|
2209
|
+
* Using the time zone adjusted `Date`, apply a function to the `Date` and
|
|
2210
|
+
* return the result.
|
|
2211
|
+
*
|
|
2212
|
+
* @since 3.6.0
|
|
2213
|
+
* @category mapping
|
|
2214
|
+
* @example
|
|
2215
|
+
* import { DateTime } from "effect"
|
|
2216
|
+
*
|
|
2217
|
+
* // get the date in milliseconds
|
|
2218
|
+
* DateTime.unsafeMake(0).pipe(
|
|
2219
|
+
* DateTime.withDateUtc((date) => date.getTime())
|
|
2220
|
+
* )
|
|
2221
|
+
*/
|
|
1580
2222
|
<A>(self: DateTime, f: (date: Date) => A): A
|
|
1581
2223
|
} = dual(2, <A>(self: DateTime, f: (date: Date) => A): A => f(toDateUtc(self)))
|
|
1582
2224
|
|
|
@@ -1585,14 +2227,27 @@ export const withDateUtc: {
|
|
|
1585
2227
|
* @category mapping
|
|
1586
2228
|
*/
|
|
1587
2229
|
export const match: {
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
<A, B>(
|
|
1593
|
-
|
|
1594
|
-
|
|
1595
|
-
|
|
2230
|
+
/**
|
|
2231
|
+
* @since 3.6.0
|
|
2232
|
+
* @category mapping
|
|
2233
|
+
*/
|
|
2234
|
+
<A, B>(
|
|
2235
|
+
options: {
|
|
2236
|
+
readonly onUtc: (_: Utc) => A
|
|
2237
|
+
readonly onZoned: (_: Zoned) => B
|
|
2238
|
+
}
|
|
2239
|
+
): (self: DateTime) => A | B
|
|
2240
|
+
/**
|
|
2241
|
+
* @since 3.6.0
|
|
2242
|
+
* @category mapping
|
|
2243
|
+
*/
|
|
2244
|
+
<A, B>(
|
|
2245
|
+
self: DateTime,
|
|
2246
|
+
options: {
|
|
2247
|
+
readonly onUtc: (_: Utc) => A
|
|
2248
|
+
readonly onZoned: (_: Zoned) => B
|
|
2249
|
+
}
|
|
2250
|
+
): A | B
|
|
1596
2251
|
} = dual(2, <A, B>(self: DateTime, options: {
|
|
1597
2252
|
readonly onUtc: (_: Utc) => A
|
|
1598
2253
|
readonly onZoned: (_: Zoned) => B
|
|
@@ -1616,7 +2271,41 @@ export const match: {
|
|
|
1616
2271
|
* )
|
|
1617
2272
|
*/
|
|
1618
2273
|
export const addDuration: {
|
|
2274
|
+
// =============================================================================
|
|
2275
|
+
// math
|
|
2276
|
+
// =============================================================================
|
|
2277
|
+
|
|
2278
|
+
/**
|
|
2279
|
+
* Add the given `Duration` to a `DateTime`.
|
|
2280
|
+
*
|
|
2281
|
+
* @since 3.6.0
|
|
2282
|
+
* @category math
|
|
2283
|
+
* @example
|
|
2284
|
+
* import { DateTime } from "effect"
|
|
2285
|
+
*
|
|
2286
|
+
* // add 5 minutes
|
|
2287
|
+
* DateTime.unsafeMake(0).pipe(
|
|
2288
|
+
* DateTime.addDuration("5 minutes")
|
|
2289
|
+
* )
|
|
2290
|
+
*/
|
|
1619
2291
|
(duration: Duration.DurationInput): <A extends DateTime>(self: A) => DateTime.PreserveZone<A>
|
|
2292
|
+
// =============================================================================
|
|
2293
|
+
// math
|
|
2294
|
+
// =============================================================================
|
|
2295
|
+
|
|
2296
|
+
/**
|
|
2297
|
+
* Add the given `Duration` to a `DateTime`.
|
|
2298
|
+
*
|
|
2299
|
+
* @since 3.6.0
|
|
2300
|
+
* @category math
|
|
2301
|
+
* @example
|
|
2302
|
+
* import { DateTime } from "effect"
|
|
2303
|
+
*
|
|
2304
|
+
* // add 5 minutes
|
|
2305
|
+
* DateTime.unsafeMake(0).pipe(
|
|
2306
|
+
* DateTime.addDuration("5 minutes")
|
|
2307
|
+
* )
|
|
2308
|
+
*/
|
|
1620
2309
|
<A extends DateTime>(self: A, duration: Duration.DurationInput): DateTime.PreserveZone<A>
|
|
1621
2310
|
} = dual(
|
|
1622
2311
|
2,
|
|
@@ -1638,7 +2327,33 @@ export const addDuration: {
|
|
|
1638
2327
|
* )
|
|
1639
2328
|
*/
|
|
1640
2329
|
export const subtractDuration: {
|
|
2330
|
+
/**
|
|
2331
|
+
* Subtract the given `Duration` from a `DateTime`.
|
|
2332
|
+
*
|
|
2333
|
+
* @since 3.6.0
|
|
2334
|
+
* @category math
|
|
2335
|
+
* @example
|
|
2336
|
+
* import { DateTime } from "effect"
|
|
2337
|
+
*
|
|
2338
|
+
* // subtract 5 minutes
|
|
2339
|
+
* DateTime.unsafeMake(0).pipe(
|
|
2340
|
+
* DateTime.subtractDuration("5 minutes")
|
|
2341
|
+
* )
|
|
2342
|
+
*/
|
|
1641
2343
|
(duration: Duration.DurationInput): <A extends DateTime>(self: A) => DateTime.PreserveZone<A>
|
|
2344
|
+
/**
|
|
2345
|
+
* Subtract the given `Duration` from a `DateTime`.
|
|
2346
|
+
*
|
|
2347
|
+
* @since 3.6.0
|
|
2348
|
+
* @category math
|
|
2349
|
+
* @example
|
|
2350
|
+
* import { DateTime } from "effect"
|
|
2351
|
+
*
|
|
2352
|
+
* // subtract 5 minutes
|
|
2353
|
+
* DateTime.unsafeMake(0).pipe(
|
|
2354
|
+
* DateTime.subtractDuration("5 minutes")
|
|
2355
|
+
* )
|
|
2356
|
+
*/
|
|
1642
2357
|
<A extends DateTime>(self: A, duration: Duration.DurationInput): DateTime.PreserveZone<A>
|
|
1643
2358
|
} = dual(
|
|
1644
2359
|
2,
|
|
@@ -1667,7 +2382,39 @@ const addMillis = (date: Date, amount: number): void => {
|
|
|
1667
2382
|
* )
|
|
1668
2383
|
*/
|
|
1669
2384
|
export const add: {
|
|
2385
|
+
/**
|
|
2386
|
+
* Add the given `amount` of `unit`'s to a `DateTime`.
|
|
2387
|
+
*
|
|
2388
|
+
* The time zone is taken into account when adding days, weeks, months, and
|
|
2389
|
+
* years.
|
|
2390
|
+
*
|
|
2391
|
+
* @since 3.6.0
|
|
2392
|
+
* @category math
|
|
2393
|
+
* @example
|
|
2394
|
+
* import { DateTime } from "effect"
|
|
2395
|
+
*
|
|
2396
|
+
* // add 5 minutes
|
|
2397
|
+
* DateTime.unsafeMake(0).pipe(
|
|
2398
|
+
* DateTime.add({ minutes: 5 })
|
|
2399
|
+
* )
|
|
2400
|
+
*/
|
|
1670
2401
|
(parts: Partial<DateTime.PartsForMath>): <A extends DateTime>(self: A) => DateTime.PreserveZone<A>
|
|
2402
|
+
/**
|
|
2403
|
+
* Add the given `amount` of `unit`'s to a `DateTime`.
|
|
2404
|
+
*
|
|
2405
|
+
* The time zone is taken into account when adding days, weeks, months, and
|
|
2406
|
+
* years.
|
|
2407
|
+
*
|
|
2408
|
+
* @since 3.6.0
|
|
2409
|
+
* @category math
|
|
2410
|
+
* @example
|
|
2411
|
+
* import { DateTime } from "effect"
|
|
2412
|
+
*
|
|
2413
|
+
* // add 5 minutes
|
|
2414
|
+
* DateTime.unsafeMake(0).pipe(
|
|
2415
|
+
* DateTime.add({ minutes: 5 })
|
|
2416
|
+
* )
|
|
2417
|
+
*/
|
|
1671
2418
|
<A extends DateTime>(self: A, parts: Partial<DateTime.PartsForMath>): DateTime.PreserveZone<A>
|
|
1672
2419
|
} = dual(2, (self: DateTime, parts: Partial<DateTime.PartsForMath>): DateTime =>
|
|
1673
2420
|
mutate(self, (date) => {
|
|
@@ -1724,7 +2471,33 @@ export const add: {
|
|
|
1724
2471
|
* )
|
|
1725
2472
|
*/
|
|
1726
2473
|
export const subtract: {
|
|
2474
|
+
/**
|
|
2475
|
+
* Subtract the given `amount` of `unit`'s from a `DateTime`.
|
|
2476
|
+
*
|
|
2477
|
+
* @since 3.6.0
|
|
2478
|
+
* @category math
|
|
2479
|
+
* @example
|
|
2480
|
+
* import { DateTime } from "effect"
|
|
2481
|
+
*
|
|
2482
|
+
* // subtract 5 minutes
|
|
2483
|
+
* DateTime.unsafeMake(0).pipe(
|
|
2484
|
+
* DateTime.subtract({ minutes: 5 })
|
|
2485
|
+
* )
|
|
2486
|
+
*/
|
|
1727
2487
|
(parts: Partial<DateTime.PartsForMath>): <A extends DateTime>(self: A) => DateTime.PreserveZone<A>
|
|
2488
|
+
/**
|
|
2489
|
+
* Subtract the given `amount` of `unit`'s from a `DateTime`.
|
|
2490
|
+
*
|
|
2491
|
+
* @since 3.6.0
|
|
2492
|
+
* @category math
|
|
2493
|
+
* @example
|
|
2494
|
+
* import { DateTime } from "effect"
|
|
2495
|
+
*
|
|
2496
|
+
* // subtract 5 minutes
|
|
2497
|
+
* DateTime.unsafeMake(0).pipe(
|
|
2498
|
+
* DateTime.subtract({ minutes: 5 })
|
|
2499
|
+
* )
|
|
2500
|
+
*/
|
|
1728
2501
|
<A extends DateTime>(self: A, parts: Partial<DateTime.PartsForMath>): DateTime.PreserveZone<A>
|
|
1729
2502
|
} = dual(2, (self: DateTime, parts: Partial<DateTime.PartsForMath>): DateTime => {
|
|
1730
2503
|
const newParts = {} as Partial<Mutable<DateTime.PartsForMath>>
|
|
@@ -1793,12 +2566,53 @@ function startOfDate(date: Date, part: DateTime.UnitSingular, options?: {
|
|
|
1793
2566
|
* )
|
|
1794
2567
|
*/
|
|
1795
2568
|
export const startOf: {
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
2569
|
+
/**
|
|
2570
|
+
* Converts a `DateTime` to the start of the given `part`.
|
|
2571
|
+
*
|
|
2572
|
+
* If the part is `week`, the `weekStartsOn` option can be used to specify the
|
|
2573
|
+
* day of the week that the week starts on. The default is 0 (Sunday).
|
|
2574
|
+
*
|
|
2575
|
+
* @since 3.6.0
|
|
2576
|
+
* @category math
|
|
2577
|
+
* @example
|
|
2578
|
+
* import { DateTime } from "effect"
|
|
2579
|
+
*
|
|
2580
|
+
* // returns "2024-01-01T00:00:00Z"
|
|
2581
|
+
* DateTime.unsafeMake("2024-01-01T12:00:00Z").pipe(
|
|
2582
|
+
* DateTime.startOf("day"),
|
|
2583
|
+
* DateTime.formatIso
|
|
2584
|
+
* )
|
|
2585
|
+
*/
|
|
2586
|
+
(
|
|
2587
|
+
part: DateTime.UnitSingular,
|
|
2588
|
+
options?: {
|
|
2589
|
+
readonly weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | undefined
|
|
2590
|
+
}
|
|
2591
|
+
): <A extends DateTime>(self: A) => DateTime.PreserveZone<A>
|
|
2592
|
+
/**
|
|
2593
|
+
* Converts a `DateTime` to the start of the given `part`.
|
|
2594
|
+
*
|
|
2595
|
+
* If the part is `week`, the `weekStartsOn` option can be used to specify the
|
|
2596
|
+
* day of the week that the week starts on. The default is 0 (Sunday).
|
|
2597
|
+
*
|
|
2598
|
+
* @since 3.6.0
|
|
2599
|
+
* @category math
|
|
2600
|
+
* @example
|
|
2601
|
+
* import { DateTime } from "effect"
|
|
2602
|
+
*
|
|
2603
|
+
* // returns "2024-01-01T00:00:00Z"
|
|
2604
|
+
* DateTime.unsafeMake("2024-01-01T12:00:00Z").pipe(
|
|
2605
|
+
* DateTime.startOf("day"),
|
|
2606
|
+
* DateTime.formatIso
|
|
2607
|
+
* )
|
|
2608
|
+
*/
|
|
2609
|
+
<A extends DateTime>(
|
|
2610
|
+
self: A,
|
|
2611
|
+
part: DateTime.UnitSingular,
|
|
2612
|
+
options?: {
|
|
2613
|
+
readonly weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | undefined
|
|
2614
|
+
}
|
|
2615
|
+
): DateTime.PreserveZone<A>
|
|
1802
2616
|
} = dual(isDateTimeArgs, (self: DateTime, part: DateTime.UnitSingular, options?: {
|
|
1803
2617
|
readonly weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | undefined
|
|
1804
2618
|
}): DateTime => mutate(self, (date) => startOfDate(date, part, options)))
|
|
@@ -1862,12 +2676,53 @@ function endOfDate(date: Date, part: DateTime.UnitSingular, options?: {
|
|
|
1862
2676
|
* )
|
|
1863
2677
|
*/
|
|
1864
2678
|
export const endOf: {
|
|
1865
|
-
|
|
1866
|
-
|
|
1867
|
-
|
|
1868
|
-
|
|
1869
|
-
|
|
1870
|
-
|
|
2679
|
+
/**
|
|
2680
|
+
* Converts a `DateTime` to the end of the given `part`.
|
|
2681
|
+
*
|
|
2682
|
+
* If the part is `week`, the `weekStartsOn` option can be used to specify the
|
|
2683
|
+
* day of the week that the week starts on. The default is 0 (Sunday).
|
|
2684
|
+
*
|
|
2685
|
+
* @since 3.6.0
|
|
2686
|
+
* @category math
|
|
2687
|
+
* @example
|
|
2688
|
+
* import { DateTime } from "effect"
|
|
2689
|
+
*
|
|
2690
|
+
* // returns "2024-01-01T23:59:59.999Z"
|
|
2691
|
+
* DateTime.unsafeMake("2024-01-01T12:00:00Z").pipe(
|
|
2692
|
+
* DateTime.endOf("day"),
|
|
2693
|
+
* DateTime.formatIso
|
|
2694
|
+
* )
|
|
2695
|
+
*/
|
|
2696
|
+
(
|
|
2697
|
+
part: DateTime.UnitSingular,
|
|
2698
|
+
options?: {
|
|
2699
|
+
readonly weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | undefined
|
|
2700
|
+
}
|
|
2701
|
+
): <A extends DateTime>(self: A) => DateTime.PreserveZone<A>
|
|
2702
|
+
/**
|
|
2703
|
+
* Converts a `DateTime` to the end of the given `part`.
|
|
2704
|
+
*
|
|
2705
|
+
* If the part is `week`, the `weekStartsOn` option can be used to specify the
|
|
2706
|
+
* day of the week that the week starts on. The default is 0 (Sunday).
|
|
2707
|
+
*
|
|
2708
|
+
* @since 3.6.0
|
|
2709
|
+
* @category math
|
|
2710
|
+
* @example
|
|
2711
|
+
* import { DateTime } from "effect"
|
|
2712
|
+
*
|
|
2713
|
+
* // returns "2024-01-01T23:59:59.999Z"
|
|
2714
|
+
* DateTime.unsafeMake("2024-01-01T12:00:00Z").pipe(
|
|
2715
|
+
* DateTime.endOf("day"),
|
|
2716
|
+
* DateTime.formatIso
|
|
2717
|
+
* )
|
|
2718
|
+
*/
|
|
2719
|
+
<A extends DateTime>(
|
|
2720
|
+
self: A,
|
|
2721
|
+
part: DateTime.UnitSingular,
|
|
2722
|
+
options?: {
|
|
2723
|
+
readonly weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | undefined
|
|
2724
|
+
}
|
|
2725
|
+
): DateTime.PreserveZone<A>
|
|
1871
2726
|
} = dual(isDateTimeArgs, (self: DateTime, part: DateTime.UnitSingular, options?: {
|
|
1872
2727
|
readonly weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | undefined
|
|
1873
2728
|
}): DateTime => mutate(self, (date) => endOfDate(date, part, options)))
|
|
@@ -1890,12 +2745,53 @@ export const endOf: {
|
|
|
1890
2745
|
* )
|
|
1891
2746
|
*/
|
|
1892
2747
|
export const nearest: {
|
|
1893
|
-
|
|
1894
|
-
|
|
1895
|
-
|
|
1896
|
-
|
|
1897
|
-
|
|
1898
|
-
|
|
2748
|
+
/**
|
|
2749
|
+
* Converts a `DateTime` to the nearest given `part`.
|
|
2750
|
+
*
|
|
2751
|
+
* If the part is `week`, the `weekStartsOn` option can be used to specify the
|
|
2752
|
+
* day of the week that the week starts on. The default is 0 (Sunday).
|
|
2753
|
+
*
|
|
2754
|
+
* @since 3.6.0
|
|
2755
|
+
* @category math
|
|
2756
|
+
* @example
|
|
2757
|
+
* import { DateTime } from "effect"
|
|
2758
|
+
*
|
|
2759
|
+
* // returns "2024-01-02T00:00:00Z"
|
|
2760
|
+
* DateTime.unsafeMake("2024-01-01T12:01:00Z").pipe(
|
|
2761
|
+
* DateTime.nearest("day"),
|
|
2762
|
+
* DateTime.formatIso
|
|
2763
|
+
* )
|
|
2764
|
+
*/
|
|
2765
|
+
(
|
|
2766
|
+
part: DateTime.UnitSingular,
|
|
2767
|
+
options?: {
|
|
2768
|
+
readonly weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | undefined
|
|
2769
|
+
}
|
|
2770
|
+
): <A extends DateTime>(self: A) => DateTime.PreserveZone<A>
|
|
2771
|
+
/**
|
|
2772
|
+
* Converts a `DateTime` to the nearest given `part`.
|
|
2773
|
+
*
|
|
2774
|
+
* If the part is `week`, the `weekStartsOn` option can be used to specify the
|
|
2775
|
+
* day of the week that the week starts on. The default is 0 (Sunday).
|
|
2776
|
+
*
|
|
2777
|
+
* @since 3.6.0
|
|
2778
|
+
* @category math
|
|
2779
|
+
* @example
|
|
2780
|
+
* import { DateTime } from "effect"
|
|
2781
|
+
*
|
|
2782
|
+
* // returns "2024-01-02T00:00:00Z"
|
|
2783
|
+
* DateTime.unsafeMake("2024-01-01T12:01:00Z").pipe(
|
|
2784
|
+
* DateTime.nearest("day"),
|
|
2785
|
+
* DateTime.formatIso
|
|
2786
|
+
* )
|
|
2787
|
+
*/
|
|
2788
|
+
<A extends DateTime>(
|
|
2789
|
+
self: A,
|
|
2790
|
+
part: DateTime.UnitSingular,
|
|
2791
|
+
options?: {
|
|
2792
|
+
readonly weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | undefined
|
|
2793
|
+
}
|
|
2794
|
+
): DateTime.PreserveZone<A>
|
|
1899
2795
|
} = dual(isDateTimeArgs, (self: DateTime, part: DateTime.UnitSingular, options?: {
|
|
1900
2796
|
readonly weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | undefined
|
|
1901
2797
|
}): DateTime =>
|
|
@@ -1940,6 +2836,17 @@ const intlTimeZone = (self: TimeZone): string => {
|
|
|
1940
2836
|
* @category formatting
|
|
1941
2837
|
*/
|
|
1942
2838
|
export const format: {
|
|
2839
|
+
/**
|
|
2840
|
+
* Format a `DateTime` as a string using the `DateTimeFormat` API.
|
|
2841
|
+
*
|
|
2842
|
+
* The `timeZone` option is set to the offset of the time zone.
|
|
2843
|
+
*
|
|
2844
|
+
* Note: On Node versions < 22, fixed "Offset" zones will set the time zone to
|
|
2845
|
+
* "UTC" and use the adjusted `Date`.
|
|
2846
|
+
*
|
|
2847
|
+
* @since 3.6.0
|
|
2848
|
+
* @category formatting
|
|
2849
|
+
*/
|
|
1943
2850
|
(
|
|
1944
2851
|
options?:
|
|
1945
2852
|
| Intl.DateTimeFormatOptions & {
|
|
@@ -1947,6 +2854,17 @@ export const format: {
|
|
|
1947
2854
|
}
|
|
1948
2855
|
| undefined
|
|
1949
2856
|
): (self: DateTime) => string
|
|
2857
|
+
/**
|
|
2858
|
+
* Format a `DateTime` as a string using the `DateTimeFormat` API.
|
|
2859
|
+
*
|
|
2860
|
+
* The `timeZone` option is set to the offset of the time zone.
|
|
2861
|
+
*
|
|
2862
|
+
* Note: On Node versions < 22, fixed "Offset" zones will set the time zone to
|
|
2863
|
+
* "UTC" and use the adjusted `Date`.
|
|
2864
|
+
*
|
|
2865
|
+
* @since 3.6.0
|
|
2866
|
+
* @category formatting
|
|
2867
|
+
*/
|
|
1950
2868
|
(
|
|
1951
2869
|
self: DateTime,
|
|
1952
2870
|
options?:
|
|
@@ -1985,6 +2903,14 @@ export const format: {
|
|
|
1985
2903
|
* @category formatting
|
|
1986
2904
|
*/
|
|
1987
2905
|
export const formatLocal: {
|
|
2906
|
+
/**
|
|
2907
|
+
* Format a `DateTime` as a string using the `DateTimeFormat` API.
|
|
2908
|
+
*
|
|
2909
|
+
* It will use the system's local time zone & locale.
|
|
2910
|
+
*
|
|
2911
|
+
* @since 3.6.0
|
|
2912
|
+
* @category formatting
|
|
2913
|
+
*/
|
|
1988
2914
|
(
|
|
1989
2915
|
options?:
|
|
1990
2916
|
| Intl.DateTimeFormatOptions & {
|
|
@@ -1992,6 +2918,14 @@ export const formatLocal: {
|
|
|
1992
2918
|
}
|
|
1993
2919
|
| undefined
|
|
1994
2920
|
): (self: DateTime) => string
|
|
2921
|
+
/**
|
|
2922
|
+
* Format a `DateTime` as a string using the `DateTimeFormat` API.
|
|
2923
|
+
*
|
|
2924
|
+
* It will use the system's local time zone & locale.
|
|
2925
|
+
*
|
|
2926
|
+
* @since 3.6.0
|
|
2927
|
+
* @category formatting
|
|
2928
|
+
*/
|
|
1995
2929
|
(
|
|
1996
2930
|
self: DateTime,
|
|
1997
2931
|
options?:
|
|
@@ -2018,6 +2952,14 @@ export const formatLocal: {
|
|
|
2018
2952
|
* @category formatting
|
|
2019
2953
|
*/
|
|
2020
2954
|
export const formatUtc: {
|
|
2955
|
+
/**
|
|
2956
|
+
* Format a `DateTime` as a string using the `DateTimeFormat` API.
|
|
2957
|
+
*
|
|
2958
|
+
* This forces the time zone to be UTC.
|
|
2959
|
+
*
|
|
2960
|
+
* @since 3.6.0
|
|
2961
|
+
* @category formatting
|
|
2962
|
+
*/
|
|
2021
2963
|
(
|
|
2022
2964
|
options?:
|
|
2023
2965
|
| Intl.DateTimeFormatOptions & {
|
|
@@ -2025,6 +2967,14 @@ export const formatUtc: {
|
|
|
2025
2967
|
}
|
|
2026
2968
|
| undefined
|
|
2027
2969
|
): (self: DateTime) => string
|
|
2970
|
+
/**
|
|
2971
|
+
* Format a `DateTime` as a string using the `DateTimeFormat` API.
|
|
2972
|
+
*
|
|
2973
|
+
* This forces the time zone to be UTC.
|
|
2974
|
+
*
|
|
2975
|
+
* @since 3.6.0
|
|
2976
|
+
* @category formatting
|
|
2977
|
+
*/
|
|
2028
2978
|
(
|
|
2029
2979
|
self: DateTime,
|
|
2030
2980
|
options?:
|
|
@@ -2053,7 +3003,19 @@ export const formatUtc: {
|
|
|
2053
3003
|
* @category formatting
|
|
2054
3004
|
*/
|
|
2055
3005
|
export const formatIntl: {
|
|
3006
|
+
/**
|
|
3007
|
+
* Format a `DateTime` as a string using the `DateTimeFormat` API.
|
|
3008
|
+
*
|
|
3009
|
+
* @since 3.6.0
|
|
3010
|
+
* @category formatting
|
|
3011
|
+
*/
|
|
2056
3012
|
(format: Intl.DateTimeFormat): (self: DateTime) => string
|
|
3013
|
+
/**
|
|
3014
|
+
* Format a `DateTime` as a string using the `DateTimeFormat` API.
|
|
3015
|
+
*
|
|
3016
|
+
* @since 3.6.0
|
|
3017
|
+
* @category formatting
|
|
3018
|
+
*/
|
|
2057
3019
|
(self: DateTime, format: Intl.DateTimeFormat): string
|
|
2058
3020
|
} = dual(2, (self: DateTime, format: Intl.DateTimeFormat): string => format.format(self.epochMillis))
|
|
2059
3021
|
|