effect 4.0.0-beta.6 → 4.0.0-beta.7
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/Cache.d.ts +2 -2
- package/dist/Cache.d.ts.map +1 -1
- package/dist/Cache.js +1 -1
- package/dist/Cache.js.map +1 -1
- package/dist/Config.d.ts +2 -2
- package/dist/Config.js +3 -3
- package/dist/Config.js.map +1 -1
- package/dist/DateTime.d.ts +23 -161
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/DateTime.js +6 -51
- package/dist/DateTime.js.map +1 -1
- package/dist/Duration.d.ts +12 -12
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +12 -12
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +13 -13
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +1 -1
- package/dist/Effect.js.map +1 -1
- package/dist/Formatter.d.ts +131 -47
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +228 -50
- package/dist/Formatter.js.map +1 -1
- package/dist/JsonSchema.d.ts +299 -10
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +323 -4
- package/dist/JsonSchema.js.map +1 -1
- package/dist/LayerMap.d.ts +4 -4
- package/dist/LayerMap.d.ts.map +1 -1
- package/dist/LogLevel.d.ts +27 -0
- package/dist/LogLevel.d.ts.map +1 -1
- package/dist/LogLevel.js +28 -100
- package/dist/LogLevel.js.map +1 -1
- package/dist/Logger.d.ts +4 -4
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Metric.d.ts +2 -2
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +1 -1
- package/dist/Metric.js.map +1 -1
- package/dist/Pool.d.ts +1 -1
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +1 -1
- package/dist/Pool.js.map +1 -1
- package/dist/Random.d.ts +1 -1
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +3 -12
- package/dist/Random.js.map +1 -1
- package/dist/RcMap.d.ts +2 -2
- package/dist/RcMap.d.ts.map +1 -1
- package/dist/RcMap.js +1 -1
- package/dist/RcMap.js.map +1 -1
- package/dist/RcRef.d.ts +1 -1
- package/dist/RcRef.d.ts.map +1 -1
- package/dist/RequestResolver.d.ts +6 -6
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js.map +1 -1
- package/dist/Schedule.d.ts +20 -11
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +23 -9
- package/dist/Schedule.js.map +1 -1
- package/dist/Schema.d.ts +4 -4
- package/dist/Schema.d.ts.map +1 -1
- package/dist/ScopedCache.d.ts +2 -2
- package/dist/ScopedCache.d.ts.map +1 -1
- package/dist/ScopedCache.js +1 -1
- package/dist/ScopedCache.js.map +1 -1
- package/dist/Stream.d.ts +19 -19
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +3 -3
- package/dist/Stream.js.map +1 -1
- package/dist/index.d.ts +134 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +134 -0
- package/dist/index.js.map +1 -1
- package/dist/internal/dateTime.js +3 -11
- package/dist/internal/dateTime.js.map +1 -1
- package/dist/internal/effect.js +2 -2
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/random.d.ts +2 -0
- package/dist/internal/random.d.ts.map +1 -0
- package/dist/internal/random.js +13 -0
- package/dist/internal/random.js.map +1 -0
- package/dist/internal/rcRef.js +1 -1
- package/dist/internal/rcRef.js.map +1 -1
- package/dist/testing/TestClock.d.ts +4 -4
- package/dist/testing/TestClock.d.ts.map +1 -1
- package/dist/testing/TestClock.js +1 -1
- package/dist/testing/TestClock.js.map +1 -1
- package/dist/testing/TestSchema.d.ts +6 -6
- package/dist/testing/TestSchema.d.ts.map +1 -1
- package/dist/unstable/ai/AiError.d.ts +10 -10
- package/dist/unstable/ai/AiError.d.ts.map +1 -1
- package/dist/unstable/ai/Chat.d.ts +3 -3
- package/dist/unstable/ai/Chat.d.ts.map +1 -1
- package/dist/unstable/ai/Chat.js +2 -2
- package/dist/unstable/ai/Chat.js.map +1 -1
- package/dist/unstable/ai/LanguageModel.d.ts +2 -2
- package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
- package/dist/unstable/ai/McpServer.d.ts +1 -1
- package/dist/unstable/ai/McpServer.d.ts.map +1 -1
- package/dist/unstable/ai/McpServer.js.map +1 -1
- package/dist/unstable/ai/Prompt.d.ts +17 -17
- package/dist/unstable/ai/Prompt.d.ts.map +1 -1
- package/dist/unstable/ai/Response.d.ts +23 -23
- package/dist/unstable/ai/Response.d.ts.map +1 -1
- package/dist/unstable/ai/Response.js +1 -1
- package/dist/unstable/ai/Response.js.map +1 -1
- package/dist/unstable/cluster/ClusterCron.d.ts +1 -1
- package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterCron.js +1 -1
- package/dist/unstable/cluster/ClusterCron.js.map +1 -1
- package/dist/unstable/cluster/Entity.d.ts +3 -3
- package/dist/unstable/cluster/Entity.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityResource.d.ts +2 -2
- package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
- package/dist/unstable/cluster/K8sHttpClient.js +1 -1
- package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
- package/dist/unstable/cluster/MessageStorage.js.map +1 -1
- package/dist/unstable/cluster/Sharding.d.ts +2 -2
- package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
- package/dist/unstable/cluster/Sharding.js +1 -1
- package/dist/unstable/cluster/Sharding.js.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.d.ts +21 -21
- package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.js +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/internal/entityManager.js +1 -1
- package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
- package/dist/unstable/encoding/Sse.d.ts +2 -2
- package/dist/unstable/encoding/Sse.d.ts.map +1 -1
- package/dist/unstable/encoding/Sse.js.map +1 -1
- package/dist/unstable/http/Cookies.d.ts +1 -1
- package/dist/unstable/http/Cookies.d.ts.map +1 -1
- package/dist/unstable/http/Cookies.js +2 -2
- package/dist/unstable/http/Cookies.js.map +1 -1
- package/dist/unstable/http/HttpClient.d.ts +4 -4
- package/dist/unstable/http/HttpClient.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientRequest.d.ts +11 -11
- package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientRequest.js +8 -1
- package/dist/unstable/http/HttpClientRequest.js.map +1 -1
- package/dist/unstable/http/HttpMethod.d.ts +4 -4
- package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
- package/dist/unstable/http/HttpMethod.js +3 -3
- package/dist/unstable/http/HttpMethod.js.map +1 -1
- package/dist/unstable/observability/Otlp.d.ts +12 -12
- package/dist/unstable/observability/Otlp.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.d.ts +2 -2
- package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.js +1 -1
- package/dist/unstable/observability/OtlpExporter.js.map +1 -1
- package/dist/unstable/observability/OtlpLogger.d.ts +4 -4
- package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.d.ts +4 -4
- package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpTracer.d.ts +4 -4
- package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistable.d.ts +2 -2
- package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.d.ts +12 -12
- package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.js +6 -6
- package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
- package/dist/unstable/persistence/Persistence.d.ts +1 -1
- package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistence.js +2 -2
- package/dist/unstable/persistence/Persistence.js.map +1 -1
- package/dist/unstable/persistence/RateLimiter.d.ts +3 -3
- package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/unstable/persistence/RateLimiter.js +1 -1
- package/dist/unstable/persistence/RateLimiter.js.map +1 -1
- package/dist/unstable/process/ChildProcess.d.ts +1 -1
- package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
- package/dist/unstable/reactivity/Atom.d.ts +6 -6
- package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
- package/dist/unstable/reactivity/Atom.js +3 -3
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.js +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.js +1 -1
- package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
- package/dist/unstable/rpc/Rpc.d.ts +2 -2
- package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.d.ts +5 -26
- package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.js +3 -11
- package/dist/unstable/rpc/RpcClient.js.map +1 -1
- package/dist/unstable/socket/Socket.d.ts +4 -4
- package/dist/unstable/socket/Socket.d.ts.map +1 -1
- package/dist/unstable/sql/SqlModel.d.ts +2 -2
- package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
- package/dist/unstable/sql/SqlModel.js +3 -3
- package/dist/unstable/sql/SqlModel.js.map +1 -1
- package/dist/unstable/sql/SqlSchema.d.ts +16 -5
- package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
- package/dist/unstable/sql/SqlSchema.js +17 -7
- package/dist/unstable/sql/SqlSchema.js.map +1 -1
- package/dist/unstable/workflow/DurableClock.d.ts +3 -3
- package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableClock.js +3 -3
- package/dist/unstable/workflow/DurableClock.js.map +1 -1
- package/package.json +1 -1
- package/src/Cache.ts +3 -3
- package/src/Config.ts +3 -3
- package/src/DateTime.ts +24 -164
- package/src/Duration.ts +15 -15
- package/src/Effect.ts +15 -15
- package/src/Formatter.ts +252 -50
- package/src/JsonSchema.ts +383 -10
- package/src/LayerMap.ts +5 -5
- package/src/LogLevel.ts +31 -0
- package/src/Logger.ts +5 -5
- package/src/Metric.ts +4 -4
- package/src/Pool.ts +4 -4
- package/src/Random.ts +5 -14
- package/src/RcMap.ts +5 -5
- package/src/RcRef.ts +1 -1
- package/src/RequestResolver.ts +9 -9
- package/src/Schedule.ts +44 -25
- package/src/Schema.ts +4 -4
- package/src/ScopedCache.ts +3 -3
- package/src/Stream.ts +34 -34
- package/src/index.ts +134 -0
- package/src/internal/dateTime.ts +9 -30
- package/src/internal/effect.ts +21 -21
- package/src/internal/random.ts +20 -0
- package/src/internal/rcRef.ts +2 -2
- package/src/testing/TestClock.ts +5 -5
- package/src/testing/TestSchema.ts +8 -8
- package/src/unstable/ai/AiError.ts +1 -1
- package/src/unstable/ai/Chat.ts +10 -10
- package/src/unstable/ai/LanguageModel.ts +3 -3
- package/src/unstable/ai/McpServer.ts +2 -2
- package/src/unstable/ai/Prompt.ts +17 -17
- package/src/unstable/ai/Response.ts +23 -23
- package/src/unstable/cluster/ClusterCron.ts +2 -2
- package/src/unstable/cluster/Entity.ts +5 -5
- package/src/unstable/cluster/EntityResource.ts +4 -4
- package/src/unstable/cluster/K8sHttpClient.ts +1 -1
- package/src/unstable/cluster/MessageStorage.ts +1 -4
- package/src/unstable/cluster/Sharding.ts +3 -3
- package/src/unstable/cluster/ShardingConfig.ts +10 -11
- package/src/unstable/cluster/SqlRunnerStorage.ts +1 -1
- package/src/unstable/cluster/internal/entityManager.ts +3 -3
- package/src/unstable/encoding/Sse.ts +2 -4
- package/src/unstable/http/Cookies.ts +3 -3
- package/src/unstable/http/HttpClient.ts +4 -4
- package/src/unstable/http/HttpClientRequest.ts +15 -11
- package/src/unstable/http/HttpMethod.ts +16 -4
- package/src/unstable/observability/Otlp.ts +12 -12
- package/src/unstable/observability/OtlpExporter.ts +3 -3
- package/src/unstable/observability/OtlpLogger.ts +4 -4
- package/src/unstable/observability/OtlpMetrics.ts +4 -4
- package/src/unstable/observability/OtlpTracer.ts +4 -4
- package/src/unstable/persistence/Persistable.ts +2 -2
- package/src/unstable/persistence/PersistedQueue.ts +18 -18
- package/src/unstable/persistence/Persistence.ts +3 -3
- package/src/unstable/persistence/RateLimiter.ts +4 -4
- package/src/unstable/process/ChildProcess.ts +1 -1
- package/src/unstable/reactivity/Atom.ts +13 -13
- package/src/unstable/reactivity/AtomHttpApi.ts +3 -3
- package/src/unstable/reactivity/AtomRpc.ts +3 -3
- package/src/unstable/rpc/Rpc.ts +3 -3
- package/src/unstable/rpc/RpcClient.ts +8 -51
- package/src/unstable/socket/Socket.ts +4 -4
- package/src/unstable/sql/SqlModel.ts +5 -5
- package/src/unstable/sql/SqlSchema.ts +41 -25
- package/src/unstable/workflow/DurableClock.ts +8 -8
package/src/Config.ts
CHANGED
|
@@ -938,7 +938,7 @@ export const Boolean = Schema.Literals([...TrueValues.literals, ...FalseValues.l
|
|
|
938
938
|
* - Pass to {@link schema} for custom paths, or use the {@link duration}
|
|
939
939
|
* convenience constructor.
|
|
940
940
|
*
|
|
941
|
-
* Accepts any string that `Duration.
|
|
941
|
+
* Accepts any string that `Duration.fromInput` can parse (e.g.
|
|
942
942
|
* `"10 seconds"`, `"500 millis"`).
|
|
943
943
|
*
|
|
944
944
|
* @see {@link duration} – convenience constructor
|
|
@@ -948,7 +948,7 @@ export const Boolean = Schema.Literals([...TrueValues.literals, ...FalseValues.l
|
|
|
948
948
|
*/
|
|
949
949
|
export const Duration = Schema.String.pipe(Schema.decodeTo(Schema.Duration, {
|
|
950
950
|
decode: Getter.transformOrFail((s) => {
|
|
951
|
-
const d = Duration_.
|
|
951
|
+
const d = Duration_.fromInput(s as any)
|
|
952
952
|
return d ? Effect.succeed(d) : Effect.fail(new Issue.InvalidValue(Option.some(s)))
|
|
953
953
|
}),
|
|
954
954
|
encode: Getter.forbidden(() => "Encoding Duration is not supported")
|
|
@@ -1235,7 +1235,7 @@ export function boolean(name?: string) {
|
|
|
1235
1235
|
*
|
|
1236
1236
|
* Shortcut for `Config.schema(Config.Duration, name)`.
|
|
1237
1237
|
*
|
|
1238
|
-
* Accepts any string that `Duration.
|
|
1238
|
+
* Accepts any string that `Duration.fromInput` can parse (e.g.
|
|
1239
1239
|
* `"10 seconds"`, `"500 millis"`, `"2 minutes"`).
|
|
1240
1240
|
*
|
|
1241
1241
|
* **Example** (Reading a duration)
|
package/src/DateTime.ts
CHANGED
|
@@ -12,7 +12,6 @@ import { provideService } from "./internal/effect.ts"
|
|
|
12
12
|
import * as Layer from "./Layer.ts"
|
|
13
13
|
import type * as order from "./Order.ts"
|
|
14
14
|
import type { Pipeable } from "./Pipeable.ts"
|
|
15
|
-
import type * as Result from "./Result.ts"
|
|
16
15
|
import * as ServiceMap from "./ServiceMap.ts"
|
|
17
16
|
|
|
18
17
|
const TypeId = Internal.TypeId
|
|
@@ -1174,10 +1173,12 @@ export const setZoneNamedUnsafe: {
|
|
|
1174
1173
|
// =============================================================================
|
|
1175
1174
|
|
|
1176
1175
|
/**
|
|
1177
|
-
* Calulate the difference between two `DateTime` values, returning
|
|
1178
|
-
*
|
|
1176
|
+
* Calulate the difference between two `DateTime` values, returning a
|
|
1177
|
+
* `Duration` representing the amount of time between them.
|
|
1179
1178
|
*
|
|
1180
|
-
* If `other` is *after* `self`, the result will be a positive
|
|
1179
|
+
* If `other` is *after* `self`, the result will be a positive `Duration`. If
|
|
1180
|
+
* `other` is *before* `self`, the result will be a negative `Duration`. If they
|
|
1181
|
+
* are equal, the result will be a `Duration` of zero.
|
|
1181
1182
|
*
|
|
1182
1183
|
* @since 3.6.0
|
|
1183
1184
|
* @category comparisons
|
|
@@ -1189,7 +1190,7 @@ export const setZoneNamedUnsafe: {
|
|
|
1189
1190
|
* const now = yield* DateTime.now
|
|
1190
1191
|
* const other = DateTime.add(now, { minutes: 1 })
|
|
1191
1192
|
*
|
|
1192
|
-
* // returns
|
|
1193
|
+
* // returns Duration.minutes(1)
|
|
1193
1194
|
* DateTime.distance(now, other)
|
|
1194
1195
|
* })
|
|
1195
1196
|
* ```
|
|
@@ -1200,10 +1201,12 @@ export const distance: {
|
|
|
1200
1201
|
// =============================================================================
|
|
1201
1202
|
|
|
1202
1203
|
/**
|
|
1203
|
-
* Calulate the difference between two `DateTime` values, returning
|
|
1204
|
-
*
|
|
1204
|
+
* Calulate the difference between two `DateTime` values, returning a
|
|
1205
|
+
* `Duration` representing the amount of time between them.
|
|
1205
1206
|
*
|
|
1206
|
-
* If `other` is *after* `self`, the result will be a positive
|
|
1207
|
+
* If `other` is *after* `self`, the result will be a positive `Duration`. If
|
|
1208
|
+
* `other` is *before* `self`, the result will be a negative `Duration`. If they
|
|
1209
|
+
* are equal, the result will be a `Duration` of zero.
|
|
1207
1210
|
*
|
|
1208
1211
|
* @since 3.6.0
|
|
1209
1212
|
* @category comparisons
|
|
@@ -1215,147 +1218,23 @@ export const distance: {
|
|
|
1215
1218
|
* const now = yield* DateTime.now
|
|
1216
1219
|
* const other = DateTime.add(now, { minutes: 1 })
|
|
1217
1220
|
*
|
|
1218
|
-
* // returns
|
|
1221
|
+
* // returns Duration.minutes(1)
|
|
1219
1222
|
* DateTime.distance(now, other)
|
|
1220
1223
|
* })
|
|
1221
1224
|
* ```
|
|
1222
1225
|
*/
|
|
1223
|
-
(other: DateTime): (self: DateTime) =>
|
|
1226
|
+
(other: DateTime): (self: DateTime) => Duration.Duration
|
|
1224
1227
|
// =============================================================================
|
|
1225
1228
|
// comparisons
|
|
1226
1229
|
// =============================================================================
|
|
1227
1230
|
|
|
1228
1231
|
/**
|
|
1229
|
-
* Calulate the difference between two `DateTime` values, returning
|
|
1230
|
-
*
|
|
1231
|
-
*
|
|
1232
|
-
* If `other` is *after* `self`, the result will be a positive number.
|
|
1233
|
-
*
|
|
1234
|
-
* @since 3.6.0
|
|
1235
|
-
* @category comparisons
|
|
1236
|
-
* @example
|
|
1237
|
-
* ```ts
|
|
1238
|
-
* import { DateTime, Effect } from "effect"
|
|
1239
|
-
*
|
|
1240
|
-
* Effect.gen(function*() {
|
|
1241
|
-
* const now = yield* DateTime.now
|
|
1242
|
-
* const other = DateTime.add(now, { minutes: 1 })
|
|
1243
|
-
*
|
|
1244
|
-
* // returns 60000
|
|
1245
|
-
* DateTime.distance(now, other)
|
|
1246
|
-
* })
|
|
1247
|
-
* ```
|
|
1248
|
-
*/
|
|
1249
|
-
(self: DateTime, other: DateTime): number
|
|
1250
|
-
} = Internal.distance
|
|
1251
|
-
|
|
1252
|
-
/**
|
|
1253
|
-
* Calulate the difference between two `DateTime` values.
|
|
1254
|
-
*
|
|
1255
|
-
* If the `other` DateTime is before `self`, the result will be a negative
|
|
1256
|
-
* `Duration`, returned as a `Failure`.
|
|
1257
|
-
*
|
|
1258
|
-
* If the `other` DateTime is after `self`, the result will be a positive
|
|
1259
|
-
* `Duration`, returned as a `Success`.
|
|
1260
|
-
*
|
|
1261
|
-
* @since 3.6.0
|
|
1262
|
-
* @category comparisons
|
|
1263
|
-
* @example
|
|
1264
|
-
* ```ts
|
|
1265
|
-
* import { DateTime, Effect } from "effect"
|
|
1266
|
-
*
|
|
1267
|
-
* Effect.gen(function*() {
|
|
1268
|
-
* const now = yield* DateTime.now
|
|
1269
|
-
* const other = DateTime.add(now, { minutes: 1 })
|
|
1270
|
-
*
|
|
1271
|
-
* // returns Result.succeed(Duration.minutes(1))
|
|
1272
|
-
* DateTime.distanceDurationResult(now, other)
|
|
1273
|
-
*
|
|
1274
|
-
* // returns Result.fail(Duration.minutes(1))
|
|
1275
|
-
* DateTime.distanceDurationResult(other, now)
|
|
1276
|
-
* })
|
|
1277
|
-
* ```
|
|
1278
|
-
*/
|
|
1279
|
-
export const distanceDurationResult: {
|
|
1280
|
-
/**
|
|
1281
|
-
* Calulate the difference between two `DateTime` values.
|
|
1282
|
-
*
|
|
1283
|
-
* If the `other` DateTime is before `self`, the result will be a negative
|
|
1284
|
-
* `Duration`, returned as a `Failure`.
|
|
1232
|
+
* Calulate the difference between two `DateTime` values, returning a
|
|
1233
|
+
* `Duration` representing the amount of time between them.
|
|
1285
1234
|
*
|
|
1286
|
-
* If
|
|
1287
|
-
* `
|
|
1288
|
-
*
|
|
1289
|
-
* @since 3.6.0
|
|
1290
|
-
* @category comparisons
|
|
1291
|
-
* @example
|
|
1292
|
-
* ```ts
|
|
1293
|
-
* import { DateTime, Effect } from "effect"
|
|
1294
|
-
*
|
|
1295
|
-
* Effect.gen(function*() {
|
|
1296
|
-
* const now = yield* DateTime.now
|
|
1297
|
-
* const other = DateTime.add(now, { minutes: 1 })
|
|
1298
|
-
*
|
|
1299
|
-
* // returns Result.succeed(Duration.minutes(1))
|
|
1300
|
-
* DateTime.distanceDurationResult(now, other)
|
|
1301
|
-
*
|
|
1302
|
-
* // returns Result.fail(Duration.minutes(1))
|
|
1303
|
-
* DateTime.distanceDurationResult(other, now)
|
|
1304
|
-
* })
|
|
1305
|
-
* ```
|
|
1306
|
-
*/
|
|
1307
|
-
(other: DateTime): (self: DateTime) => Result.Result<Duration.Duration, Duration.Duration>
|
|
1308
|
-
/**
|
|
1309
|
-
* Calulate the difference between two `DateTime` values.
|
|
1310
|
-
*
|
|
1311
|
-
* If the `other` DateTime is before `self`, the result will be a negative
|
|
1312
|
-
* `Duration`, returned as a `Failure`.
|
|
1313
|
-
*
|
|
1314
|
-
* If the `other` DateTime is after `self`, the result will be a positive
|
|
1315
|
-
* `Duration`, returned as a `Success`.
|
|
1316
|
-
*
|
|
1317
|
-
* @since 3.6.0
|
|
1318
|
-
* @category comparisons
|
|
1319
|
-
* @example
|
|
1320
|
-
* ```ts
|
|
1321
|
-
* import { DateTime, Effect } from "effect"
|
|
1322
|
-
*
|
|
1323
|
-
* Effect.gen(function*() {
|
|
1324
|
-
* const now = yield* DateTime.now
|
|
1325
|
-
* const other = DateTime.add(now, { minutes: 1 })
|
|
1326
|
-
*
|
|
1327
|
-
* // returns Result.succeed(Duration.minutes(1))
|
|
1328
|
-
* DateTime.distanceDurationResult(now, other)
|
|
1329
|
-
*
|
|
1330
|
-
* // returns Result.fail(Duration.minutes(1))
|
|
1331
|
-
* DateTime.distanceDurationResult(other, now)
|
|
1332
|
-
* })
|
|
1333
|
-
* ```
|
|
1334
|
-
*/
|
|
1335
|
-
(self: DateTime, other: DateTime): Result.Result<Duration.Duration, Duration.Duration>
|
|
1336
|
-
} = Internal.distanceDurationResult
|
|
1337
|
-
|
|
1338
|
-
/**
|
|
1339
|
-
* Calulate the distance between two `DateTime` values.
|
|
1340
|
-
*
|
|
1341
|
-
* @since 3.6.0
|
|
1342
|
-
* @category comparisons
|
|
1343
|
-
* @example
|
|
1344
|
-
* ```ts
|
|
1345
|
-
* import { DateTime, Effect } from "effect"
|
|
1346
|
-
*
|
|
1347
|
-
* Effect.gen(function*() {
|
|
1348
|
-
* const now = yield* DateTime.now
|
|
1349
|
-
* const other = DateTime.add(now, { minutes: 1 })
|
|
1350
|
-
*
|
|
1351
|
-
* // returns Duration.minutes(1)
|
|
1352
|
-
* DateTime.distanceDuration(now, other)
|
|
1353
|
-
* })
|
|
1354
|
-
* ```
|
|
1355
|
-
*/
|
|
1356
|
-
export const distanceDuration: {
|
|
1357
|
-
/**
|
|
1358
|
-
* Calulate the distance between two `DateTime` values.
|
|
1235
|
+
* If `other` is *after* `self`, the result will be a positive `Duration`. If
|
|
1236
|
+
* `other` is *before* `self`, the result will be a negative `Duration`. If they
|
|
1237
|
+
* are equal, the result will be a `Duration` of zero.
|
|
1359
1238
|
*
|
|
1360
1239
|
* @since 3.6.0
|
|
1361
1240
|
* @category comparisons
|
|
@@ -1368,31 +1247,12 @@ export const distanceDuration: {
|
|
|
1368
1247
|
* const other = DateTime.add(now, { minutes: 1 })
|
|
1369
1248
|
*
|
|
1370
1249
|
* // returns Duration.minutes(1)
|
|
1371
|
-
* DateTime.
|
|
1372
|
-
* })
|
|
1373
|
-
* ```
|
|
1374
|
-
*/
|
|
1375
|
-
(other: DateTime): (self: DateTime) => Duration.Duration
|
|
1376
|
-
/**
|
|
1377
|
-
* Calulate the distance between two `DateTime` values.
|
|
1378
|
-
*
|
|
1379
|
-
* @since 3.6.0
|
|
1380
|
-
* @category comparisons
|
|
1381
|
-
* @example
|
|
1382
|
-
* ```ts
|
|
1383
|
-
* import { DateTime, Effect } from "effect"
|
|
1384
|
-
*
|
|
1385
|
-
* Effect.gen(function*() {
|
|
1386
|
-
* const now = yield* DateTime.now
|
|
1387
|
-
* const other = DateTime.add(now, { minutes: 1 })
|
|
1388
|
-
*
|
|
1389
|
-
* // returns Duration.minutes(1)
|
|
1390
|
-
* DateTime.distanceDuration(now, other)
|
|
1250
|
+
* DateTime.distance(now, other)
|
|
1391
1251
|
* })
|
|
1392
1252
|
* ```
|
|
1393
1253
|
*/
|
|
1394
1254
|
(self: DateTime, other: DateTime): Duration.Duration
|
|
1395
|
-
} = Internal.
|
|
1255
|
+
} = Internal.distance
|
|
1396
1256
|
|
|
1397
1257
|
/**
|
|
1398
1258
|
* Returns the earlier of two `DateTime` values.
|
|
@@ -3054,7 +2914,7 @@ export const addDuration: {
|
|
|
3054
2914
|
* )
|
|
3055
2915
|
* ```
|
|
3056
2916
|
*/
|
|
3057
|
-
(duration: Duration.
|
|
2917
|
+
(duration: Duration.Input): <A extends DateTime>(self: A) => A
|
|
3058
2918
|
// =============================================================================
|
|
3059
2919
|
// math
|
|
3060
2920
|
// =============================================================================
|
|
@@ -3074,7 +2934,7 @@ export const addDuration: {
|
|
|
3074
2934
|
* )
|
|
3075
2935
|
* ```
|
|
3076
2936
|
*/
|
|
3077
|
-
<A extends DateTime>(self: A, duration: Duration.
|
|
2937
|
+
<A extends DateTime>(self: A, duration: Duration.Input): A
|
|
3078
2938
|
} = Internal.addDuration
|
|
3079
2939
|
|
|
3080
2940
|
/**
|
|
@@ -3108,7 +2968,7 @@ export const subtractDuration: {
|
|
|
3108
2968
|
* )
|
|
3109
2969
|
* ```
|
|
3110
2970
|
*/
|
|
3111
|
-
(duration: Duration.
|
|
2971
|
+
(duration: Duration.Input): <A extends DateTime>(self: A) => A
|
|
3112
2972
|
/**
|
|
3113
2973
|
* Subtract the given `Duration` from a `DateTime`.
|
|
3114
2974
|
*
|
|
@@ -3124,7 +2984,7 @@ export const subtractDuration: {
|
|
|
3124
2984
|
* )
|
|
3125
2985
|
* ```
|
|
3126
2986
|
*/
|
|
3127
|
-
<A extends DateTime>(self: A, duration: Duration.
|
|
2987
|
+
<A extends DateTime>(self: A, duration: Duration.Input): A
|
|
3128
2988
|
} = Internal.subtractDuration
|
|
3129
2989
|
|
|
3130
2990
|
/**
|
package/src/Duration.ts
CHANGED
|
@@ -90,7 +90,7 @@ export type Unit =
|
|
|
90
90
|
* @since 2.0.0
|
|
91
91
|
* @category models
|
|
92
92
|
*/
|
|
93
|
-
export type
|
|
93
|
+
export type Input =
|
|
94
94
|
| Duration
|
|
95
95
|
| number // millis
|
|
96
96
|
| bigint // nanos
|
|
@@ -100,23 +100,23 @@ export type DurationInput =
|
|
|
100
100
|
const DURATION_REGEXP = /^(-?\d+(?:\.\d+)?)\s+(nanos?|micros?|millis?|seconds?|minutes?|hours?|days?|weeks?)$/
|
|
101
101
|
|
|
102
102
|
/**
|
|
103
|
-
* Decodes a `
|
|
103
|
+
* Decodes a `Duration.Input` into a `Duration`.
|
|
104
104
|
*
|
|
105
|
-
* If the input is not a valid `
|
|
105
|
+
* If the input is not a valid `Duration.Input`, it throws an error.
|
|
106
106
|
*
|
|
107
107
|
* @example
|
|
108
108
|
* ```ts
|
|
109
109
|
* import { Duration } from "effect"
|
|
110
110
|
*
|
|
111
|
-
* const duration1 = Duration.
|
|
112
|
-
* const duration2 = Duration.
|
|
113
|
-
* const duration3 = Duration.
|
|
111
|
+
* const duration1 = Duration.fromInputUnsafe(1000) // 1000 milliseconds
|
|
112
|
+
* const duration2 = Duration.fromInputUnsafe("5 seconds")
|
|
113
|
+
* const duration3 = Duration.fromInputUnsafe([2, 500_000_000]) // 2 seconds and 500ms
|
|
114
114
|
* ```
|
|
115
115
|
*
|
|
116
116
|
* @since 2.0.0
|
|
117
117
|
* @category constructors
|
|
118
118
|
*/
|
|
119
|
-
export const
|
|
119
|
+
export const fromInputUnsafe = (input: Input): Duration => {
|
|
120
120
|
if (isDuration(input)) return input
|
|
121
121
|
if (isNumber(input)) return millis(input)
|
|
122
122
|
if (isBigInt(input)) return nanos(input)
|
|
@@ -168,11 +168,11 @@ export const fromDurationInputUnsafe = (input: DurationInput): Duration => {
|
|
|
168
168
|
}
|
|
169
169
|
}
|
|
170
170
|
}
|
|
171
|
-
throw new Error(`Invalid
|
|
171
|
+
throw new Error(`Invalid Input: ${input}`)
|
|
172
172
|
}
|
|
173
173
|
|
|
174
174
|
/**
|
|
175
|
-
* Safely decodes a `
|
|
175
|
+
* Safely decodes a `Input` value into a `Duration`, returning
|
|
176
176
|
* `undefined` if decoding fails.
|
|
177
177
|
*
|
|
178
178
|
* **Example**
|
|
@@ -180,16 +180,16 @@ export const fromDurationInputUnsafe = (input: DurationInput): Duration => {
|
|
|
180
180
|
* ```ts
|
|
181
181
|
* import { Duration } from "effect"
|
|
182
182
|
*
|
|
183
|
-
* Duration.
|
|
183
|
+
* Duration.fromInput(1000)?.pipe(Duration.toSeconds) // 1
|
|
184
184
|
*
|
|
185
|
-
* Duration.
|
|
185
|
+
* Duration.fromInput("invalid" as any) // undefined
|
|
186
186
|
* ```
|
|
187
187
|
*
|
|
188
188
|
* @category constructors
|
|
189
189
|
* @since 4.0.0
|
|
190
190
|
*/
|
|
191
|
-
export const
|
|
192
|
-
|
|
191
|
+
export const fromInput: (u: Input) => Duration | undefined = UndefinedOr.liftThrowable(
|
|
192
|
+
fromInputUnsafe
|
|
193
193
|
)
|
|
194
194
|
|
|
195
195
|
const zeroDurationValue: DurationValue = { _tag: "Millis", millis: 0 }
|
|
@@ -611,8 +611,8 @@ export const weeks = (weeks: number): Duration => make(weeks * 604_800_000)
|
|
|
611
611
|
* @since 2.0.0
|
|
612
612
|
* @category getters
|
|
613
613
|
*/
|
|
614
|
-
export const toMillis = (self:
|
|
615
|
-
match(self, {
|
|
614
|
+
export const toMillis = (self: Input): number =>
|
|
615
|
+
match(fromInputUnsafe(self), {
|
|
616
616
|
onMillis: identity,
|
|
617
617
|
onNanos: (nanos) => Number(nanos) / 1_000_000,
|
|
618
618
|
onInfinity: () => Infinity,
|
package/src/Effect.ts
CHANGED
|
@@ -7224,7 +7224,7 @@ export const timeout: {
|
|
|
7224
7224
|
* @since 2.0.0
|
|
7225
7225
|
* @category Delays & Timeouts
|
|
7226
7226
|
*/
|
|
7227
|
-
(duration: Duration.
|
|
7227
|
+
(duration: Duration.Input): <A, E, R>(self: Effect<A, E, R>) => Effect<A, E | Cause.TimeoutError, R>
|
|
7228
7228
|
// -----------------------------------------------------------------------------
|
|
7229
7229
|
// Delays & timeouts
|
|
7230
7230
|
// -----------------------------------------------------------------------------
|
|
@@ -7275,7 +7275,7 @@ export const timeout: {
|
|
|
7275
7275
|
* @since 2.0.0
|
|
7276
7276
|
* @category Delays & Timeouts
|
|
7277
7277
|
*/
|
|
7278
|
-
<A, E, R>(self: Effect<A, E, R>, duration: Duration.
|
|
7278
|
+
<A, E, R>(self: Effect<A, E, R>, duration: Duration.Input): Effect<A, E | Cause.TimeoutError, R>
|
|
7279
7279
|
} = internal.timeout
|
|
7280
7280
|
|
|
7281
7281
|
/**
|
|
@@ -7377,7 +7377,7 @@ export const timeoutOption: {
|
|
|
7377
7377
|
* @since 3.1.0
|
|
7378
7378
|
* @category Delays & Timeouts
|
|
7379
7379
|
*/
|
|
7380
|
-
(duration: Duration.
|
|
7380
|
+
(duration: Duration.Input): <A, E, R>(self: Effect<A, E, R>) => Effect<Option<A>, E, R>
|
|
7381
7381
|
/**
|
|
7382
7382
|
* Handles timeouts by returning an `Option` that represents either the result
|
|
7383
7383
|
* or a timeout.
|
|
@@ -7427,7 +7427,7 @@ export const timeoutOption: {
|
|
|
7427
7427
|
* @since 3.1.0
|
|
7428
7428
|
* @category Delays & Timeouts
|
|
7429
7429
|
*/
|
|
7430
|
-
<A, E, R>(self: Effect<A, E, R>, duration: Duration.
|
|
7430
|
+
<A, E, R>(self: Effect<A, E, R>, duration: Duration.Input): Effect<Option<A>, E, R>
|
|
7431
7431
|
} = internal.timeoutOption
|
|
7432
7432
|
|
|
7433
7433
|
/**
|
|
@@ -7505,7 +7505,7 @@ export const timeoutOrElse: {
|
|
|
7505
7505
|
*/
|
|
7506
7506
|
<A2, E2, R2>(
|
|
7507
7507
|
options: {
|
|
7508
|
-
readonly duration: Duration.
|
|
7508
|
+
readonly duration: Duration.Input
|
|
7509
7509
|
readonly onTimeout: LazyArg<Effect<A2, E2, R2>>
|
|
7510
7510
|
}
|
|
7511
7511
|
): <A, E, R>(self: Effect<A, E, R>) => Effect<A | A2, E | E2, R | R2>
|
|
@@ -7548,7 +7548,7 @@ export const timeoutOrElse: {
|
|
|
7548
7548
|
<A, E, R, A2, E2, R2>(
|
|
7549
7549
|
self: Effect<A, E, R>,
|
|
7550
7550
|
options: {
|
|
7551
|
-
readonly duration: Duration.
|
|
7551
|
+
readonly duration: Duration.Input
|
|
7552
7552
|
readonly onTimeout: LazyArg<Effect<A2, E2, R2>>
|
|
7553
7553
|
}
|
|
7554
7554
|
): Effect<A | A2, E | E2, R | R2>
|
|
@@ -7595,7 +7595,7 @@ export const delay: {
|
|
|
7595
7595
|
* @since 2.0.0
|
|
7596
7596
|
* @category Delays & Timeouts
|
|
7597
7597
|
*/
|
|
7598
|
-
(duration: Duration.
|
|
7598
|
+
(duration: Duration.Input): <A, E, R>(self: Effect<A, E, R>) => Effect<A, E, R>
|
|
7599
7599
|
/**
|
|
7600
7600
|
* Returns an effect that is delayed from this effect by the specified
|
|
7601
7601
|
* `Duration`.
|
|
@@ -7616,7 +7616,7 @@ export const delay: {
|
|
|
7616
7616
|
* @since 2.0.0
|
|
7617
7617
|
* @category Delays & Timeouts
|
|
7618
7618
|
*/
|
|
7619
|
-
<A, E, R>(self: Effect<A, E, R>, duration: Duration.
|
|
7619
|
+
<A, E, R>(self: Effect<A, E, R>, duration: Duration.Input): Effect<A, E, R>
|
|
7620
7620
|
} = internal.delay
|
|
7621
7621
|
|
|
7622
7622
|
/**
|
|
@@ -7641,7 +7641,7 @@ export const delay: {
|
|
|
7641
7641
|
* @since 2.0.0
|
|
7642
7642
|
* @category Delays & Timeouts
|
|
7643
7643
|
*/
|
|
7644
|
-
export const sleep: (duration: Duration.
|
|
7644
|
+
export const sleep: (duration: Duration.Input) => Effect<void> = internal.sleep
|
|
7645
7645
|
|
|
7646
7646
|
/**
|
|
7647
7647
|
* Measures the runtime of an effect and returns the duration with its result.
|
|
@@ -12272,7 +12272,7 @@ export const cachedWithTTL: {
|
|
|
12272
12272
|
* @since 2.0.0
|
|
12273
12273
|
* @category Caching
|
|
12274
12274
|
*/
|
|
12275
|
-
(timeToLive: Duration.
|
|
12275
|
+
(timeToLive: Duration.Input): <A, E, R>(self: Effect<A, E, R>) => Effect<Effect<A, E, R>>
|
|
12276
12276
|
/**
|
|
12277
12277
|
* Returns an effect that caches its result for a specified `Duration`,
|
|
12278
12278
|
* known as "timeToLive" (TTL).
|
|
@@ -12339,7 +12339,7 @@ export const cachedWithTTL: {
|
|
|
12339
12339
|
* @since 2.0.0
|
|
12340
12340
|
* @category Caching
|
|
12341
12341
|
*/
|
|
12342
|
-
<A, E, R>(self: Effect<A, E, R>, timeToLive: Duration.
|
|
12342
|
+
<A, E, R>(self: Effect<A, E, R>, timeToLive: Duration.Input): Effect<Effect<A, E, R>>
|
|
12343
12343
|
} = internal.cachedWithTTL
|
|
12344
12344
|
|
|
12345
12345
|
/**
|
|
@@ -12481,7 +12481,7 @@ export const cachedInvalidateWithTTL: {
|
|
|
12481
12481
|
* @since 2.0.0
|
|
12482
12482
|
* @category Caching
|
|
12483
12483
|
*/
|
|
12484
|
-
(timeToLive: Duration.
|
|
12484
|
+
(timeToLive: Duration.Input): <A, E, R>(self: Effect<A, E, R>) => Effect<[Effect<A, E, R>, Effect<void>]>
|
|
12485
12485
|
/**
|
|
12486
12486
|
* Caches an effect's result for a specified duration and allows manual
|
|
12487
12487
|
* invalidation before expiration.
|
|
@@ -12551,7 +12551,7 @@ export const cachedInvalidateWithTTL: {
|
|
|
12551
12551
|
* @since 2.0.0
|
|
12552
12552
|
* @category Caching
|
|
12553
12553
|
*/
|
|
12554
|
-
<A, E, R>(self: Effect<A, E, R>, timeToLive: Duration.
|
|
12554
|
+
<A, E, R>(self: Effect<A, E, R>, timeToLive: Duration.Input): Effect<[Effect<A, E, R>, Effect<void>]>
|
|
12555
12555
|
} = internal.cachedInvalidateWithTTL
|
|
12556
12556
|
|
|
12557
12557
|
// -----------------------------------------------------------------------------
|
|
@@ -21905,8 +21905,8 @@ export const trackDuration: {
|
|
|
21905
21905
|
return onExit(self, () => {
|
|
21906
21906
|
const endTime = clock.currentTimeNanosUnsafe()
|
|
21907
21907
|
const duration = Duration.subtract(
|
|
21908
|
-
Duration.
|
|
21909
|
-
Duration.
|
|
21908
|
+
Duration.fromInputUnsafe(endTime),
|
|
21909
|
+
Duration.fromInputUnsafe(startTime)
|
|
21910
21910
|
)
|
|
21911
21911
|
const input = f === undefined ? duration : internalCall(() => f(duration))
|
|
21912
21912
|
return Metric.update(metric, input as any)
|