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/dist/esm/BigDecimal.js
CHANGED
|
@@ -23,6 +23,7 @@ import * as order from "./Order.js";
|
|
|
23
23
|
import { pipeArguments } from "./Pipeable.js";
|
|
24
24
|
import { hasProperty } from "./Predicate.js";
|
|
25
25
|
const DEFAULT_PRECISION = 100;
|
|
26
|
+
const FINITE_INT_REGEX = /^[+-]?\d+$/;
|
|
26
27
|
/**
|
|
27
28
|
* @since 2.0.0
|
|
28
29
|
* @category symbols
|
|
@@ -101,10 +102,12 @@ const zero = /*#__PURE__*/unsafeMakeNormalized(bigint0, 0);
|
|
|
101
102
|
* @param self - The `BigDecimal` to normalize.
|
|
102
103
|
*
|
|
103
104
|
* @example
|
|
105
|
+
* ```ts
|
|
104
106
|
* import { normalize, make, unsafeFromString } from "effect/BigDecimal"
|
|
105
107
|
*
|
|
106
108
|
* assert.deepStrictEqual(normalize(unsafeFromString("123.00000")), normalize(make(123n, 0)))
|
|
107
109
|
* assert.deepStrictEqual(normalize(unsafeFromString("12300000")), normalize(make(123n, -5)))
|
|
110
|
+
* ```
|
|
108
111
|
*
|
|
109
112
|
* @since 2.0.0
|
|
110
113
|
* @category scaling
|
|
@@ -161,9 +164,11 @@ export const scale = /*#__PURE__*/dual(2, (self, scale) => {
|
|
|
161
164
|
* @param that - The second operand.
|
|
162
165
|
*
|
|
163
166
|
* @example
|
|
167
|
+
* ```ts
|
|
164
168
|
* import { sum, unsafeFromString } from "effect/BigDecimal"
|
|
165
169
|
*
|
|
166
170
|
* assert.deepStrictEqual(sum(unsafeFromString("2"), unsafeFromString("3")), unsafeFromString("5"))
|
|
171
|
+
* ```
|
|
167
172
|
*
|
|
168
173
|
* @since 2.0.0
|
|
169
174
|
* @category math
|
|
@@ -190,9 +195,11 @@ export const sum = /*#__PURE__*/dual(2, (self, that) => {
|
|
|
190
195
|
* @param that - The second operand.
|
|
191
196
|
*
|
|
192
197
|
* @example
|
|
198
|
+
* ```ts
|
|
193
199
|
* import { multiply, unsafeFromString } from "effect/BigDecimal"
|
|
194
200
|
*
|
|
195
201
|
* assert.deepStrictEqual(multiply(unsafeFromString("2"), unsafeFromString("3")), unsafeFromString("6"))
|
|
202
|
+
* ```
|
|
196
203
|
*
|
|
197
204
|
* @since 2.0.0
|
|
198
205
|
* @category math
|
|
@@ -210,9 +217,11 @@ export const multiply = /*#__PURE__*/dual(2, (self, that) => {
|
|
|
210
217
|
* @param that - The second operand.
|
|
211
218
|
*
|
|
212
219
|
* @example
|
|
220
|
+
* ```ts
|
|
213
221
|
* import { subtract, unsafeFromString } from "effect/BigDecimal"
|
|
214
222
|
*
|
|
215
223
|
* assert.deepStrictEqual(subtract(unsafeFromString("2"), unsafeFromString("3")), unsafeFromString("-1"))
|
|
224
|
+
* ```
|
|
216
225
|
*
|
|
217
226
|
* @since 2.0.0
|
|
218
227
|
* @category math
|
|
@@ -296,11 +305,13 @@ export const roundTerminal = n => {
|
|
|
296
305
|
* @param that - The divisor operand.
|
|
297
306
|
*
|
|
298
307
|
* @example
|
|
308
|
+
* ```ts
|
|
299
309
|
* import { BigDecimal, Option } from "effect"
|
|
300
310
|
*
|
|
301
311
|
* assert.deepStrictEqual(BigDecimal.divide(BigDecimal.unsafeFromString("6"), BigDecimal.unsafeFromString("3")), Option.some(BigDecimal.unsafeFromString("2")))
|
|
302
312
|
* assert.deepStrictEqual(BigDecimal.divide(BigDecimal.unsafeFromString("6"), BigDecimal.unsafeFromString("4")), Option.some(BigDecimal.unsafeFromString("1.5")))
|
|
303
313
|
* assert.deepStrictEqual(BigDecimal.divide(BigDecimal.unsafeFromString("6"), BigDecimal.unsafeFromString("0")), Option.none())
|
|
314
|
+
* ```
|
|
304
315
|
*
|
|
305
316
|
* @since 2.0.0
|
|
306
317
|
* @category math
|
|
@@ -330,10 +341,12 @@ export const divide = /*#__PURE__*/dual(2, (self, that) => {
|
|
|
330
341
|
* @param that - The divisor operand.as
|
|
331
342
|
*
|
|
332
343
|
* @example
|
|
344
|
+
* ```ts
|
|
333
345
|
* import { unsafeDivide, unsafeFromString } from "effect/BigDecimal"
|
|
334
346
|
*
|
|
335
347
|
* assert.deepStrictEqual(unsafeDivide(unsafeFromString("6"), unsafeFromString("3")), unsafeFromString("2"))
|
|
336
348
|
* assert.deepStrictEqual(unsafeDivide(unsafeFromString("6"), unsafeFromString("4")), unsafeFromString("1.5"))
|
|
349
|
+
* ```
|
|
337
350
|
*
|
|
338
351
|
* @since 2.0.0
|
|
339
352
|
* @category math
|
|
@@ -375,11 +388,13 @@ export const Order = /*#__PURE__*/order.make((self, that) => {
|
|
|
375
388
|
* @param that - The second argument.
|
|
376
389
|
*
|
|
377
390
|
* @example
|
|
391
|
+
* ```ts
|
|
378
392
|
* import { lessThan, unsafeFromString } from "effect/BigDecimal"
|
|
379
393
|
*
|
|
380
394
|
* assert.deepStrictEqual(lessThan(unsafeFromString("2"), unsafeFromString("3")), true)
|
|
381
395
|
* assert.deepStrictEqual(lessThan(unsafeFromString("3"), unsafeFromString("3")), false)
|
|
382
396
|
* assert.deepStrictEqual(lessThan(unsafeFromString("4"), unsafeFromString("3")), false)
|
|
397
|
+
* ```
|
|
383
398
|
*
|
|
384
399
|
* @since 2.0.0
|
|
385
400
|
* @category predicates
|
|
@@ -392,11 +407,13 @@ export const lessThan = /*#__PURE__*/order.lessThan(Order);
|
|
|
392
407
|
* @param that - The second `BigDecimal` to compare with.
|
|
393
408
|
*
|
|
394
409
|
* @example
|
|
410
|
+
* ```ts
|
|
395
411
|
* import { lessThanOrEqualTo, unsafeFromString } from "effect/BigDecimal"
|
|
396
412
|
*
|
|
397
413
|
* assert.deepStrictEqual(lessThanOrEqualTo(unsafeFromString("2"), unsafeFromString("3")), true)
|
|
398
414
|
* assert.deepStrictEqual(lessThanOrEqualTo(unsafeFromString("3"), unsafeFromString("3")), true)
|
|
399
415
|
* assert.deepStrictEqual(lessThanOrEqualTo(unsafeFromString("4"), unsafeFromString("3")), false)
|
|
416
|
+
* ```
|
|
400
417
|
*
|
|
401
418
|
* @since 2.0.0
|
|
402
419
|
* @category predicates
|
|
@@ -409,11 +426,13 @@ export const lessThanOrEqualTo = /*#__PURE__*/order.lessThanOrEqualTo(Order);
|
|
|
409
426
|
* @param that - The second argument.
|
|
410
427
|
*
|
|
411
428
|
* @example
|
|
429
|
+
* ```ts
|
|
412
430
|
* import { greaterThan, unsafeFromString } from "effect/BigDecimal"
|
|
413
431
|
*
|
|
414
432
|
* assert.deepStrictEqual(greaterThan(unsafeFromString("2"), unsafeFromString("3")), false)
|
|
415
433
|
* assert.deepStrictEqual(greaterThan(unsafeFromString("3"), unsafeFromString("3")), false)
|
|
416
434
|
* assert.deepStrictEqual(greaterThan(unsafeFromString("4"), unsafeFromString("3")), true)
|
|
435
|
+
* ```
|
|
417
436
|
*
|
|
418
437
|
* @since 2.0.0
|
|
419
438
|
* @category predicates
|
|
@@ -426,11 +445,13 @@ export const greaterThan = /*#__PURE__*/order.greaterThan(Order);
|
|
|
426
445
|
* @param that - The second `BigDecimal` to compare with.
|
|
427
446
|
*
|
|
428
447
|
* @example
|
|
448
|
+
* ```ts
|
|
429
449
|
* import { greaterThanOrEqualTo, unsafeFromString } from "effect/BigDecimal"
|
|
430
450
|
*
|
|
431
451
|
* assert.deepStrictEqual(greaterThanOrEqualTo(unsafeFromString("2"), unsafeFromString("3")), false)
|
|
432
452
|
* assert.deepStrictEqual(greaterThanOrEqualTo(unsafeFromString("3"), unsafeFromString("3")), true)
|
|
433
453
|
* assert.deepStrictEqual(greaterThanOrEqualTo(unsafeFromString("4"), unsafeFromString("3")), true)
|
|
454
|
+
* ```
|
|
434
455
|
*
|
|
435
456
|
* @since 2.0.0
|
|
436
457
|
* @category predicates
|
|
@@ -444,6 +465,7 @@ export const greaterThanOrEqualTo = /*#__PURE__*/order.greaterThanOrEqualTo(Orde
|
|
|
444
465
|
* @param maximum - The `maximum` value to check.
|
|
445
466
|
*
|
|
446
467
|
* @example
|
|
468
|
+
* ```ts
|
|
447
469
|
* import { BigDecimal } from "effect"
|
|
448
470
|
*
|
|
449
471
|
* const between = BigDecimal.between({
|
|
@@ -454,6 +476,7 @@ export const greaterThanOrEqualTo = /*#__PURE__*/order.greaterThanOrEqualTo(Orde
|
|
|
454
476
|
* assert.deepStrictEqual(between(BigDecimal.unsafeFromString("3")), true)
|
|
455
477
|
* assert.deepStrictEqual(between(BigDecimal.unsafeFromString("0")), false)
|
|
456
478
|
* assert.deepStrictEqual(between(BigDecimal.unsafeFromString("6")), false)
|
|
479
|
+
* ```
|
|
457
480
|
*
|
|
458
481
|
* @since 2.0.0
|
|
459
482
|
* @category predicates
|
|
@@ -471,6 +494,7 @@ export const between = /*#__PURE__*/order.between(Order);
|
|
|
471
494
|
* @param maximum - The upper end of the range.
|
|
472
495
|
*
|
|
473
496
|
* @example
|
|
497
|
+
* ```ts
|
|
474
498
|
* import { BigDecimal } from "effect"
|
|
475
499
|
*
|
|
476
500
|
* const clamp = BigDecimal.clamp({
|
|
@@ -481,6 +505,7 @@ export const between = /*#__PURE__*/order.between(Order);
|
|
|
481
505
|
* assert.deepStrictEqual(clamp(BigDecimal.unsafeFromString("3")), BigDecimal.unsafeFromString("3"))
|
|
482
506
|
* assert.deepStrictEqual(clamp(BigDecimal.unsafeFromString("0")), BigDecimal.unsafeFromString("1"))
|
|
483
507
|
* assert.deepStrictEqual(clamp(BigDecimal.unsafeFromString("6")), BigDecimal.unsafeFromString("5"))
|
|
508
|
+
* ```
|
|
484
509
|
*
|
|
485
510
|
* @since 2.0.0
|
|
486
511
|
* @category math
|
|
@@ -493,9 +518,11 @@ export const clamp = /*#__PURE__*/order.clamp(Order);
|
|
|
493
518
|
* @param that - The second `BigDecimal`.
|
|
494
519
|
*
|
|
495
520
|
* @example
|
|
521
|
+
* ```ts
|
|
496
522
|
* import { min, unsafeFromString } from "effect/BigDecimal"
|
|
497
523
|
*
|
|
498
524
|
* assert.deepStrictEqual(min(unsafeFromString("2"), unsafeFromString("3")), unsafeFromString("2"))
|
|
525
|
+
* ```
|
|
499
526
|
*
|
|
500
527
|
* @since 2.0.0
|
|
501
528
|
* @category math
|
|
@@ -508,9 +535,11 @@ export const min = /*#__PURE__*/order.min(Order);
|
|
|
508
535
|
* @param that - The second `BigDecimal`.
|
|
509
536
|
*
|
|
510
537
|
* @example
|
|
538
|
+
* ```ts
|
|
511
539
|
* import { max, unsafeFromString } from "effect/BigDecimal"
|
|
512
540
|
*
|
|
513
541
|
* assert.deepStrictEqual(max(unsafeFromString("2"), unsafeFromString("3")), unsafeFromString("3"))
|
|
542
|
+
* ```
|
|
514
543
|
*
|
|
515
544
|
* @since 2.0.0
|
|
516
545
|
* @category math
|
|
@@ -522,11 +551,13 @@ export const max = /*#__PURE__*/order.max(Order);
|
|
|
522
551
|
* @param n - The `BigDecimal` to determine the sign of.
|
|
523
552
|
*
|
|
524
553
|
* @example
|
|
554
|
+
* ```ts
|
|
525
555
|
* import { sign, unsafeFromString } from "effect/BigDecimal"
|
|
526
556
|
*
|
|
527
557
|
* assert.deepStrictEqual(sign(unsafeFromString("-5")), -1)
|
|
528
558
|
* assert.deepStrictEqual(sign(unsafeFromString("0")), 0)
|
|
529
559
|
* assert.deepStrictEqual(sign(unsafeFromString("5")), 1)
|
|
560
|
+
* ```
|
|
530
561
|
*
|
|
531
562
|
* @since 2.0.0
|
|
532
563
|
* @category math
|
|
@@ -538,11 +569,13 @@ export const sign = n => n.value === bigint0 ? 0 : n.value < bigint0 ? -1 : 1;
|
|
|
538
569
|
* @param n - The `BigDecimal` to determine the absolute value of.
|
|
539
570
|
*
|
|
540
571
|
* @example
|
|
572
|
+
* ```ts
|
|
541
573
|
* import { abs, unsafeFromString } from "effect/BigDecimal"
|
|
542
574
|
*
|
|
543
575
|
* assert.deepStrictEqual(abs(unsafeFromString("-5")), unsafeFromString("5"))
|
|
544
576
|
* assert.deepStrictEqual(abs(unsafeFromString("0")), unsafeFromString("0"))
|
|
545
577
|
* assert.deepStrictEqual(abs(unsafeFromString("5")), unsafeFromString("5"))
|
|
578
|
+
* ```
|
|
546
579
|
*
|
|
547
580
|
* @since 2.0.0
|
|
548
581
|
* @category math
|
|
@@ -554,10 +587,12 @@ export const abs = n => n.value < bigint0 ? make(-n.value, n.scale) : n;
|
|
|
554
587
|
* @param n - The `BigDecimal` to negate.
|
|
555
588
|
*
|
|
556
589
|
* @example
|
|
590
|
+
* ```ts
|
|
557
591
|
* import { negate, unsafeFromString } from "effect/BigDecimal"
|
|
558
592
|
*
|
|
559
593
|
* assert.deepStrictEqual(negate(unsafeFromString("3")), unsafeFromString("-3"))
|
|
560
594
|
* assert.deepStrictEqual(negate(unsafeFromString("-6")), unsafeFromString("6"))
|
|
595
|
+
* ```
|
|
561
596
|
*
|
|
562
597
|
* @since 2.0.0
|
|
563
598
|
* @category math
|
|
@@ -572,11 +607,13 @@ export const negate = n => make(-n.value, n.scale);
|
|
|
572
607
|
* @param divisor - The divisor.
|
|
573
608
|
*
|
|
574
609
|
* @example
|
|
610
|
+
* ```ts
|
|
575
611
|
* import { BigDecimal, Option } from "effect"
|
|
576
612
|
*
|
|
577
613
|
* assert.deepStrictEqual(BigDecimal.remainder(BigDecimal.unsafeFromString("2"), BigDecimal.unsafeFromString("2")), Option.some(BigDecimal.unsafeFromString("0")))
|
|
578
614
|
* assert.deepStrictEqual(BigDecimal.remainder(BigDecimal.unsafeFromString("3"), BigDecimal.unsafeFromString("2")), Option.some(BigDecimal.unsafeFromString("1")))
|
|
579
615
|
* assert.deepStrictEqual(BigDecimal.remainder(BigDecimal.unsafeFromString("-4"), BigDecimal.unsafeFromString("2")), Option.some(BigDecimal.unsafeFromString("0")))
|
|
616
|
+
* ```
|
|
580
617
|
*
|
|
581
618
|
* @since 2.0.0
|
|
582
619
|
* @category math
|
|
@@ -597,11 +634,13 @@ export const remainder = /*#__PURE__*/dual(2, (self, divisor) => {
|
|
|
597
634
|
* @param divisor - The divisor.
|
|
598
635
|
*
|
|
599
636
|
* @example
|
|
637
|
+
* ```ts
|
|
600
638
|
* import { unsafeRemainder, unsafeFromString } from "effect/BigDecimal"
|
|
601
639
|
*
|
|
602
640
|
* assert.deepStrictEqual(unsafeRemainder(unsafeFromString("2"), unsafeFromString("2")), unsafeFromString("0"))
|
|
603
641
|
* assert.deepStrictEqual(unsafeRemainder(unsafeFromString("3"), unsafeFromString("2")), unsafeFromString("1"))
|
|
604
642
|
* assert.deepStrictEqual(unsafeRemainder(unsafeFromString("-4"), unsafeFromString("2")), unsafeFromString("0"))
|
|
643
|
+
* ```
|
|
605
644
|
*
|
|
606
645
|
* @since 2.0.0
|
|
607
646
|
* @category math
|
|
@@ -648,20 +687,68 @@ export const fromBigInt = n => make(n, 0);
|
|
|
648
687
|
* It is not recommended to convert a floating point number to a decimal directly,
|
|
649
688
|
* as the floating point representation may be unexpected.
|
|
650
689
|
*
|
|
690
|
+
* Throws a `RangeError` if the number is not finite (`NaN`, `+Infinity` or `-Infinity`).
|
|
691
|
+
*
|
|
651
692
|
* @param value - The `number` value to create a `BigDecimal` from.
|
|
652
693
|
*
|
|
653
694
|
* @example
|
|
695
|
+
* ```ts
|
|
654
696
|
* import { fromNumber, make } from "effect/BigDecimal"
|
|
655
697
|
*
|
|
656
698
|
* assert.deepStrictEqual(fromNumber(123), make(123n, 0))
|
|
657
699
|
* assert.deepStrictEqual(fromNumber(123.456), make(123456n, 3))
|
|
700
|
+
* ```
|
|
701
|
+
*
|
|
702
|
+
* @since 3.11.0
|
|
703
|
+
* @category constructors
|
|
704
|
+
*/
|
|
705
|
+
export const unsafeFromNumber = n => Option.getOrThrowWith(safeFromNumber(n), () => new RangeError(`Number must be finite, got ${n}`));
|
|
706
|
+
/**
|
|
707
|
+
* Creates a `BigDecimal` from a `number` value.
|
|
708
|
+
*
|
|
709
|
+
* It is not recommended to convert a floating point number to a decimal directly,
|
|
710
|
+
* as the floating point representation may be unexpected.
|
|
711
|
+
*
|
|
712
|
+
* Throws a `RangeError` if the number is not finite (`NaN`, `+Infinity` or `-Infinity`).
|
|
713
|
+
*
|
|
714
|
+
* @param value - The `number` value to create a `BigDecimal` from.
|
|
658
715
|
*
|
|
659
716
|
* @since 2.0.0
|
|
660
717
|
* @category constructors
|
|
718
|
+
* @deprecated Use {@link unsafeFromNumber} instead.
|
|
661
719
|
*/
|
|
662
|
-
export const fromNumber =
|
|
663
|
-
|
|
664
|
-
|
|
720
|
+
export const fromNumber = unsafeFromNumber;
|
|
721
|
+
/**
|
|
722
|
+
* Creates a `BigDecimal` from a `number` value.
|
|
723
|
+
*
|
|
724
|
+
* It is not recommended to convert a floating point number to a decimal directly,
|
|
725
|
+
* as the floating point representation may be unexpected.
|
|
726
|
+
*
|
|
727
|
+
* Returns `None` if the number is not finite (`NaN`, `+Infinity` or `-Infinity`).
|
|
728
|
+
*
|
|
729
|
+
* @param n - The `number` value to create a `BigDecimal` from.
|
|
730
|
+
*
|
|
731
|
+
* @example
|
|
732
|
+
* import { BigDecimal, Option } from "effect"
|
|
733
|
+
*
|
|
734
|
+
* assert.deepStrictEqual(BigDecimal.safeFromNumber(123), Option.some(BigDecimal.make(123n, 0)))
|
|
735
|
+
* assert.deepStrictEqual(BigDecimal.safeFromNumber(123.456), Option.some(BigDecimal.make(123456n, 3)))
|
|
736
|
+
* assert.deepStrictEqual(BigDecimal.safeFromNumber(Infinity), Option.none())
|
|
737
|
+
*
|
|
738
|
+
* @since 3.11.0
|
|
739
|
+
* @category constructors
|
|
740
|
+
*/
|
|
741
|
+
export const safeFromNumber = n => {
|
|
742
|
+
// TODO: Rename this to `fromNumber` after removing the current, unsafe implementation of `fromNumber`.
|
|
743
|
+
if (!Number.isFinite(n)) {
|
|
744
|
+
return Option.none();
|
|
745
|
+
}
|
|
746
|
+
const string = `${n}`;
|
|
747
|
+
if (string.includes("e")) {
|
|
748
|
+
return fromString(string);
|
|
749
|
+
}
|
|
750
|
+
const [lead, trail = ""] = string.split(".");
|
|
751
|
+
return Option.some(make(BigInt(`${lead}${trail}`), trail.length));
|
|
665
752
|
};
|
|
666
753
|
/**
|
|
667
754
|
* Parses a numerical `string` into a `BigDecimal`.
|
|
@@ -669,33 +756,52 @@ export const fromNumber = n => {
|
|
|
669
756
|
* @param s - The `string` to parse.
|
|
670
757
|
*
|
|
671
758
|
* @example
|
|
759
|
+
* ```ts
|
|
672
760
|
* import { BigDecimal, Option } from "effect"
|
|
673
761
|
*
|
|
674
762
|
* assert.deepStrictEqual(BigDecimal.fromString("123"), Option.some(BigDecimal.make(123n, 0)))
|
|
675
763
|
* assert.deepStrictEqual(BigDecimal.fromString("123.456"), Option.some(BigDecimal.make(123456n, 3)))
|
|
676
764
|
* assert.deepStrictEqual(BigDecimal.fromString("123.abc"), Option.none())
|
|
765
|
+
* ```
|
|
677
766
|
*
|
|
678
767
|
* @since 2.0.0
|
|
679
768
|
* @category constructors
|
|
680
769
|
*/
|
|
681
770
|
export const fromString = s => {
|
|
771
|
+
if (s === "") {
|
|
772
|
+
return Option.some(zero);
|
|
773
|
+
}
|
|
774
|
+
let base;
|
|
775
|
+
let exp;
|
|
776
|
+
const seperator = s.search(/[eE]/);
|
|
777
|
+
if (seperator !== -1) {
|
|
778
|
+
const trail = s.slice(seperator + 1);
|
|
779
|
+
base = s.slice(0, seperator);
|
|
780
|
+
exp = Number(trail);
|
|
781
|
+
if (base === "" || !Number.isSafeInteger(exp) || !FINITE_INT_REGEX.test(trail)) {
|
|
782
|
+
return Option.none();
|
|
783
|
+
}
|
|
784
|
+
} else {
|
|
785
|
+
base = s;
|
|
786
|
+
exp = 0;
|
|
787
|
+
}
|
|
682
788
|
let digits;
|
|
683
|
-
let
|
|
684
|
-
const dot =
|
|
789
|
+
let offset;
|
|
790
|
+
const dot = base.search(/\./);
|
|
685
791
|
if (dot !== -1) {
|
|
686
|
-
const lead =
|
|
687
|
-
const trail =
|
|
792
|
+
const lead = base.slice(0, dot);
|
|
793
|
+
const trail = base.slice(dot + 1);
|
|
688
794
|
digits = `${lead}${trail}`;
|
|
689
|
-
|
|
795
|
+
offset = trail.length;
|
|
690
796
|
} else {
|
|
691
|
-
digits =
|
|
692
|
-
|
|
797
|
+
digits = base;
|
|
798
|
+
offset = 0;
|
|
693
799
|
}
|
|
694
|
-
if (digits
|
|
695
|
-
|
|
696
|
-
return Option.some(zero);
|
|
800
|
+
if (!FINITE_INT_REGEX.test(digits)) {
|
|
801
|
+
return Option.none();
|
|
697
802
|
}
|
|
698
|
-
|
|
803
|
+
const scale = offset - exp;
|
|
804
|
+
if (!Number.isSafeInteger(scale)) {
|
|
699
805
|
return Option.none();
|
|
700
806
|
}
|
|
701
807
|
return Option.some(make(BigInt(digits), scale));
|
|
@@ -706,11 +812,13 @@ export const fromString = s => {
|
|
|
706
812
|
* @param s - The `string` to parse.
|
|
707
813
|
*
|
|
708
814
|
* @example
|
|
815
|
+
* ```ts
|
|
709
816
|
* import { unsafeFromString, make } from "effect/BigDecimal"
|
|
710
817
|
*
|
|
711
818
|
* assert.deepStrictEqual(unsafeFromString("123"), make(123n, 0))
|
|
712
819
|
* assert.deepStrictEqual(unsafeFromString("123.456"), make(123456n, 3))
|
|
713
820
|
* assert.throws(() => unsafeFromString("123.abc"))
|
|
821
|
+
* ```
|
|
714
822
|
*
|
|
715
823
|
* @since 2.0.0
|
|
716
824
|
* @category constructors
|
|
@@ -719,28 +827,37 @@ export const unsafeFromString = s => Option.getOrThrowWith(fromString(s), () =>
|
|
|
719
827
|
/**
|
|
720
828
|
* Formats a given `BigDecimal` as a `string`.
|
|
721
829
|
*
|
|
722
|
-
*
|
|
830
|
+
* If the scale of the `BigDecimal` is greater than or equal to 16, the `BigDecimal` will
|
|
831
|
+
* be formatted in scientific notation.
|
|
832
|
+
*
|
|
833
|
+
* @param n - The `BigDecimal` to format.
|
|
723
834
|
*
|
|
724
835
|
* @example
|
|
836
|
+
* ```ts
|
|
725
837
|
* import { format, unsafeFromString } from "effect/BigDecimal"
|
|
726
838
|
*
|
|
727
839
|
* assert.deepStrictEqual(format(unsafeFromString("-5")), "-5")
|
|
728
840
|
* assert.deepStrictEqual(format(unsafeFromString("123.456")), "123.456")
|
|
729
841
|
* assert.deepStrictEqual(format(unsafeFromString("-0.00000123")), "-0.00000123")
|
|
842
|
+
* ```
|
|
730
843
|
*
|
|
731
844
|
* @since 2.0.0
|
|
732
845
|
* @category conversions
|
|
733
846
|
*/
|
|
734
847
|
export const format = n => {
|
|
735
|
-
const
|
|
736
|
-
|
|
848
|
+
const normalized = normalize(n);
|
|
849
|
+
if (Math.abs(normalized.scale) >= 16) {
|
|
850
|
+
return toExponential(normalized);
|
|
851
|
+
}
|
|
852
|
+
const negative = normalized.value < bigint0;
|
|
853
|
+
const absolute = negative ? `${normalized.value}`.substring(1) : `${normalized.value}`;
|
|
737
854
|
let before;
|
|
738
855
|
let after;
|
|
739
|
-
if (
|
|
856
|
+
if (normalized.scale >= absolute.length) {
|
|
740
857
|
before = "0";
|
|
741
|
-
after = "0".repeat(
|
|
858
|
+
after = "0".repeat(normalized.scale - absolute.length) + absolute;
|
|
742
859
|
} else {
|
|
743
|
-
const location = absolute.length -
|
|
860
|
+
const location = absolute.length - normalized.scale;
|
|
744
861
|
if (location > absolute.length) {
|
|
745
862
|
const zeros = location - absolute.length;
|
|
746
863
|
before = `${absolute}${"0".repeat(zeros)}`;
|
|
@@ -753,6 +870,34 @@ export const format = n => {
|
|
|
753
870
|
const complete = after === "" ? before : `${before}.${after}`;
|
|
754
871
|
return negative ? `-${complete}` : complete;
|
|
755
872
|
};
|
|
873
|
+
/**
|
|
874
|
+
* Formats a given `BigDecimal` as a `string` in scientific notation.
|
|
875
|
+
*
|
|
876
|
+
* @param n - The `BigDecimal` to format.
|
|
877
|
+
*
|
|
878
|
+
* @example
|
|
879
|
+
* import { toExponential, make } from "effect/BigDecimal"
|
|
880
|
+
*
|
|
881
|
+
* assert.deepStrictEqual(toExponential(make(123456n, -5)), "1.23456e+10")
|
|
882
|
+
*
|
|
883
|
+
* @since 3.11.0
|
|
884
|
+
* @category conversions
|
|
885
|
+
*/
|
|
886
|
+
export const toExponential = n => {
|
|
887
|
+
if (isZero(n)) {
|
|
888
|
+
return "0e+0";
|
|
889
|
+
}
|
|
890
|
+
const normalized = normalize(n);
|
|
891
|
+
const digits = `${abs(normalized).value}`;
|
|
892
|
+
const head = digits.slice(0, 1);
|
|
893
|
+
const tail = digits.slice(1);
|
|
894
|
+
let output = `${isNegative(normalized) ? "-" : ""}${head}`;
|
|
895
|
+
if (tail !== "") {
|
|
896
|
+
output += `.${tail}`;
|
|
897
|
+
}
|
|
898
|
+
const exp = tail.length - normalized.scale;
|
|
899
|
+
return `${output}e${exp >= 0 ? "+" : ""}${exp}`;
|
|
900
|
+
};
|
|
756
901
|
/**
|
|
757
902
|
* Converts a `BigDecimal` to a `number`.
|
|
758
903
|
*
|
|
@@ -761,9 +906,11 @@ export const format = n => {
|
|
|
761
906
|
* @param n - The `BigDecimal` to convert.
|
|
762
907
|
*
|
|
763
908
|
* @example
|
|
909
|
+
* ```ts
|
|
764
910
|
* import { unsafeToNumber, unsafeFromString } from "effect/BigDecimal"
|
|
765
911
|
*
|
|
766
912
|
* assert.deepStrictEqual(unsafeToNumber(unsafeFromString("123.456")), 123.456)
|
|
913
|
+
* ```
|
|
767
914
|
*
|
|
768
915
|
* @since 2.0.0
|
|
769
916
|
* @category conversions
|
|
@@ -775,11 +922,13 @@ export const unsafeToNumber = n => Number(format(n));
|
|
|
775
922
|
* @param n - The `BigDecimal` to check.
|
|
776
923
|
*
|
|
777
924
|
* @example
|
|
925
|
+
* ```ts
|
|
778
926
|
* import { isInteger, unsafeFromString } from "effect/BigDecimal"
|
|
779
927
|
*
|
|
780
928
|
* assert.deepStrictEqual(isInteger(unsafeFromString("0")), true)
|
|
781
929
|
* assert.deepStrictEqual(isInteger(unsafeFromString("1")), true)
|
|
782
930
|
* assert.deepStrictEqual(isInteger(unsafeFromString("1.1")), false)
|
|
931
|
+
* ```
|
|
783
932
|
*
|
|
784
933
|
* @since 2.0.0
|
|
785
934
|
* @category predicates
|
|
@@ -791,10 +940,12 @@ export const isInteger = n => normalize(n).scale <= 0;
|
|
|
791
940
|
* @param n - The `BigDecimal` to check.
|
|
792
941
|
*
|
|
793
942
|
* @example
|
|
943
|
+
* ```ts
|
|
794
944
|
* import { isZero, unsafeFromString } from "effect/BigDecimal"
|
|
795
945
|
*
|
|
796
946
|
* assert.deepStrictEqual(isZero(unsafeFromString("0")), true)
|
|
797
947
|
* assert.deepStrictEqual(isZero(unsafeFromString("1")), false)
|
|
948
|
+
* ```
|
|
798
949
|
*
|
|
799
950
|
* @since 2.0.0
|
|
800
951
|
* @category predicates
|
|
@@ -806,11 +957,13 @@ export const isZero = n => n.value === bigint0;
|
|
|
806
957
|
* @param n - The `BigDecimal` to check.
|
|
807
958
|
*
|
|
808
959
|
* @example
|
|
960
|
+
* ```ts
|
|
809
961
|
* import { isNegative, unsafeFromString } from "effect/BigDecimal"
|
|
810
962
|
*
|
|
811
963
|
* assert.deepStrictEqual(isNegative(unsafeFromString("-1")), true)
|
|
812
964
|
* assert.deepStrictEqual(isNegative(unsafeFromString("0")), false)
|
|
813
965
|
* assert.deepStrictEqual(isNegative(unsafeFromString("1")), false)
|
|
966
|
+
* ```
|
|
814
967
|
*
|
|
815
968
|
* @since 2.0.0
|
|
816
969
|
* @category predicates
|
|
@@ -822,11 +975,13 @@ export const isNegative = n => n.value < bigint0;
|
|
|
822
975
|
* @param n - The `BigDecimal` to check.
|
|
823
976
|
*
|
|
824
977
|
* @example
|
|
978
|
+
* ```ts
|
|
825
979
|
* import { isPositive, unsafeFromString } from "effect/BigDecimal"
|
|
826
980
|
*
|
|
827
981
|
* assert.deepStrictEqual(isPositive(unsafeFromString("-1")), false)
|
|
828
982
|
* assert.deepStrictEqual(isPositive(unsafeFromString("0")), false)
|
|
829
983
|
* assert.deepStrictEqual(isPositive(unsafeFromString("1")), true)
|
|
984
|
+
* ```
|
|
830
985
|
*
|
|
831
986
|
* @since 2.0.0
|
|
832
987
|
* @category predicates
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BigDecimal.js","names":["Equal","equivalence","dual","pipe","Hash","NodeInspectSymbol","Option","order","pipeArguments","hasProperty","DEFAULT_PRECISION","TypeId","Symbol","for","BigDecimalProto","symbol","normalized","normalize","hash","value","combine","number","scale","cached","that","isBigDecimal","equals","toString","format","toJSON","_id","String","arguments","u","make","o","Object","create","unsafeMakeNormalized","bigint0","bigint10","RangeError","BigInt","bigint1","zero","self","undefined","digits","trail","i","length","substring","sum","multiply","subtract","divideWithPrecision","num","den","precision","numNegative","denNegative","negateResult","quotient","remainder","count","q","r","roundTerminal","n","pos","Number","divide","none","some","unsafeDivide","Order","scmp","sign","bigint","lessThan","lessThanOrEqualTo","greaterThan","greaterThanOrEqualTo","between","clamp","min","max","abs","negate","divisor","Math","unsafeRemainder","Equivalence","fromBigInt","fromNumber","lead","split","fromString","s","dot","search","slice","test","unsafeFromString","getOrThrowWith","Error","negative","absolute","before","after","repeat","location","zeros","complete","unsafeToNumber","isInteger","isZero","isNegative","isPositive"],"sources":["../../src/BigDecimal.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"BigDecimal.js","names":["Equal","equivalence","dual","pipe","Hash","NodeInspectSymbol","Option","order","pipeArguments","hasProperty","DEFAULT_PRECISION","FINITE_INT_REGEX","TypeId","Symbol","for","BigDecimalProto","symbol","normalized","normalize","hash","value","combine","number","scale","cached","that","isBigDecimal","equals","toString","format","toJSON","_id","String","arguments","u","make","o","Object","create","unsafeMakeNormalized","bigint0","bigint10","RangeError","BigInt","bigint1","zero","self","undefined","digits","trail","i","length","substring","sum","multiply","subtract","divideWithPrecision","num","den","precision","numNegative","denNegative","negateResult","quotient","remainder","count","q","r","roundTerminal","n","pos","Number","divide","none","some","unsafeDivide","Order","scmp","sign","bigint","lessThan","lessThanOrEqualTo","greaterThan","greaterThanOrEqualTo","between","clamp","min","max","abs","negate","divisor","Math","unsafeRemainder","Equivalence","fromBigInt","unsafeFromNumber","getOrThrowWith","safeFromNumber","fromNumber","isFinite","string","includes","fromString","lead","split","s","base","exp","seperator","search","slice","isSafeInteger","test","offset","dot","unsafeFromString","Error","toExponential","negative","absolute","before","after","repeat","location","zeros","complete","isZero","head","tail","output","isNegative","unsafeToNumber","isInteger","isPositive"],"sources":["../../src/BigDecimal.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|