effect 3.12.11 → 3.13.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/README.md +38 -49
- package/dist/cjs/Channel.js.map +1 -1
- package/dist/cjs/DateTime.js +17 -1
- package/dist/cjs/DateTime.js.map +1 -1
- package/dist/cjs/Differ.js.map +1 -1
- package/dist/cjs/Duration.js +128 -1
- package/dist/cjs/Duration.js.map +1 -1
- package/dist/cjs/Effect.js +175 -37
- package/dist/cjs/Effect.js.map +1 -1
- package/dist/cjs/Either.js +2 -1
- package/dist/cjs/Either.js.map +1 -1
- package/dist/cjs/FiberHandle.js +54 -21
- package/dist/cjs/FiberHandle.js.map +1 -1
- package/dist/cjs/FiberMap.js +51 -24
- package/dist/cjs/FiberMap.js.map +1 -1
- package/dist/cjs/FiberSet.js +50 -17
- package/dist/cjs/FiberSet.js.map +1 -1
- package/dist/cjs/HashMap.js +19 -1
- package/dist/cjs/HashMap.js.map +1 -1
- package/dist/cjs/HashSet.js +9 -1
- package/dist/cjs/HashSet.js.map +1 -1
- package/dist/cjs/Layer.js +21 -1
- package/dist/cjs/Layer.js.map +1 -1
- package/dist/cjs/Match.js +659 -38
- package/dist/cjs/Match.js.map +1 -1
- package/dist/cjs/RcMap.js +11 -1
- package/dist/cjs/RcMap.js.map +1 -1
- package/dist/cjs/Reloadable.js.map +1 -1
- package/dist/cjs/STM.js.map +1 -1
- package/dist/cjs/Schedule.js +1074 -309
- package/dist/cjs/Schedule.js.map +1 -1
- package/dist/cjs/Schema.js +73 -1
- package/dist/cjs/Schema.js.map +1 -1
- package/dist/cjs/Stream.js.map +1 -1
- package/dist/cjs/internal/channel.js.map +1 -1
- package/dist/cjs/internal/core-effect.js.map +1 -1
- package/dist/cjs/internal/core.js +27 -3
- package/dist/cjs/internal/core.js.map +1 -1
- package/dist/cjs/internal/dateTime.js +4 -1
- package/dist/cjs/internal/dateTime.js.map +1 -1
- package/dist/cjs/internal/differ.js +4 -0
- package/dist/cjs/internal/differ.js.map +1 -1
- package/dist/cjs/internal/effect/circular.js +3 -2
- package/dist/cjs/internal/effect/circular.js.map +1 -1
- package/dist/cjs/internal/fiberRuntime.js +21 -7
- package/dist/cjs/internal/fiberRuntime.js.map +1 -1
- package/dist/cjs/internal/hashMap.js +10 -1
- package/dist/cjs/internal/hashMap.js.map +1 -1
- package/dist/cjs/internal/keyedPool.js +1 -1
- package/dist/cjs/internal/keyedPool.js.map +1 -1
- package/dist/cjs/internal/layer.js.map +1 -1
- package/dist/cjs/internal/rcMap.js +86 -56
- package/dist/cjs/internal/rcMap.js.map +1 -1
- package/dist/cjs/internal/reloadable.js.map +1 -1
- package/dist/cjs/internal/schedule.js.map +1 -1
- package/dist/cjs/internal/sink.js.map +1 -1
- package/dist/cjs/internal/stm/stm.js.map +1 -1
- 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/Channel.d.ts +4 -4
- package/dist/dts/Channel.d.ts.map +1 -1
- package/dist/dts/DateTime.d.ts +16 -0
- package/dist/dts/DateTime.d.ts.map +1 -1
- package/dist/dts/Differ.d.ts +2 -1
- package/dist/dts/Differ.d.ts.map +1 -1
- package/dist/dts/Duration.d.ts +64 -0
- package/dist/dts/Duration.d.ts.map +1 -1
- package/dist/dts/Effect.d.ts +402 -30
- package/dist/dts/Effect.d.ts.map +1 -1
- package/dist/dts/Either.d.ts +7 -0
- package/dist/dts/Either.d.ts.map +1 -1
- package/dist/dts/FiberHandle.d.ts +26 -0
- package/dist/dts/FiberHandle.d.ts.map +1 -1
- package/dist/dts/FiberMap.d.ts +26 -0
- package/dist/dts/FiberMap.d.ts.map +1 -1
- package/dist/dts/FiberSet.d.ts +25 -0
- package/dist/dts/FiberSet.d.ts.map +1 -1
- package/dist/dts/HashMap.d.ts +38 -0
- package/dist/dts/HashMap.d.ts.map +1 -1
- package/dist/dts/HashSet.d.ts +7 -0
- package/dist/dts/HashSet.d.ts.map +1 -1
- package/dist/dts/Layer.d.ts +32 -13
- package/dist/dts/Layer.d.ts.map +1 -1
- package/dist/dts/Match.d.ts +731 -48
- package/dist/dts/Match.d.ts.map +1 -1
- package/dist/dts/RcMap.d.ts +32 -0
- package/dist/dts/RcMap.d.ts.map +1 -1
- package/dist/dts/Reloadable.d.ts +13 -13
- package/dist/dts/Reloadable.d.ts.map +1 -1
- package/dist/dts/STM.d.ts +4 -4
- package/dist/dts/STM.d.ts.map +1 -1
- package/dist/dts/Schedule.d.ts +2294 -633
- package/dist/dts/Schedule.d.ts.map +1 -1
- package/dist/dts/Schema.d.ts +40 -4
- package/dist/dts/Schema.d.ts.map +1 -1
- package/dist/dts/Stream.d.ts +8 -8
- package/dist/dts/Stream.d.ts.map +1 -1
- package/dist/dts/Trie.d.ts +7 -7
- package/dist/dts/Trie.d.ts.map +1 -1
- package/dist/dts/index.d.ts +25 -0
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/internal/stm/stm.d.ts +2 -2
- package/dist/dts/internal/stm/stm.d.ts.map +1 -1
- package/dist/esm/Channel.js.map +1 -1
- package/dist/esm/DateTime.js +16 -0
- package/dist/esm/DateTime.js.map +1 -1
- package/dist/esm/Differ.js.map +1 -1
- package/dist/esm/Duration.js +124 -0
- package/dist/esm/Duration.js.map +1 -1
- package/dist/esm/Effect.js +170 -32
- package/dist/esm/Effect.js.map +1 -1
- package/dist/esm/Either.js +7 -0
- package/dist/esm/Either.js.map +1 -1
- package/dist/esm/FiberHandle.js +48 -18
- package/dist/esm/FiberHandle.js.map +1 -1
- package/dist/esm/FiberMap.js +46 -22
- package/dist/esm/FiberMap.js.map +1 -1
- package/dist/esm/FiberSet.js +45 -15
- package/dist/esm/FiberSet.js.map +1 -1
- package/dist/esm/HashMap.js +17 -0
- package/dist/esm/HashMap.js.map +1 -1
- package/dist/esm/HashSet.js +7 -0
- package/dist/esm/HashSet.js.map +1 -1
- package/dist/esm/Layer.js +20 -0
- package/dist/esm/Layer.js.map +1 -1
- package/dist/esm/Match.js +665 -40
- package/dist/esm/Match.js.map +1 -1
- package/dist/esm/RcMap.js +10 -0
- package/dist/esm/RcMap.js.map +1 -1
- package/dist/esm/Reloadable.js.map +1 -1
- package/dist/esm/STM.js.map +1 -1
- package/dist/esm/Schedule.js +1074 -309
- package/dist/esm/Schedule.js.map +1 -1
- package/dist/esm/Schema.js +71 -0
- package/dist/esm/Schema.js.map +1 -1
- package/dist/esm/Stream.js.map +1 -1
- package/dist/esm/index.js +25 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/channel.js.map +1 -1
- package/dist/esm/internal/core-effect.js.map +1 -1
- package/dist/esm/internal/core.js +23 -0
- package/dist/esm/internal/core.js.map +1 -1
- package/dist/esm/internal/dateTime.js +2 -0
- package/dist/esm/internal/dateTime.js.map +1 -1
- package/dist/esm/internal/differ.js +4 -0
- package/dist/esm/internal/differ.js.map +1 -1
- package/dist/esm/internal/effect/circular.js +3 -2
- package/dist/esm/internal/effect/circular.js.map +1 -1
- package/dist/esm/internal/fiberRuntime.js +18 -5
- package/dist/esm/internal/fiberRuntime.js.map +1 -1
- package/dist/esm/internal/hashMap.js +9 -0
- package/dist/esm/internal/hashMap.js.map +1 -1
- package/dist/esm/internal/keyedPool.js +1 -1
- package/dist/esm/internal/keyedPool.js.map +1 -1
- package/dist/esm/internal/layer.js.map +1 -1
- package/dist/esm/internal/rcMap.js +85 -55
- package/dist/esm/internal/rcMap.js.map +1 -1
- package/dist/esm/internal/reloadable.js.map +1 -1
- package/dist/esm/internal/schedule.js.map +1 -1
- package/dist/esm/internal/sink.js.map +1 -1
- package/dist/esm/internal/stm/stm.js.map +1 -1
- 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 +2 -1
- package/src/Channel.ts +14 -17
- package/src/DateTime.ts +17 -8
- package/src/Differ.ts +2 -1
- package/src/Duration.ts +147 -0
- package/src/Effect.ts +528 -140
- package/src/Either.ts +9 -0
- package/src/FiberHandle.ts +95 -35
- package/src/FiberMap.ts +104 -39
- package/src/FiberSet.ts +93 -24
- package/src/HashMap.ts +40 -0
- package/src/HashSet.ts +8 -0
- package/src/Layer.ts +94 -40
- package/src/Match.ts +733 -49
- package/src/RcMap.ts +34 -0
- package/src/Reloadable.ts +17 -27
- package/src/STM.ts +10 -17
- package/src/Schedule.ts +2325 -653
- package/src/Schema.ts +81 -4
- package/src/Stream.ts +26 -33
- package/src/Trie.ts +7 -7
- package/src/index.ts +25 -0
- package/src/internal/channel.ts +37 -39
- package/src/internal/core-effect.ts +84 -84
- package/src/internal/core.ts +80 -0
- package/src/internal/dateTime.ts +3 -0
- package/src/internal/differ.ts +4 -0
- package/src/internal/effect/circular.ts +3 -2
- package/src/internal/fiberRuntime.ts +31 -6
- package/src/internal/hashMap.ts +16 -0
- package/src/internal/keyedPool.ts +1 -1
- package/src/internal/layer.ts +52 -52
- package/src/internal/rcMap.ts +131 -89
- package/src/internal/reloadable.ts +25 -28
- package/src/internal/schedule.ts +29 -23
- package/src/internal/sink.ts +16 -15
- package/src/internal/stm/stm.ts +54 -46
- package/src/internal/stream.ts +100 -100
- package/src/internal/version.ts +1 -1
package/src/Effect.ts
CHANGED
|
@@ -34,12 +34,13 @@ import * as defaultServices from "./internal/defaultServices.js"
|
|
|
34
34
|
import * as circular from "./internal/effect/circular.js"
|
|
35
35
|
import * as fiberRuntime from "./internal/fiberRuntime.js"
|
|
36
36
|
import * as layer from "./internal/layer.js"
|
|
37
|
+
import * as option_ from "./internal/option.js"
|
|
37
38
|
import * as query from "./internal/query.js"
|
|
38
39
|
import * as runtime_ from "./internal/runtime.js"
|
|
39
40
|
import * as schedule_ from "./internal/schedule.js"
|
|
40
41
|
import * as internalTracer from "./internal/tracer.js"
|
|
41
42
|
import type * as Layer from "./Layer.js"
|
|
42
|
-
import type
|
|
43
|
+
import type * as LogLevel from "./LogLevel.js"
|
|
43
44
|
import type * as ManagedRuntime from "./ManagedRuntime.js"
|
|
44
45
|
import type * as Metric from "./Metric.js"
|
|
45
46
|
import type * as MetricLabel from "./MetricLabel.js"
|
|
@@ -15002,10 +15003,7 @@ export const provideService: {
|
|
|
15002
15003
|
* @since 2.0.0
|
|
15003
15004
|
* @category Context
|
|
15004
15005
|
*/
|
|
15005
|
-
<
|
|
15006
|
-
tag: T,
|
|
15007
|
-
service: Context.Tag.Service<T>
|
|
15008
|
-
): <A, E, R>(self: Effect<A, E, R>) => Effect<A, E, Exclude<R, Context.Tag.Identifier<T>>>
|
|
15006
|
+
<I, S>(tag: Context.Tag<I, S>, service: NoInfer<S>): <A, E, R>(self: Effect<A, E, R>) => Effect<A, E, Exclude<R, I>>
|
|
15009
15007
|
/**
|
|
15010
15008
|
* Provides an implementation for a service in the context of an effect.
|
|
15011
15009
|
*
|
|
@@ -15058,11 +15056,7 @@ export const provideService: {
|
|
|
15058
15056
|
* @since 2.0.0
|
|
15059
15057
|
* @category Context
|
|
15060
15058
|
*/
|
|
15061
|
-
<A, E, R,
|
|
15062
|
-
self: Effect<A, E, R>,
|
|
15063
|
-
tag: T,
|
|
15064
|
-
service: Context.Tag.Service<T>
|
|
15065
|
-
): Effect<A, E, Exclude<R, Context.Tag.Identifier<T>>>
|
|
15059
|
+
<A, E, R, I, S>(self: Effect<A, E, R>, tag: Context.Tag<I, S>, service: NoInfer<S>): Effect<A, E, Exclude<R, I>>
|
|
15066
15060
|
} = effect.provideService
|
|
15067
15061
|
|
|
15068
15062
|
/**
|
|
@@ -15102,10 +15096,10 @@ export const provideServiceEffect: {
|
|
|
15102
15096
|
* @since 2.0.0
|
|
15103
15097
|
* @category Context
|
|
15104
15098
|
*/
|
|
15105
|
-
<
|
|
15106
|
-
tag:
|
|
15107
|
-
effect: Effect<
|
|
15108
|
-
): <A, E, R>(self: Effect<A, E, R>) => Effect<A,
|
|
15099
|
+
<I, S, E1, R1>(
|
|
15100
|
+
tag: Context.Tag<I, S>,
|
|
15101
|
+
effect: Effect<NoInfer<S>, E1, R1>
|
|
15102
|
+
): <A, E, R>(self: Effect<A, E, R>) => Effect<A, E | E1, R1 | Exclude<R, I>>
|
|
15109
15103
|
/**
|
|
15110
15104
|
* Dynamically provides an implementation for a service using an effect.
|
|
15111
15105
|
*
|
|
@@ -15124,11 +15118,11 @@ export const provideServiceEffect: {
|
|
|
15124
15118
|
* @since 2.0.0
|
|
15125
15119
|
* @category Context
|
|
15126
15120
|
*/
|
|
15127
|
-
<A, E, R,
|
|
15121
|
+
<A, E, R, I, S, E1, R1>(
|
|
15128
15122
|
self: Effect<A, E, R>,
|
|
15129
|
-
tag:
|
|
15130
|
-
effect: Effect<
|
|
15131
|
-
): Effect<A, E | E1, R1 | Exclude<R,
|
|
15123
|
+
tag: Context.Tag<I, S>,
|
|
15124
|
+
effect: Effect<NoInfer<S>, E1, R1>
|
|
15125
|
+
): Effect<A, E | E1, R1 | Exclude<R, I>>
|
|
15132
15126
|
} = effect.provideServiceEffect
|
|
15133
15127
|
|
|
15134
15128
|
/**
|
|
@@ -15279,10 +15273,10 @@ export const updateService: {
|
|
|
15279
15273
|
* @since 2.0.0
|
|
15280
15274
|
* @category Context
|
|
15281
15275
|
*/
|
|
15282
|
-
<
|
|
15283
|
-
tag:
|
|
15284
|
-
f: (service:
|
|
15285
|
-
): <A, E, R>(self: Effect<A, E, R>) => Effect<A, E, R |
|
|
15276
|
+
<I, S>(
|
|
15277
|
+
tag: Context.Tag<I, S>,
|
|
15278
|
+
f: (service: NoInfer<S>) => NoInfer<S>
|
|
15279
|
+
): <A, E, R>(self: Effect<A, E, R>) => Effect<A, E, R | I>
|
|
15286
15280
|
/**
|
|
15287
15281
|
* Updates a service in the context with a new implementation.
|
|
15288
15282
|
*
|
|
@@ -15301,11 +15295,11 @@ export const updateService: {
|
|
|
15301
15295
|
* @since 2.0.0
|
|
15302
15296
|
* @category Context
|
|
15303
15297
|
*/
|
|
15304
|
-
<A, E, R,
|
|
15298
|
+
<A, E, R, I, S>(
|
|
15305
15299
|
self: Effect<A, E, R>,
|
|
15306
|
-
tag:
|
|
15307
|
-
f: (service:
|
|
15308
|
-
): Effect<A, E, R |
|
|
15300
|
+
tag: Context.Tag<I, S>,
|
|
15301
|
+
f: (service: NoInfer<S>) => NoInfer<S>
|
|
15302
|
+
): Effect<A, E, R | I>
|
|
15309
15303
|
} = effect.updateService
|
|
15310
15304
|
|
|
15311
15305
|
/**
|
|
@@ -16785,6 +16779,263 @@ export const filterOrFail: {
|
|
|
16785
16779
|
<A, E, R>(self: Effect<A, E, R>, predicate: Predicate<A>): Effect<A, E | Cause.NoSuchElementException, R>
|
|
16786
16780
|
} = effect.filterOrFail
|
|
16787
16781
|
|
|
16782
|
+
/**
|
|
16783
|
+
* Filters an effect with an effectful predicate, falling back to an alternative
|
|
16784
|
+
* effect if the predicate fails.
|
|
16785
|
+
*
|
|
16786
|
+
* **Details**
|
|
16787
|
+
*
|
|
16788
|
+
* This function applies a predicate to the result of an effect. If the
|
|
16789
|
+
* predicate evaluates to `false`, the effect falls back to the `orElse`
|
|
16790
|
+
* effect. The `orElse` effect can produce an alternative value or perform
|
|
16791
|
+
* additional computations.
|
|
16792
|
+
*
|
|
16793
|
+
* @example
|
|
16794
|
+
* ```ts
|
|
16795
|
+
* import { Effect, pipe } from "effect"
|
|
16796
|
+
*
|
|
16797
|
+
* // Define a user interface
|
|
16798
|
+
* interface User {
|
|
16799
|
+
* readonly name: string
|
|
16800
|
+
* }
|
|
16801
|
+
*
|
|
16802
|
+
* // Simulate an asynchronous authentication function
|
|
16803
|
+
* declare const auth: () => Promise<User | null>
|
|
16804
|
+
*
|
|
16805
|
+
* const program = pipe(
|
|
16806
|
+
* Effect.promise(() => auth()),
|
|
16807
|
+
* // Use filterEffectOrElse with an effectful predicate
|
|
16808
|
+
* Effect.filterEffectOrElse({
|
|
16809
|
+
* predicate: (user) => Effect.succeed(user !== null),
|
|
16810
|
+
* orElse: (user) => Effect.fail(new Error(`Unauthorized user: ${user}`))
|
|
16811
|
+
* }),
|
|
16812
|
+
* )
|
|
16813
|
+
* ```
|
|
16814
|
+
*
|
|
16815
|
+
* @since 3.13.0
|
|
16816
|
+
* @category Filtering
|
|
16817
|
+
*/
|
|
16818
|
+
export const filterEffectOrElse: {
|
|
16819
|
+
/**
|
|
16820
|
+
* Filters an effect with an effectful predicate, falling back to an alternative
|
|
16821
|
+
* effect if the predicate fails.
|
|
16822
|
+
*
|
|
16823
|
+
* **Details**
|
|
16824
|
+
*
|
|
16825
|
+
* This function applies a predicate to the result of an effect. If the
|
|
16826
|
+
* predicate evaluates to `false`, the effect falls back to the `orElse`
|
|
16827
|
+
* effect. The `orElse` effect can produce an alternative value or perform
|
|
16828
|
+
* additional computations.
|
|
16829
|
+
*
|
|
16830
|
+
* @example
|
|
16831
|
+
* ```ts
|
|
16832
|
+
* import { Effect, pipe } from "effect"
|
|
16833
|
+
*
|
|
16834
|
+
* // Define a user interface
|
|
16835
|
+
* interface User {
|
|
16836
|
+
* readonly name: string
|
|
16837
|
+
* }
|
|
16838
|
+
*
|
|
16839
|
+
* // Simulate an asynchronous authentication function
|
|
16840
|
+
* declare const auth: () => Promise<User | null>
|
|
16841
|
+
*
|
|
16842
|
+
* const program = pipe(
|
|
16843
|
+
* Effect.promise(() => auth()),
|
|
16844
|
+
* // Use filterEffectOrElse with an effectful predicate
|
|
16845
|
+
* Effect.filterEffectOrElse({
|
|
16846
|
+
* predicate: (user) => Effect.succeed(user !== null),
|
|
16847
|
+
* orElse: (user) => Effect.fail(new Error(`Unauthorized user: ${user}`))
|
|
16848
|
+
* }),
|
|
16849
|
+
* )
|
|
16850
|
+
* ```
|
|
16851
|
+
*
|
|
16852
|
+
* @since 3.13.0
|
|
16853
|
+
* @category Filtering
|
|
16854
|
+
*/
|
|
16855
|
+
<A, E2, R2, A2, E3, R3>(
|
|
16856
|
+
options: {
|
|
16857
|
+
readonly predicate: (a: NoInfer<A>) => Effect<boolean, E2, R2>
|
|
16858
|
+
readonly orElse: (a: NoInfer<A>) => Effect<A2, E3, R3>
|
|
16859
|
+
}
|
|
16860
|
+
): <E, R>(self: Effect<A, E, R>) => Effect<A | A2, E | E2 | E3, R | R2 | R3>
|
|
16861
|
+
/**
|
|
16862
|
+
* Filters an effect with an effectful predicate, falling back to an alternative
|
|
16863
|
+
* effect if the predicate fails.
|
|
16864
|
+
*
|
|
16865
|
+
* **Details**
|
|
16866
|
+
*
|
|
16867
|
+
* This function applies a predicate to the result of an effect. If the
|
|
16868
|
+
* predicate evaluates to `false`, the effect falls back to the `orElse`
|
|
16869
|
+
* effect. The `orElse` effect can produce an alternative value or perform
|
|
16870
|
+
* additional computations.
|
|
16871
|
+
*
|
|
16872
|
+
* @example
|
|
16873
|
+
* ```ts
|
|
16874
|
+
* import { Effect, pipe } from "effect"
|
|
16875
|
+
*
|
|
16876
|
+
* // Define a user interface
|
|
16877
|
+
* interface User {
|
|
16878
|
+
* readonly name: string
|
|
16879
|
+
* }
|
|
16880
|
+
*
|
|
16881
|
+
* // Simulate an asynchronous authentication function
|
|
16882
|
+
* declare const auth: () => Promise<User | null>
|
|
16883
|
+
*
|
|
16884
|
+
* const program = pipe(
|
|
16885
|
+
* Effect.promise(() => auth()),
|
|
16886
|
+
* // Use filterEffectOrElse with an effectful predicate
|
|
16887
|
+
* Effect.filterEffectOrElse({
|
|
16888
|
+
* predicate: (user) => Effect.succeed(user !== null),
|
|
16889
|
+
* orElse: (user) => Effect.fail(new Error(`Unauthorized user: ${user}`))
|
|
16890
|
+
* }),
|
|
16891
|
+
* )
|
|
16892
|
+
* ```
|
|
16893
|
+
*
|
|
16894
|
+
* @since 3.13.0
|
|
16895
|
+
* @category Filtering
|
|
16896
|
+
*/
|
|
16897
|
+
<A, E, R, E2, R2, A2, E3, R3>(
|
|
16898
|
+
self: Effect<A, E, R>,
|
|
16899
|
+
options: {
|
|
16900
|
+
readonly predicate: (a: A) => Effect<boolean, E2, R2>
|
|
16901
|
+
readonly orElse: (a: A) => Effect<A2, E3, R3>
|
|
16902
|
+
}
|
|
16903
|
+
): Effect<A | A2, E | E2 | E3, R | R2 | R3>
|
|
16904
|
+
} = core.filterEffectOrElse
|
|
16905
|
+
|
|
16906
|
+
/**
|
|
16907
|
+
* Filters an effect with an effectful predicate, failing with a custom error if the predicate fails.
|
|
16908
|
+
*
|
|
16909
|
+
* **Details**
|
|
16910
|
+
*
|
|
16911
|
+
* This function applies a predicate to the result of an effect. If the
|
|
16912
|
+
* predicate evaluates to `false`, the effect fails with a custom error
|
|
16913
|
+
* generated by the `orFailWith` function.
|
|
16914
|
+
*
|
|
16915
|
+
* **When to Use**
|
|
16916
|
+
*
|
|
16917
|
+
* This is useful for enforcing constraints and treating violations as
|
|
16918
|
+
* recoverable errors.
|
|
16919
|
+
*
|
|
16920
|
+
* @example
|
|
16921
|
+
* ```ts
|
|
16922
|
+
* import { Effect, pipe } from "effect"
|
|
16923
|
+
*
|
|
16924
|
+
* // Define a user interface
|
|
16925
|
+
* interface User {
|
|
16926
|
+
* readonly name: string
|
|
16927
|
+
* }
|
|
16928
|
+
*
|
|
16929
|
+
* // Simulate an asynchronous authentication function
|
|
16930
|
+
* declare const auth: () => Promise<User | null>
|
|
16931
|
+
*
|
|
16932
|
+
* const program = pipe(
|
|
16933
|
+
* Effect.promise(() => auth()),
|
|
16934
|
+
* // Use filterEffectOrFail with an effectful predicate
|
|
16935
|
+
* Effect.filterEffectOrFail({
|
|
16936
|
+
* predicate: (user) => Effect.succeed(user !== null),
|
|
16937
|
+
* orFailWith: () => new Error("Unauthorized")
|
|
16938
|
+
* }),
|
|
16939
|
+
* )
|
|
16940
|
+
* ```
|
|
16941
|
+
*
|
|
16942
|
+
* @since 3.13.0
|
|
16943
|
+
* @category Filtering
|
|
16944
|
+
*/
|
|
16945
|
+
export const filterEffectOrFail: {
|
|
16946
|
+
/**
|
|
16947
|
+
* Filters an effect with an effectful predicate, failing with a custom error if the predicate fails.
|
|
16948
|
+
*
|
|
16949
|
+
* **Details**
|
|
16950
|
+
*
|
|
16951
|
+
* This function applies a predicate to the result of an effect. If the
|
|
16952
|
+
* predicate evaluates to `false`, the effect fails with a custom error
|
|
16953
|
+
* generated by the `orFailWith` function.
|
|
16954
|
+
*
|
|
16955
|
+
* **When to Use**
|
|
16956
|
+
*
|
|
16957
|
+
* This is useful for enforcing constraints and treating violations as
|
|
16958
|
+
* recoverable errors.
|
|
16959
|
+
*
|
|
16960
|
+
* @example
|
|
16961
|
+
* ```ts
|
|
16962
|
+
* import { Effect, pipe } from "effect"
|
|
16963
|
+
*
|
|
16964
|
+
* // Define a user interface
|
|
16965
|
+
* interface User {
|
|
16966
|
+
* readonly name: string
|
|
16967
|
+
* }
|
|
16968
|
+
*
|
|
16969
|
+
* // Simulate an asynchronous authentication function
|
|
16970
|
+
* declare const auth: () => Promise<User | null>
|
|
16971
|
+
*
|
|
16972
|
+
* const program = pipe(
|
|
16973
|
+
* Effect.promise(() => auth()),
|
|
16974
|
+
* // Use filterEffectOrFail with an effectful predicate
|
|
16975
|
+
* Effect.filterEffectOrFail({
|
|
16976
|
+
* predicate: (user) => Effect.succeed(user !== null),
|
|
16977
|
+
* orFailWith: () => new Error("Unauthorized")
|
|
16978
|
+
* }),
|
|
16979
|
+
* )
|
|
16980
|
+
* ```
|
|
16981
|
+
*
|
|
16982
|
+
* @since 3.13.0
|
|
16983
|
+
* @category Filtering
|
|
16984
|
+
*/
|
|
16985
|
+
<A, E2, R2, E3>(
|
|
16986
|
+
options: {
|
|
16987
|
+
readonly predicate: (a: NoInfer<A>) => Effect<boolean, E2, R2>
|
|
16988
|
+
readonly orFailWith: (a: NoInfer<A>) => E3
|
|
16989
|
+
}
|
|
16990
|
+
): <E, R>(self: Effect<A, E, R>) => Effect<A, E | E2 | E3, R | R2>
|
|
16991
|
+
/**
|
|
16992
|
+
* Filters an effect with an effectful predicate, failing with a custom error if the predicate fails.
|
|
16993
|
+
*
|
|
16994
|
+
* **Details**
|
|
16995
|
+
*
|
|
16996
|
+
* This function applies a predicate to the result of an effect. If the
|
|
16997
|
+
* predicate evaluates to `false`, the effect fails with a custom error
|
|
16998
|
+
* generated by the `orFailWith` function.
|
|
16999
|
+
*
|
|
17000
|
+
* **When to Use**
|
|
17001
|
+
*
|
|
17002
|
+
* This is useful for enforcing constraints and treating violations as
|
|
17003
|
+
* recoverable errors.
|
|
17004
|
+
*
|
|
17005
|
+
* @example
|
|
17006
|
+
* ```ts
|
|
17007
|
+
* import { Effect, pipe } from "effect"
|
|
17008
|
+
*
|
|
17009
|
+
* // Define a user interface
|
|
17010
|
+
* interface User {
|
|
17011
|
+
* readonly name: string
|
|
17012
|
+
* }
|
|
17013
|
+
*
|
|
17014
|
+
* // Simulate an asynchronous authentication function
|
|
17015
|
+
* declare const auth: () => Promise<User | null>
|
|
17016
|
+
*
|
|
17017
|
+
* const program = pipe(
|
|
17018
|
+
* Effect.promise(() => auth()),
|
|
17019
|
+
* // Use filterEffectOrFail with an effectful predicate
|
|
17020
|
+
* Effect.filterEffectOrFail({
|
|
17021
|
+
* predicate: (user) => Effect.succeed(user !== null),
|
|
17022
|
+
* orFailWith: () => new Error("Unauthorized")
|
|
17023
|
+
* }),
|
|
17024
|
+
* )
|
|
17025
|
+
* ```
|
|
17026
|
+
*
|
|
17027
|
+
* @since 3.13.0
|
|
17028
|
+
* @category Filtering
|
|
17029
|
+
*/
|
|
17030
|
+
<A, E, R, E2, R2, E3>(
|
|
17031
|
+
self: Effect<A, E, R>,
|
|
17032
|
+
options: {
|
|
17033
|
+
readonly predicate: (a: A) => Effect<boolean, E2, R2>
|
|
17034
|
+
readonly orFailWith: (a: A) => E3
|
|
17035
|
+
}
|
|
17036
|
+
): Effect<A, E | E2 | E3, R | R2>
|
|
17037
|
+
} = core.filterEffectOrFail
|
|
17038
|
+
|
|
16788
17039
|
/**
|
|
16789
17040
|
* Executes an effect only if the condition is `false`.
|
|
16790
17041
|
*
|
|
@@ -22762,7 +23013,7 @@ export const log: (...message: ReadonlyArray<any>) => Effect<void, never, never>
|
|
|
22762
23013
|
* @category Logging
|
|
22763
23014
|
*/
|
|
22764
23015
|
export const logWithLevel = (
|
|
22765
|
-
level: LogLevel,
|
|
23016
|
+
level: LogLevel.LogLevel,
|
|
22766
23017
|
...message: ReadonlyArray<any>
|
|
22767
23018
|
): Effect<void> => effect.logWithLevel(level)(...message)
|
|
22768
23019
|
|
|
@@ -23378,7 +23629,7 @@ export const withUnhandledErrorLogLevel: {
|
|
|
23378
23629
|
* @since 2.0.0
|
|
23379
23630
|
* @category Logging
|
|
23380
23631
|
*/
|
|
23381
|
-
(level: Option.Option<LogLevel>): <A, E, R>(self: Effect<A, E, R>) => Effect<A, E, R>
|
|
23632
|
+
(level: Option.Option<LogLevel.LogLevel>): <A, E, R>(self: Effect<A, E, R>) => Effect<A, E, R>
|
|
23382
23633
|
/**
|
|
23383
23634
|
* Configures whether child fibers will log unhandled errors and at what log
|
|
23384
23635
|
* level.
|
|
@@ -23413,9 +23664,107 @@ export const withUnhandledErrorLogLevel: {
|
|
|
23413
23664
|
* @since 2.0.0
|
|
23414
23665
|
* @category Logging
|
|
23415
23666
|
*/
|
|
23416
|
-
<A, E, R>(self: Effect<A, E, R>, level: Option.Option<LogLevel>): Effect<A, E, R>
|
|
23667
|
+
<A, E, R>(self: Effect<A, E, R>, level: Option.Option<LogLevel.LogLevel>): Effect<A, E, R>
|
|
23417
23668
|
} = core.withUnhandledErrorLogLevel
|
|
23418
23669
|
|
|
23670
|
+
/**
|
|
23671
|
+
* Conditionally executes an effect based on the specified log level and currently enabled log level.
|
|
23672
|
+
*
|
|
23673
|
+
* **Details**
|
|
23674
|
+
*
|
|
23675
|
+
* This function runs the provided effect only if the specified log level is
|
|
23676
|
+
* enabled. If the log level is enabled, the effect is executed and its result
|
|
23677
|
+
* is wrapped in `Some`. If the log level is not enabled, the effect is not
|
|
23678
|
+
* executed and `None` is returned.
|
|
23679
|
+
*
|
|
23680
|
+
* This function is useful for conditionally executing logging-related effects
|
|
23681
|
+
* or other operations that depend on the current log level configuration.
|
|
23682
|
+
*
|
|
23683
|
+
* @example
|
|
23684
|
+
* ```ts
|
|
23685
|
+
* import { Effect, Logger, LogLevel } from "effect"
|
|
23686
|
+
*
|
|
23687
|
+
* const program = Effect.gen(function* () {
|
|
23688
|
+
* yield* Effect.whenLogLevel(Effect.logTrace("message1"), LogLevel.Trace); // returns `None`
|
|
23689
|
+
* yield* Effect.whenLogLevel(Effect.logDebug("message2"), LogLevel.Debug); // returns `Some`
|
|
23690
|
+
* }).pipe(Logger.withMinimumLogLevel(LogLevel.Debug));
|
|
23691
|
+
*
|
|
23692
|
+
* // Effect.runFork(program)
|
|
23693
|
+
* // timestamp=... level=DEBUG fiber=#0 message=message2
|
|
23694
|
+
* ```
|
|
23695
|
+
*
|
|
23696
|
+
* @see {@link FiberRef.minimumLogLevel} to retrieve the current minimum log level.
|
|
23697
|
+
*
|
|
23698
|
+
* @since 3.13.0
|
|
23699
|
+
* @category Logging
|
|
23700
|
+
*/
|
|
23701
|
+
export const whenLogLevel: {
|
|
23702
|
+
/**
|
|
23703
|
+
* Conditionally executes an effect based on the specified log level and currently enabled log level.
|
|
23704
|
+
*
|
|
23705
|
+
* **Details**
|
|
23706
|
+
*
|
|
23707
|
+
* This function runs the provided effect only if the specified log level is
|
|
23708
|
+
* enabled. If the log level is enabled, the effect is executed and its result
|
|
23709
|
+
* is wrapped in `Some`. If the log level is not enabled, the effect is not
|
|
23710
|
+
* executed and `None` is returned.
|
|
23711
|
+
*
|
|
23712
|
+
* This function is useful for conditionally executing logging-related effects
|
|
23713
|
+
* or other operations that depend on the current log level configuration.
|
|
23714
|
+
*
|
|
23715
|
+
* @example
|
|
23716
|
+
* ```ts
|
|
23717
|
+
* import { Effect, Logger, LogLevel } from "effect"
|
|
23718
|
+
*
|
|
23719
|
+
* const program = Effect.gen(function* () {
|
|
23720
|
+
* yield* Effect.whenLogLevel(Effect.logTrace("message1"), LogLevel.Trace); // returns `None`
|
|
23721
|
+
* yield* Effect.whenLogLevel(Effect.logDebug("message2"), LogLevel.Debug); // returns `Some`
|
|
23722
|
+
* }).pipe(Logger.withMinimumLogLevel(LogLevel.Debug));
|
|
23723
|
+
*
|
|
23724
|
+
* // Effect.runFork(program)
|
|
23725
|
+
* // timestamp=... level=DEBUG fiber=#0 message=message2
|
|
23726
|
+
* ```
|
|
23727
|
+
*
|
|
23728
|
+
* @see {@link FiberRef.minimumLogLevel} to retrieve the current minimum log level.
|
|
23729
|
+
*
|
|
23730
|
+
* @since 3.13.0
|
|
23731
|
+
* @category Logging
|
|
23732
|
+
*/
|
|
23733
|
+
(level: LogLevel.LogLevel | LogLevel.Literal): <A, E, R>(self: Effect<A, E, R>) => Effect<Option.Option<A>, E, R>
|
|
23734
|
+
/**
|
|
23735
|
+
* Conditionally executes an effect based on the specified log level and currently enabled log level.
|
|
23736
|
+
*
|
|
23737
|
+
* **Details**
|
|
23738
|
+
*
|
|
23739
|
+
* This function runs the provided effect only if the specified log level is
|
|
23740
|
+
* enabled. If the log level is enabled, the effect is executed and its result
|
|
23741
|
+
* is wrapped in `Some`. If the log level is not enabled, the effect is not
|
|
23742
|
+
* executed and `None` is returned.
|
|
23743
|
+
*
|
|
23744
|
+
* This function is useful for conditionally executing logging-related effects
|
|
23745
|
+
* or other operations that depend on the current log level configuration.
|
|
23746
|
+
*
|
|
23747
|
+
* @example
|
|
23748
|
+
* ```ts
|
|
23749
|
+
* import { Effect, Logger, LogLevel } from "effect"
|
|
23750
|
+
*
|
|
23751
|
+
* const program = Effect.gen(function* () {
|
|
23752
|
+
* yield* Effect.whenLogLevel(Effect.logTrace("message1"), LogLevel.Trace); // returns `None`
|
|
23753
|
+
* yield* Effect.whenLogLevel(Effect.logDebug("message2"), LogLevel.Debug); // returns `Some`
|
|
23754
|
+
* }).pipe(Logger.withMinimumLogLevel(LogLevel.Debug));
|
|
23755
|
+
*
|
|
23756
|
+
* // Effect.runFork(program)
|
|
23757
|
+
* // timestamp=... level=DEBUG fiber=#0 message=message2
|
|
23758
|
+
* ```
|
|
23759
|
+
*
|
|
23760
|
+
* @see {@link FiberRef.minimumLogLevel} to retrieve the current minimum log level.
|
|
23761
|
+
*
|
|
23762
|
+
* @since 3.13.0
|
|
23763
|
+
* @category Logging
|
|
23764
|
+
*/
|
|
23765
|
+
<A, E, R>(self: Effect<A, E, R>, level: LogLevel.LogLevel | LogLevel.Literal): Effect<Option.Option<A>, E, R>
|
|
23766
|
+
} = fiberRuntime.whenLogLevel
|
|
23767
|
+
|
|
23419
23768
|
/**
|
|
23420
23769
|
* Converts an effect's failure into a fiber termination, removing the error
|
|
23421
23770
|
* from the effect's type.
|
|
@@ -26658,7 +27007,7 @@ export const withParentSpan: {
|
|
|
26658
27007
|
* ```
|
|
26659
27008
|
*
|
|
26660
27009
|
* @since 2.0.0
|
|
26661
|
-
* @category Optional Wrapping
|
|
27010
|
+
* @category Optional Wrapping & Unwrapping
|
|
26662
27011
|
*/
|
|
26663
27012
|
export const fromNullable: <A>(value: A) => Effect<NonNullable<A>, Cause.NoSuchElementException> = effect.fromNullable
|
|
26664
27013
|
|
|
@@ -26713,12 +27062,47 @@ export const fromNullable: <A>(value: A) => Effect<NonNullable<A>, Cause.NoSuchE
|
|
|
26713
27062
|
* ```
|
|
26714
27063
|
*
|
|
26715
27064
|
* @since 2.0.0
|
|
26716
|
-
* @category Optional Wrapping
|
|
27065
|
+
* @category Optional Wrapping & Unwrapping
|
|
26717
27066
|
*/
|
|
26718
27067
|
export const optionFromOptional: <A, E, R>(
|
|
26719
27068
|
self: Effect<A, E, R>
|
|
26720
27069
|
) => Effect<Option.Option<A>, Exclude<E, Cause.NoSuchElementException>, R> = effect.optionFromOptional
|
|
26721
27070
|
|
|
27071
|
+
/**
|
|
27072
|
+
* Converts an `Option` of an `Effect` into an `Effect` of an `Option`.
|
|
27073
|
+
*
|
|
27074
|
+
* **Details**
|
|
27075
|
+
*
|
|
27076
|
+
* This function transforms an `Option<Effect<A, E, R>>` into an
|
|
27077
|
+
* `Effect<Option<A>, E, R>`. If the `Option` is `None`, the resulting `Effect`
|
|
27078
|
+
* will immediately succeed with a `None` value. If the `Option` is `Some`, the
|
|
27079
|
+
* inner `Effect` will be executed, and its result wrapped in a `Some`.
|
|
27080
|
+
*
|
|
27081
|
+
* @example
|
|
27082
|
+
* ```ts
|
|
27083
|
+
* import { Effect, Option } from "effect"
|
|
27084
|
+
*
|
|
27085
|
+
* // ┌─── Option<Effect<number, never, never>>
|
|
27086
|
+
* // ▼
|
|
27087
|
+
* const maybe = Option.some(Effect.succeed(42))
|
|
27088
|
+
*
|
|
27089
|
+
* // ┌─── Effect<Option<number>, never, never>
|
|
27090
|
+
* // ▼
|
|
27091
|
+
* const result = Effect.transposeOption(maybe)
|
|
27092
|
+
*
|
|
27093
|
+
* console.log(Effect.runSync(result))
|
|
27094
|
+
* // Output: { _id: 'Option', _tag: 'Some', value: 42 }
|
|
27095
|
+
* ```
|
|
27096
|
+
*
|
|
27097
|
+
* @since 3.13.0
|
|
27098
|
+
* @category Optional Wrapping & Unwrapping
|
|
27099
|
+
*/
|
|
27100
|
+
export const transposeOption = <A = never, E = never, R = never>(
|
|
27101
|
+
self: Option.Option<Effect<A, E, R>>
|
|
27102
|
+
): Effect<Option.Option<A>, E, R> => {
|
|
27103
|
+
return option_.isNone(self) ? succeedNone : map(self.value, option_.some)
|
|
27104
|
+
}
|
|
27105
|
+
|
|
26722
27106
|
/**
|
|
26723
27107
|
* @since 2.0.0
|
|
26724
27108
|
* @category Models
|
|
@@ -27229,7 +27613,8 @@ export namespace fn {
|
|
|
27229
27613
|
AEff,
|
|
27230
27614
|
[Eff] extends [never] ? never : [Eff] extends [YieldWrap<Effect<infer _A, infer E, infer _R>>] ? E : never,
|
|
27231
27615
|
[Eff] extends [never] ? never : [Eff] extends [YieldWrap<Effect<infer _A, infer _E, infer R>>] ? R : never
|
|
27232
|
-
|
|
27616
|
+
>,
|
|
27617
|
+
...args: Args
|
|
27233
27618
|
) => A
|
|
27234
27619
|
): (...args: Args) => A
|
|
27235
27620
|
<Eff extends YieldWrap<Effect<any, any, any>>, AEff, Args extends Array<any>, A, B extends Effect<any, any, any>>(
|
|
@@ -27239,9 +27624,10 @@ export namespace fn {
|
|
|
27239
27624
|
AEff,
|
|
27240
27625
|
[Eff] extends [never] ? never : [Eff] extends [YieldWrap<Effect<infer _A, infer E, infer _R>>] ? E : never,
|
|
27241
27626
|
[Eff] extends [never] ? never : [Eff] extends [YieldWrap<Effect<infer _A, infer _E, infer R>>] ? R : never
|
|
27242
|
-
|
|
27627
|
+
>,
|
|
27628
|
+
...args: Args
|
|
27243
27629
|
) => A,
|
|
27244
|
-
b: (_: A) => B
|
|
27630
|
+
b: (_: A, ...args: Args) => B
|
|
27245
27631
|
): (...args: Args) => B
|
|
27246
27632
|
<
|
|
27247
27633
|
Eff extends YieldWrap<Effect<any, any, any>>,
|
|
@@ -27257,10 +27643,11 @@ export namespace fn {
|
|
|
27257
27643
|
AEff,
|
|
27258
27644
|
[Eff] extends [never] ? never : [Eff] extends [YieldWrap<Effect<infer _A, infer E, infer _R>>] ? E : never,
|
|
27259
27645
|
[Eff] extends [never] ? never : [Eff] extends [YieldWrap<Effect<infer _A, infer _E, infer R>>] ? R : never
|
|
27260
|
-
|
|
27646
|
+
>,
|
|
27647
|
+
...args: Args
|
|
27261
27648
|
) => A,
|
|
27262
|
-
b: (_: A) => B,
|
|
27263
|
-
c: (_: B) => C
|
|
27649
|
+
b: (_: A, ...args: Args) => B,
|
|
27650
|
+
c: (_: B, ...args: Args) => C
|
|
27264
27651
|
): (...args: Args) => C
|
|
27265
27652
|
<
|
|
27266
27653
|
Eff extends YieldWrap<Effect<any, any, any>>,
|
|
@@ -27277,11 +27664,12 @@ export namespace fn {
|
|
|
27277
27664
|
AEff,
|
|
27278
27665
|
[Eff] extends [never] ? never : [Eff] extends [YieldWrap<Effect<infer _A, infer E, infer _R>>] ? E : never,
|
|
27279
27666
|
[Eff] extends [never] ? never : [Eff] extends [YieldWrap<Effect<infer _A, infer _E, infer R>>] ? R : never
|
|
27280
|
-
|
|
27667
|
+
>,
|
|
27668
|
+
...args: Args
|
|
27281
27669
|
) => A,
|
|
27282
|
-
b: (_: A) => B,
|
|
27283
|
-
c: (_: B) => C,
|
|
27284
|
-
d: (_: C) => D
|
|
27670
|
+
b: (_: A, ...args: Args) => B,
|
|
27671
|
+
c: (_: B, ...args: Args) => C,
|
|
27672
|
+
d: (_: C, ...args: Args) => D
|
|
27285
27673
|
): (...args: Args) => D
|
|
27286
27674
|
<
|
|
27287
27675
|
Eff extends YieldWrap<Effect<any, any, any>>,
|
|
@@ -27299,12 +27687,13 @@ export namespace fn {
|
|
|
27299
27687
|
AEff,
|
|
27300
27688
|
[Eff] extends [never] ? never : [Eff] extends [YieldWrap<Effect<infer _A, infer E, infer _R>>] ? E : never,
|
|
27301
27689
|
[Eff] extends [never] ? never : [Eff] extends [YieldWrap<Effect<infer _A, infer _E, infer R>>] ? R : never
|
|
27302
|
-
|
|
27690
|
+
>,
|
|
27691
|
+
...args: Args
|
|
27303
27692
|
) => A,
|
|
27304
|
-
b: (_: A) => B,
|
|
27305
|
-
c: (_: B) => C,
|
|
27306
|
-
d: (_: C) => D,
|
|
27307
|
-
e: (_: D) => E
|
|
27693
|
+
b: (_: A, ...args: Args) => B,
|
|
27694
|
+
c: (_: B, ...args: Args) => C,
|
|
27695
|
+
d: (_: C, ...args: Args) => D,
|
|
27696
|
+
e: (_: D, ...args: Args) => E
|
|
27308
27697
|
): (...args: Args) => E
|
|
27309
27698
|
<
|
|
27310
27699
|
Eff extends YieldWrap<Effect<any, any, any>>,
|
|
@@ -27323,13 +27712,14 @@ export namespace fn {
|
|
|
27323
27712
|
AEff,
|
|
27324
27713
|
[Eff] extends [never] ? never : [Eff] extends [YieldWrap<Effect<infer _A, infer E, infer _R>>] ? E : never,
|
|
27325
27714
|
[Eff] extends [never] ? never : [Eff] extends [YieldWrap<Effect<infer _A, infer _E, infer R>>] ? R : never
|
|
27326
|
-
|
|
27715
|
+
>,
|
|
27716
|
+
...args: Args
|
|
27327
27717
|
) => A,
|
|
27328
|
-
b: (_: A) => B,
|
|
27329
|
-
c: (_: B) => C,
|
|
27330
|
-
d: (_: C) => D,
|
|
27331
|
-
e: (_: D) => E,
|
|
27332
|
-
f: (_: E) => F
|
|
27718
|
+
b: (_: A, ...args: Args) => B,
|
|
27719
|
+
c: (_: B, ...args: Args) => C,
|
|
27720
|
+
d: (_: C, ...args: Args) => D,
|
|
27721
|
+
e: (_: D, ...args: Args) => E,
|
|
27722
|
+
f: (_: E, ...args: Args) => F
|
|
27333
27723
|
): (...args: Args) => F
|
|
27334
27724
|
<
|
|
27335
27725
|
Eff extends YieldWrap<Effect<any, any, any>>,
|
|
@@ -27349,14 +27739,15 @@ export namespace fn {
|
|
|
27349
27739
|
AEff,
|
|
27350
27740
|
[Eff] extends [never] ? never : [Eff] extends [YieldWrap<Effect<infer _A, infer E, infer _R>>] ? E : never,
|
|
27351
27741
|
[Eff] extends [never] ? never : [Eff] extends [YieldWrap<Effect<infer _A, infer _E, infer R>>] ? R : never
|
|
27352
|
-
|
|
27742
|
+
>,
|
|
27743
|
+
...args: Args
|
|
27353
27744
|
) => A,
|
|
27354
|
-
b: (_: A) => B,
|
|
27355
|
-
c: (_: B) => C,
|
|
27356
|
-
d: (_: C) => D,
|
|
27357
|
-
e: (_: D) => E,
|
|
27358
|
-
f: (_: E) => F,
|
|
27359
|
-
g: (_: F) => G
|
|
27745
|
+
b: (_: A, ...args: Args) => B,
|
|
27746
|
+
c: (_: B, ...args: Args) => C,
|
|
27747
|
+
d: (_: C, ...args: Args) => D,
|
|
27748
|
+
e: (_: D, ...args: Args) => E,
|
|
27749
|
+
f: (_: E, ...args: Args) => F,
|
|
27750
|
+
g: (_: F, ...args: Args) => G
|
|
27360
27751
|
): (...args: Args) => G
|
|
27361
27752
|
<
|
|
27362
27753
|
Eff extends YieldWrap<Effect<any, any, any>>,
|
|
@@ -27377,15 +27768,16 @@ export namespace fn {
|
|
|
27377
27768
|
AEff,
|
|
27378
27769
|
[Eff] extends [never] ? never : [Eff] extends [YieldWrap<Effect<infer _A, infer E, infer _R>>] ? E : never,
|
|
27379
27770
|
[Eff] extends [never] ? never : [Eff] extends [YieldWrap<Effect<infer _A, infer _E, infer R>>] ? R : never
|
|
27380
|
-
|
|
27771
|
+
>,
|
|
27772
|
+
...args: Args
|
|
27381
27773
|
) => A,
|
|
27382
|
-
b: (_: A) => B,
|
|
27383
|
-
c: (_: B) => C,
|
|
27384
|
-
d: (_: C) => D,
|
|
27385
|
-
e: (_: D) => E,
|
|
27386
|
-
f: (_: E) => F,
|
|
27387
|
-
g: (_: F) => G,
|
|
27388
|
-
h: (_: G) => H
|
|
27774
|
+
b: (_: A, ...args: Args) => B,
|
|
27775
|
+
c: (_: B, ...args: Args) => C,
|
|
27776
|
+
d: (_: C, ...args: Args) => D,
|
|
27777
|
+
e: (_: D, ...args: Args) => E,
|
|
27778
|
+
f: (_: E, ...args: Args) => F,
|
|
27779
|
+
g: (_: F, ...args: Args) => G,
|
|
27780
|
+
h: (_: G, ...args: Args) => H
|
|
27389
27781
|
): (...args: Args) => H
|
|
27390
27782
|
<
|
|
27391
27783
|
Eff extends YieldWrap<Effect<any, any, any>>,
|
|
@@ -27407,16 +27799,17 @@ export namespace fn {
|
|
|
27407
27799
|
AEff,
|
|
27408
27800
|
[Eff] extends [never] ? never : [Eff] extends [YieldWrap<Effect<infer _A, infer E, infer _R>>] ? E : never,
|
|
27409
27801
|
[Eff] extends [never] ? never : [Eff] extends [YieldWrap<Effect<infer _A, infer _E, infer R>>] ? R : never
|
|
27410
|
-
|
|
27802
|
+
>,
|
|
27803
|
+
...args: Args
|
|
27411
27804
|
) => A,
|
|
27412
|
-
b: (_: A) => B,
|
|
27413
|
-
c: (_: B) => C,
|
|
27414
|
-
d: (_: C) => D,
|
|
27415
|
-
e: (_: D) => E,
|
|
27416
|
-
f: (_: E) => F,
|
|
27417
|
-
g: (_: F) => G,
|
|
27418
|
-
h: (_: G) => H,
|
|
27419
|
-
i: (_: H) => I
|
|
27805
|
+
b: (_: A, ...args: Args) => B,
|
|
27806
|
+
c: (_: B, ...args: Args) => C,
|
|
27807
|
+
d: (_: C, ...args: Args) => D,
|
|
27808
|
+
e: (_: D, ...args: Args) => E,
|
|
27809
|
+
f: (_: E, ...args: Args) => F,
|
|
27810
|
+
g: (_: F, ...args: Args) => G,
|
|
27811
|
+
h: (_: G, ...args: Args) => H,
|
|
27812
|
+
i: (_: H, ...args: Args) => I
|
|
27420
27813
|
): (...args: Args) => I
|
|
27421
27814
|
}
|
|
27422
27815
|
|
|
@@ -27430,75 +27823,75 @@ export namespace fn {
|
|
|
27430
27823
|
): (...args: Args) => Eff
|
|
27431
27824
|
<Eff extends Effect<any, any, any>, A, Args extends Array<any>>(
|
|
27432
27825
|
body: (...args: Args) => A,
|
|
27433
|
-
a: (_: A) => Eff
|
|
27826
|
+
a: (_: A, ...args: Args) => Eff
|
|
27434
27827
|
): (...args: Args) => Eff
|
|
27435
27828
|
<Eff extends Effect<any, any, any>, A, B, Args extends Array<any>>(
|
|
27436
27829
|
body: (...args: Args) => A,
|
|
27437
|
-
a: (_: A) => B,
|
|
27438
|
-
b: (_: B) => Eff
|
|
27830
|
+
a: (_: A, ...args: Args) => B,
|
|
27831
|
+
b: (_: B, ...args: Args) => Eff
|
|
27439
27832
|
): (...args: Args) => Eff
|
|
27440
27833
|
<Eff extends Effect<any, any, any>, A, B, C, Args extends Array<any>>(
|
|
27441
27834
|
body: (...args: Args) => A,
|
|
27442
|
-
a: (_: A) => B,
|
|
27443
|
-
b: (_: B) => C,
|
|
27444
|
-
c: (_: C) => Eff
|
|
27835
|
+
a: (_: A, ...args: Args) => B,
|
|
27836
|
+
b: (_: B, ...args: Args) => C,
|
|
27837
|
+
c: (_: C, ...args: Args) => Eff
|
|
27445
27838
|
): (...args: Args) => Eff
|
|
27446
27839
|
<Eff extends Effect<any, any, any>, A, B, C, D, Args extends Array<any>>(
|
|
27447
27840
|
body: (...args: Args) => A,
|
|
27448
|
-
a: (_: A) => B,
|
|
27449
|
-
b: (_: B) => C,
|
|
27450
|
-
c: (_: C) => D,
|
|
27451
|
-
d: (_: D) => Eff
|
|
27841
|
+
a: (_: A, ...args: Args) => B,
|
|
27842
|
+
b: (_: B, ...args: Args) => C,
|
|
27843
|
+
c: (_: C, ...args: Args) => D,
|
|
27844
|
+
d: (_: D, ...args: Args) => Eff
|
|
27452
27845
|
): (...args: Args) => Eff
|
|
27453
27846
|
<Eff extends Effect<any, any, any>, A, B, C, D, E, Args extends Array<any>>(
|
|
27454
27847
|
body: (...args: Args) => A,
|
|
27455
|
-
a: (_: A) => B,
|
|
27456
|
-
b: (_: B) => C,
|
|
27457
|
-
c: (_: C) => D,
|
|
27458
|
-
d: (_: D) => E,
|
|
27459
|
-
e: (_: E) => Eff
|
|
27848
|
+
a: (_: A, ...args: Args) => B,
|
|
27849
|
+
b: (_: B, ...args: Args) => C,
|
|
27850
|
+
c: (_: C, ...args: Args) => D,
|
|
27851
|
+
d: (_: D, ...args: Args) => E,
|
|
27852
|
+
e: (_: E, ...args: Args) => Eff
|
|
27460
27853
|
): (...args: Args) => Eff
|
|
27461
27854
|
<Eff extends Effect<any, any, any>, A, B, C, D, E, F, Args extends Array<any>>(
|
|
27462
27855
|
body: (...args: Args) => A,
|
|
27463
|
-
a: (_: A) => B,
|
|
27464
|
-
b: (_: B) => C,
|
|
27465
|
-
c: (_: C) => D,
|
|
27466
|
-
d: (_: D) => E,
|
|
27467
|
-
e: (_: E) => F,
|
|
27468
|
-
f: (_:
|
|
27856
|
+
a: (_: A, ...args: Args) => B,
|
|
27857
|
+
b: (_: B, ...args: Args) => C,
|
|
27858
|
+
c: (_: C, ...args: Args) => D,
|
|
27859
|
+
d: (_: D, ...args: Args) => E,
|
|
27860
|
+
e: (_: E, ...args: Args) => F,
|
|
27861
|
+
f: (_: F, ...args: Args) => Eff
|
|
27469
27862
|
): (...args: Args) => Eff
|
|
27470
27863
|
<Eff extends Effect<any, any, any>, A, B, C, D, E, F, G, Args extends Array<any>>(
|
|
27471
27864
|
body: (...args: Args) => A,
|
|
27472
|
-
a: (_: A) => B,
|
|
27473
|
-
b: (_: B) => C,
|
|
27474
|
-
c: (_: C) => D,
|
|
27475
|
-
d: (_: D) => E,
|
|
27476
|
-
e: (_: E) => F,
|
|
27477
|
-
f: (_:
|
|
27478
|
-
g: (_: G) => Eff
|
|
27865
|
+
a: (_: A, ...args: Args) => B,
|
|
27866
|
+
b: (_: B, ...args: Args) => C,
|
|
27867
|
+
c: (_: C, ...args: Args) => D,
|
|
27868
|
+
d: (_: D, ...args: Args) => E,
|
|
27869
|
+
e: (_: E, ...args: Args) => F,
|
|
27870
|
+
f: (_: F, ...args: Args) => G,
|
|
27871
|
+
g: (_: G, ...args: Args) => Eff
|
|
27479
27872
|
): (...args: Args) => Eff
|
|
27480
27873
|
<Eff extends Effect<any, any, any>, A, B, C, D, E, F, G, H, Args extends Array<any>>(
|
|
27481
27874
|
body: (...args: Args) => A,
|
|
27482
|
-
a: (_: A) => B,
|
|
27483
|
-
b: (_: B) => C,
|
|
27484
|
-
c: (_: C) => D,
|
|
27485
|
-
d: (_: D) => E,
|
|
27486
|
-
e: (_: E) => F,
|
|
27487
|
-
f: (_:
|
|
27488
|
-
g: (_: G) => H,
|
|
27489
|
-
h: (_: H) => Eff
|
|
27875
|
+
a: (_: A, ...args: Args) => B,
|
|
27876
|
+
b: (_: B, ...args: Args) => C,
|
|
27877
|
+
c: (_: C, ...args: Args) => D,
|
|
27878
|
+
d: (_: D, ...args: Args) => E,
|
|
27879
|
+
e: (_: E, ...args: Args) => F,
|
|
27880
|
+
f: (_: F, ...args: Args) => G,
|
|
27881
|
+
g: (_: G, ...args: Args) => H,
|
|
27882
|
+
h: (_: H, ...args: Args) => Eff
|
|
27490
27883
|
): (...args: Args) => Eff
|
|
27491
27884
|
<Eff extends Effect<any, any, any>, A, B, C, D, E, F, G, H, I, Args extends Array<any>>(
|
|
27492
27885
|
body: (...args: Args) => A,
|
|
27493
|
-
a: (_: A) => B,
|
|
27494
|
-
b: (_: B) => C,
|
|
27495
|
-
c: (_: C) => D,
|
|
27496
|
-
d: (_: D) => E,
|
|
27497
|
-
e: (_: E) => F,
|
|
27498
|
-
f: (_:
|
|
27499
|
-
g: (_: G) => H,
|
|
27500
|
-
h: (_: H) => I,
|
|
27501
|
-
i: (_: H) => Eff
|
|
27886
|
+
a: (_: A, ...args: Args) => B,
|
|
27887
|
+
b: (_: B, ...args: Args) => C,
|
|
27888
|
+
c: (_: C, ...args: Args) => D,
|
|
27889
|
+
d: (_: D, ...args: Args) => E,
|
|
27890
|
+
e: (_: E, ...args: Args) => F,
|
|
27891
|
+
f: (_: F, ...args: Args) => G,
|
|
27892
|
+
g: (_: G, ...args: Args) => H,
|
|
27893
|
+
h: (_: H, ...args: Args) => I,
|
|
27894
|
+
i: (_: H, ...args: Args) => Eff
|
|
27502
27895
|
): (...args: Args) => Eff
|
|
27503
27896
|
}
|
|
27504
27897
|
}
|
|
@@ -27590,7 +27983,7 @@ export const fn:
|
|
|
27590
27983
|
const errorDef = new Error()
|
|
27591
27984
|
Error.stackTraceLimit = limit
|
|
27592
27985
|
if (typeof nameOrBody !== "string") {
|
|
27593
|
-
return function(this: any, ...args: Array<any>) {
|
|
27986
|
+
return defineLength(nameOrBody.length, function(this: any, ...args: Array<any>) {
|
|
27594
27987
|
const limit = Error.stackTraceLimit
|
|
27595
27988
|
Error.stackTraceLimit = 2
|
|
27596
27989
|
const errorCall = new Error()
|
|
@@ -27607,12 +28000,12 @@ export const fn:
|
|
|
27607
28000
|
errorDef,
|
|
27608
28001
|
errorCall
|
|
27609
28002
|
})
|
|
27610
|
-
} as any
|
|
28003
|
+
}) as any
|
|
27611
28004
|
}
|
|
27612
28005
|
const name = nameOrBody
|
|
27613
28006
|
const options = pipeables[0]
|
|
27614
|
-
return (body: Function, ...pipeables: Array<any>) =>
|
|
27615
|
-
|
|
28007
|
+
return (body: Function, ...pipeables: Array<any>) =>
|
|
28008
|
+
defineLength(body.length, function(this: any, ...args: Array<any>) {
|
|
27616
28009
|
const limit = Error.stackTraceLimit
|
|
27617
28010
|
Error.stackTraceLimit = 2
|
|
27618
28011
|
const errorCall = new Error()
|
|
@@ -27627,10 +28020,16 @@ export const fn:
|
|
|
27627
28020
|
errorDef,
|
|
27628
28021
|
errorCall
|
|
27629
28022
|
})
|
|
27630
|
-
}
|
|
27631
|
-
}
|
|
28023
|
+
})
|
|
27632
28024
|
}
|
|
27633
28025
|
|
|
28026
|
+
function defineLength<F extends Function>(length: number, fn: F) {
|
|
28027
|
+
return Object.defineProperty(fn, "length", {
|
|
28028
|
+
value: length,
|
|
28029
|
+
configurable: true
|
|
28030
|
+
})
|
|
28031
|
+
}
|
|
28032
|
+
|
|
27634
28033
|
function fnApply(options: {
|
|
27635
28034
|
readonly self: any
|
|
27636
28035
|
readonly body: Function
|
|
@@ -27656,7 +28055,7 @@ function fnApply(options: {
|
|
|
27656
28055
|
if (options.pipeables.length > 0) {
|
|
27657
28056
|
try {
|
|
27658
28057
|
for (const x of options.pipeables) {
|
|
27659
|
-
effect = x(effect)
|
|
28058
|
+
effect = x(effect, ...options.args)
|
|
27660
28059
|
}
|
|
27661
28060
|
} catch (error) {
|
|
27662
28061
|
effect = fnError
|
|
@@ -27694,15 +28093,4 @@ function fnApply(options: {
|
|
|
27694
28093
|
* @since 3.12.0
|
|
27695
28094
|
* @category Tracing
|
|
27696
28095
|
*/
|
|
27697
|
-
export const fnUntraced: fn.Gen =
|
|
27698
|
-
pipeables.length === 0
|
|
27699
|
-
? function(this: any, ...args: Array<any>) {
|
|
27700
|
-
return core.fromIterator(() => body.apply(this, args))
|
|
27701
|
-
}
|
|
27702
|
-
: function(this: any, ...args: Array<any>) {
|
|
27703
|
-
let effect = core.fromIterator(() => body.apply(this, args))
|
|
27704
|
-
for (const x of pipeables) {
|
|
27705
|
-
effect = x(effect)
|
|
27706
|
-
}
|
|
27707
|
-
return effect
|
|
27708
|
-
}
|
|
28096
|
+
export const fnUntraced: fn.Gen = core.fnUntraced
|