effect 3.1.0 → 3.1.2
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 +10 -13
- package/dist/cjs/Array.js.map +1 -1
- package/dist/cjs/BigDecimal.js +14 -17
- package/dist/cjs/BigDecimal.js.map +1 -1
- package/dist/cjs/BigInt.js +41 -46
- package/dist/cjs/BigInt.js.map +1 -1
- package/dist/cjs/Boolean.js +13 -13
- package/dist/cjs/Brand.js +2 -2
- package/dist/cjs/Chunk.js +3 -3
- package/dist/cjs/Context.js +15 -20
- package/dist/cjs/Context.js.map +1 -1
- package/dist/cjs/Cron.js +3 -6
- package/dist/cjs/Cron.js.map +1 -1
- package/dist/cjs/Data.js +8 -13
- package/dist/cjs/Data.js.map +1 -1
- package/dist/cjs/Duration.js +1 -1
- package/dist/cjs/Effect.js +77 -9
- package/dist/cjs/Effect.js.map +1 -1
- package/dist/cjs/Either.js +117 -59
- package/dist/cjs/Either.js.map +1 -1
- package/dist/cjs/Equal.js +26 -4
- package/dist/cjs/Equal.js.map +1 -1
- package/dist/cjs/FiberHandle.js.map +1 -1
- package/dist/cjs/FiberMap.js.map +1 -1
- package/dist/cjs/FiberSet.js.map +1 -1
- package/dist/cjs/Function.js +2 -2
- package/dist/cjs/Function.js.map +1 -1
- package/dist/cjs/Hash.js +29 -12
- package/dist/cjs/Hash.js.map +1 -1
- package/dist/cjs/Iterable.js +10 -13
- package/dist/cjs/Iterable.js.map +1 -1
- package/dist/cjs/List.js +2 -2
- package/dist/cjs/Metric.js +5 -7
- package/dist/cjs/Metric.js.map +1 -1
- package/dist/cjs/Number.js +20 -21
- package/dist/cjs/Number.js.map +1 -1
- package/dist/cjs/Option.js +223 -164
- package/dist/cjs/Option.js.map +1 -1
- package/dist/cjs/Order.js +1 -2
- package/dist/cjs/Order.js.map +1 -1
- package/dist/cjs/Ordering.js +2 -2
- package/dist/cjs/Predicate.js +9 -12
- package/dist/cjs/Predicate.js.map +1 -1
- package/dist/cjs/Readable.js.map +1 -1
- package/dist/cjs/Record.js +35 -47
- package/dist/cjs/Record.js.map +1 -1
- package/dist/cjs/RegExp.js +1 -1
- package/dist/cjs/Request.js +2 -2
- package/dist/cjs/Request.js.map +1 -1
- package/dist/cjs/Stream.js +82 -4
- package/dist/cjs/Stream.js.map +1 -1
- package/dist/cjs/String.js +81 -111
- package/dist/cjs/String.js.map +1 -1
- package/dist/cjs/Struct.js +13 -19
- package/dist/cjs/Struct.js.map +1 -1
- package/dist/cjs/Subscribable.js.map +1 -1
- package/dist/cjs/Symbol.js +3 -3
- package/dist/cjs/TestAnnotation.js.map +1 -1
- package/dist/cjs/TestAnnotationMap.js.map +1 -1
- package/dist/cjs/TestAnnotations.js.map +1 -1
- package/dist/cjs/TestClock.js.map +1 -1
- package/dist/cjs/TestLive.js.map +1 -1
- package/dist/cjs/TestSized.js.map +1 -1
- package/dist/cjs/Trie.js +28 -44
- package/dist/cjs/Trie.js.map +1 -1
- package/dist/cjs/Utils.js +35 -1
- package/dist/cjs/Utils.js.map +1 -1
- package/dist/cjs/internal/core-effect.js +4 -11
- package/dist/cjs/internal/core-effect.js.map +1 -1
- package/dist/cjs/internal/core.js +16 -4
- package/dist/cjs/internal/core.js.map +1 -1
- package/dist/cjs/internal/doNotation.js +23 -0
- package/dist/cjs/internal/doNotation.js.map +1 -0
- package/dist/cjs/internal/groupBy.js.map +1 -1
- package/dist/cjs/internal/stream.js +3 -7
- package/dist/cjs/internal/stream.js.map +1 -1
- package/dist/cjs/internal/version.js +1 -1
- package/dist/dts/Array.d.ts +10 -13
- package/dist/dts/Array.d.ts.map +1 -1
- package/dist/dts/BigDecimal.d.ts +14 -17
- package/dist/dts/BigDecimal.d.ts.map +1 -1
- package/dist/dts/BigInt.d.ts +41 -46
- package/dist/dts/BigInt.d.ts.map +1 -1
- package/dist/dts/Boolean.d.ts +13 -13
- package/dist/dts/Brand.d.ts +3 -3
- package/dist/dts/Chunk.d.ts +3 -3
- package/dist/dts/Context.d.ts +15 -20
- package/dist/dts/Context.d.ts.map +1 -1
- package/dist/dts/Cron.d.ts +3 -6
- package/dist/dts/Cron.d.ts.map +1 -1
- package/dist/dts/Data.d.ts +10 -16
- package/dist/dts/Data.d.ts.map +1 -1
- package/dist/dts/Duration.d.ts +1 -1
- package/dist/dts/Effect.d.ts +120 -26
- package/dist/dts/Effect.d.ts.map +1 -1
- package/dist/dts/Either.d.ts +155 -64
- package/dist/dts/Either.d.ts.map +1 -1
- package/dist/dts/Equal.d.ts.map +1 -1
- package/dist/dts/FiberHandle.d.ts.map +1 -1
- package/dist/dts/FiberMap.d.ts.map +1 -1
- package/dist/dts/FiberSet.d.ts.map +1 -1
- package/dist/dts/Function.d.ts +4 -2
- package/dist/dts/Function.d.ts.map +1 -1
- package/dist/dts/Hash.d.ts.map +1 -1
- package/dist/dts/HashMap.d.ts +2 -2
- package/dist/dts/Iterable.d.ts +10 -13
- package/dist/dts/Iterable.d.ts.map +1 -1
- package/dist/dts/List.d.ts +2 -2
- package/dist/dts/Metric.d.ts +5 -7
- package/dist/dts/Metric.d.ts.map +1 -1
- package/dist/dts/Number.d.ts +20 -21
- package/dist/dts/Number.d.ts.map +1 -1
- package/dist/dts/Option.d.ts +245 -155
- package/dist/dts/Option.d.ts.map +1 -1
- package/dist/dts/Order.d.ts +1 -2
- package/dist/dts/Order.d.ts.map +1 -1
- package/dist/dts/Ordering.d.ts +2 -2
- package/dist/dts/Predicate.d.ts +9 -12
- package/dist/dts/Predicate.d.ts.map +1 -1
- package/dist/dts/Readable.d.ts.map +1 -1
- package/dist/dts/Record.d.ts +35 -47
- package/dist/dts/Record.d.ts.map +1 -1
- package/dist/dts/RegExp.d.ts +1 -1
- package/dist/dts/Request.d.ts +2 -2
- package/dist/dts/Request.d.ts.map +1 -1
- package/dist/dts/Stream.d.ts +136 -31
- package/dist/dts/Stream.d.ts.map +1 -1
- package/dist/dts/String.d.ts +81 -111
- package/dist/dts/String.d.ts.map +1 -1
- package/dist/dts/Struct.d.ts +13 -19
- package/dist/dts/Struct.d.ts.map +1 -1
- package/dist/dts/Subscribable.d.ts.map +1 -1
- package/dist/dts/Symbol.d.ts +3 -3
- package/dist/dts/TestAnnotation.d.ts.map +1 -1
- package/dist/dts/TestAnnotationMap.d.ts.map +1 -1
- package/dist/dts/TestAnnotations.d.ts.map +1 -1
- package/dist/dts/TestClock.d.ts +1 -5
- package/dist/dts/TestClock.d.ts.map +1 -1
- package/dist/dts/TestLive.d.ts.map +1 -1
- package/dist/dts/TestSized.d.ts.map +1 -1
- package/dist/dts/Trie.d.ts +28 -44
- package/dist/dts/Trie.d.ts.map +1 -1
- package/dist/dts/Types.d.ts +10 -10
- package/dist/dts/Utils.d.ts +19 -0
- package/dist/dts/Utils.d.ts.map +1 -1
- package/dist/dts/internal/core.d.ts.map +1 -1
- package/dist/dts/internal/doNotation.d.ts +2 -0
- package/dist/dts/internal/doNotation.d.ts.map +1 -0
- package/dist/dts/internal/stream.d.ts.map +1 -1
- package/dist/esm/Array.js +10 -13
- package/dist/esm/Array.js.map +1 -1
- package/dist/esm/BigDecimal.js +14 -17
- package/dist/esm/BigDecimal.js.map +1 -1
- package/dist/esm/BigInt.js +41 -46
- package/dist/esm/BigInt.js.map +1 -1
- package/dist/esm/Boolean.js +13 -13
- package/dist/esm/Brand.js +2 -2
- package/dist/esm/Chunk.js +3 -3
- package/dist/esm/Context.js +15 -20
- package/dist/esm/Context.js.map +1 -1
- package/dist/esm/Cron.js +3 -6
- package/dist/esm/Cron.js.map +1 -1
- package/dist/esm/Data.js +9 -15
- package/dist/esm/Data.js.map +1 -1
- package/dist/esm/Duration.js +1 -1
- package/dist/esm/Effect.js +101 -11
- package/dist/esm/Effect.js.map +1 -1
- package/dist/esm/Either.js +141 -61
- package/dist/esm/Either.js.map +1 -1
- package/dist/esm/Equal.js +26 -4
- package/dist/esm/Equal.js.map +1 -1
- package/dist/esm/FiberHandle.js.map +1 -1
- package/dist/esm/FiberMap.js.map +1 -1
- package/dist/esm/FiberSet.js.map +1 -1
- package/dist/esm/Function.js +2 -2
- package/dist/esm/Function.js.map +1 -1
- package/dist/esm/Hash.js +30 -13
- package/dist/esm/Hash.js.map +1 -1
- package/dist/esm/Iterable.js +10 -13
- package/dist/esm/Iterable.js.map +1 -1
- package/dist/esm/List.js +2 -2
- package/dist/esm/Metric.js +5 -7
- package/dist/esm/Metric.js.map +1 -1
- package/dist/esm/Number.js +20 -21
- package/dist/esm/Number.js.map +1 -1
- package/dist/esm/Option.js +249 -164
- package/dist/esm/Option.js.map +1 -1
- package/dist/esm/Order.js +1 -2
- package/dist/esm/Order.js.map +1 -1
- package/dist/esm/Ordering.js +2 -2
- package/dist/esm/Predicate.js +9 -12
- package/dist/esm/Predicate.js.map +1 -1
- package/dist/esm/Readable.js.map +1 -1
- package/dist/esm/Record.js +35 -47
- package/dist/esm/Record.js.map +1 -1
- package/dist/esm/RegExp.js +1 -1
- package/dist/esm/Request.js +2 -2
- package/dist/esm/Request.js.map +1 -1
- package/dist/esm/Stream.js +107 -6
- package/dist/esm/Stream.js.map +1 -1
- package/dist/esm/String.js +81 -111
- package/dist/esm/String.js.map +1 -1
- package/dist/esm/Struct.js +13 -19
- package/dist/esm/Struct.js.map +1 -1
- package/dist/esm/Subscribable.js.map +1 -1
- package/dist/esm/Symbol.js +3 -3
- package/dist/esm/TestAnnotation.js.map +1 -1
- package/dist/esm/TestAnnotationMap.js.map +1 -1
- package/dist/esm/TestAnnotations.js.map +1 -1
- package/dist/esm/TestClock.js.map +1 -1
- package/dist/esm/TestLive.js.map +1 -1
- package/dist/esm/TestSized.js.map +1 -1
- package/dist/esm/Trie.js +28 -44
- package/dist/esm/Trie.js.map +1 -1
- package/dist/esm/Utils.js +33 -0
- package/dist/esm/Utils.js.map +1 -1
- package/dist/esm/internal/core-effect.js +4 -11
- package/dist/esm/internal/core-effect.js.map +1 -1
- package/dist/esm/internal/core.js +16 -4
- package/dist/esm/internal/core.js.map +1 -1
- package/dist/esm/internal/doNotation.js +14 -0
- package/dist/esm/internal/doNotation.js.map +1 -0
- package/dist/esm/internal/groupBy.js.map +1 -1
- package/dist/esm/internal/stream.js +3 -7
- package/dist/esm/internal/stream.js.map +1 -1
- package/dist/esm/internal/version.js +1 -1
- package/package.json +1 -1
- package/src/Array.ts +10 -13
- package/src/BigDecimal.ts +14 -17
- package/src/BigInt.ts +41 -46
- package/src/Boolean.ts +13 -13
- package/src/Brand.ts +3 -3
- package/src/Chunk.ts +3 -3
- package/src/Context.ts +15 -20
- package/src/Cron.ts +3 -6
- package/src/Data.ts +10 -16
- package/src/Duration.ts +1 -1
- package/src/Effect.ts +122 -32
- package/src/Either.ts +161 -94
- package/src/Equal.ts +30 -9
- package/src/FiberHandle.ts +1 -1
- package/src/FiberMap.ts +1 -1
- package/src/FiberSet.ts +1 -1
- package/src/Function.ts +4 -2
- package/src/Hash.ts +30 -13
- package/src/HashMap.ts +2 -2
- package/src/Iterable.ts +10 -13
- package/src/List.ts +2 -2
- package/src/Metric.ts +5 -7
- package/src/Number.ts +20 -21
- package/src/Option.ts +250 -172
- package/src/Order.ts +1 -2
- package/src/Ordering.ts +2 -2
- package/src/Predicate.ts +9 -12
- package/src/Readable.ts +1 -1
- package/src/Record.ts +35 -47
- package/src/RegExp.ts +1 -1
- package/src/Request.ts +3 -3
- package/src/Stream.ts +137 -36
- package/src/String.ts +81 -111
- package/src/Struct.ts +13 -19
- package/src/Subscribable.ts +1 -1
- package/src/Symbol.ts +3 -3
- package/src/TestAnnotation.ts +1 -1
- package/src/TestAnnotationMap.ts +1 -1
- package/src/TestAnnotations.ts +1 -1
- package/src/TestClock.ts +1 -5
- package/src/TestLive.ts +1 -1
- package/src/TestSized.ts +1 -1
- package/src/Trie.ts +28 -44
- package/src/Types.ts +10 -10
- package/src/Utils.ts +40 -2
- package/src/internal/core-effect.ts +29 -45
- package/src/internal/core.ts +20 -4
- package/src/internal/doNotation.ts +77 -0
- package/src/internal/groupBy.ts +16 -16
- package/src/internal/stream.ts +34 -58
- package/src/internal/version.ts +1 -1
package/dist/dts/Data.d.ts
CHANGED
|
@@ -19,8 +19,7 @@ export declare namespace Case {
|
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
21
21
|
* @example
|
|
22
|
-
* import
|
|
23
|
-
* import * as Equal from "effect/Equal"
|
|
22
|
+
* import { Data, Equal } from "effect"
|
|
24
23
|
*
|
|
25
24
|
* const alice = Data.struct({ name: "Alice", age: 30 })
|
|
26
25
|
*
|
|
@@ -45,8 +44,7 @@ export declare const struct: <A extends Record<string, any>>(a: A) => {
|
|
|
45
44
|
export declare const unsafeStruct: <A extends Record<string, any>>(as: A) => { readonly [P in keyof A]: A[P]; };
|
|
46
45
|
/**
|
|
47
46
|
* @example
|
|
48
|
-
* import
|
|
49
|
-
* import * as Equal from "effect/Equal"
|
|
47
|
+
* import { Data, Equal } from "effect"
|
|
50
48
|
*
|
|
51
49
|
* const alice = Data.tuple("Alice", 30)
|
|
52
50
|
*
|
|
@@ -64,8 +62,7 @@ export declare const unsafeStruct: <A extends Record<string, any>>(as: A) => { r
|
|
|
64
62
|
export declare const tuple: <As extends readonly any[]>(...as: As) => Readonly<As>;
|
|
65
63
|
/**
|
|
66
64
|
* @example
|
|
67
|
-
* import
|
|
68
|
-
* import * as Equal from "effect/Equal"
|
|
65
|
+
* import { Data, Equal } from "effect"
|
|
69
66
|
*
|
|
70
67
|
* const alice = Data.struct({ name: "Alice", age: 30 })
|
|
71
68
|
* const bob = Data.struct({ name: "Bob", age: 40 })
|
|
@@ -98,8 +95,7 @@ export {
|
|
|
98
95
|
* Provides a constructor for the specified `Case`.
|
|
99
96
|
*
|
|
100
97
|
* @example
|
|
101
|
-
* import
|
|
102
|
-
* import * as Equal from "effect/Equal"
|
|
98
|
+
* import { Data, Equal } from "effect"
|
|
103
99
|
*
|
|
104
100
|
* interface Person {
|
|
105
101
|
* readonly name: string
|
|
@@ -125,7 +121,7 @@ _case as case };
|
|
|
125
121
|
* Provides a tagged constructor for the specified `Case`.
|
|
126
122
|
*
|
|
127
123
|
* @example
|
|
128
|
-
* import
|
|
124
|
+
* import { Data } from "effect"
|
|
129
125
|
*
|
|
130
126
|
* interface Person {
|
|
131
127
|
* readonly _tag: "Person" // the tag
|
|
@@ -148,8 +144,7 @@ export declare const tagged: <A extends {
|
|
|
148
144
|
* Provides a constructor for a Case Class.
|
|
149
145
|
*
|
|
150
146
|
* @example
|
|
151
|
-
* import
|
|
152
|
-
* import * as Equal from "effect/Equal"
|
|
147
|
+
* import { Data, Equal } from "effect"
|
|
153
148
|
*
|
|
154
149
|
* class Person extends Data.Class<{ readonly name: string }> {}
|
|
155
150
|
*
|
|
@@ -172,8 +167,7 @@ export declare const Class: new <A extends Record<string, any> = {}>(args: Types
|
|
|
172
167
|
* Provides a Tagged constructor for a Case Class.
|
|
173
168
|
*
|
|
174
169
|
* @example
|
|
175
|
-
* import
|
|
176
|
-
* import * as Equal from "effect/Equal"
|
|
170
|
+
* import { Data, Equal } from "effect"
|
|
177
171
|
*
|
|
178
172
|
* class Person extends Data.TaggedClass("Person")<{ readonly name: string }> {}
|
|
179
173
|
*
|
|
@@ -205,7 +199,7 @@ export declare const Structural: new <A>(args: Types.Equals<A, {}> extends true
|
|
|
205
199
|
* Create a tagged enum data type, which is a union of `Data` structs.
|
|
206
200
|
*
|
|
207
201
|
* ```ts
|
|
208
|
-
* import
|
|
202
|
+
* import { Data } from "effect"
|
|
209
203
|
*
|
|
210
204
|
* type HttpError = Data.TaggedEnum<{
|
|
211
205
|
* BadRequest: { readonly status: 400, readonly message: string }
|
|
@@ -309,7 +303,7 @@ export declare namespace TaggedEnum {
|
|
|
309
303
|
* the constructor.
|
|
310
304
|
*
|
|
311
305
|
* @example
|
|
312
|
-
* import
|
|
306
|
+
* import { Data } from "effect"
|
|
313
307
|
*
|
|
314
308
|
* const { BadRequest, NotFound } = Data.taggedEnum<
|
|
315
309
|
* | { readonly _tag: "BadRequest"; readonly status: 400; readonly message: string }
|
|
@@ -319,7 +313,7 @@ export declare namespace TaggedEnum {
|
|
|
319
313
|
* const notFound = NotFound({ status: 404, message: "Not Found" })
|
|
320
314
|
*
|
|
321
315
|
* @example
|
|
322
|
-
* import
|
|
316
|
+
* import { Data } from "effect"
|
|
323
317
|
*
|
|
324
318
|
* type MyResult<E, A> = Data.TaggedEnum<{
|
|
325
319
|
* Failure: { readonly error: E }
|
package/dist/dts/Data.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Data.d.ts","sourceRoot":"","sources":["../../src/Data.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,KAAK,MAAM,YAAY,CAAA;AAKxC,OAAO,KAAK,KAAK,KAAK,MAAM,YAAY,CAAA;AAExC;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,IAAI,CAAC;IAC5B;;;OAGG;IACH,UAAiB,WAAW,CAAC,CAAC,EAAE,GAAG,SAAS,MAAM,CAAC,GAAG,KAAK;QACzD,CACE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,SAAS,IAAI,GAAG,IAAI,GACpD;YAAE,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SAAE,GACjE,CAAC,CAAA;KACL;CACF;AAED
|
|
1
|
+
{"version":3,"file":"Data.d.ts","sourceRoot":"","sources":["../../src/Data.ts"],"names":[],"mappings":"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"}
|
package/dist/dts/Duration.d.ts
CHANGED
|
@@ -311,7 +311,7 @@ export declare const equals: {
|
|
|
311
311
|
* @since 2.0.0
|
|
312
312
|
*
|
|
313
313
|
* @example
|
|
314
|
-
* import
|
|
314
|
+
* import { Duration } from "effect"
|
|
315
315
|
*
|
|
316
316
|
* Duration.format(Duration.millis(1000)) // "1s"
|
|
317
317
|
* Duration.format(Duration.millis(1001)) // "1s 1ms"
|
package/dist/dts/Effect.d.ts
CHANGED
|
@@ -44,7 +44,7 @@ import * as Scheduler from "./Scheduler.js";
|
|
|
44
44
|
import type * as Scope from "./Scope.js";
|
|
45
45
|
import type * as Supervisor from "./Supervisor.js";
|
|
46
46
|
import type * as Tracer from "./Tracer.js";
|
|
47
|
-
import type { Concurrency, Covariant,
|
|
47
|
+
import type { Concurrency, Covariant, NoInfer, NotFunction } from "./Types.js";
|
|
48
48
|
import type * as Unify from "./Unify.js";
|
|
49
49
|
import type { YieldWrap } from "./Utils.js";
|
|
50
50
|
/**
|
|
@@ -271,8 +271,7 @@ export declare const cachedFunction: <A, B, E, R>(f: (a: A) => Effect<B, E, R>,
|
|
|
271
271
|
* evaluated multiple times.
|
|
272
272
|
*
|
|
273
273
|
* @example
|
|
274
|
-
* import
|
|
275
|
-
* import * as Console from "effect/Console"
|
|
274
|
+
* import { Effect, Console } from "effect"
|
|
276
275
|
*
|
|
277
276
|
* const program = Effect.gen(function* (_) {
|
|
278
277
|
* const twice = Console.log("twice")
|
|
@@ -732,8 +731,7 @@ export declare const validateAll: {
|
|
|
732
731
|
* If `elements` is empty then `Effect.fail([])` is returned.
|
|
733
732
|
*
|
|
734
733
|
* @example
|
|
735
|
-
* import
|
|
736
|
-
* import * as Exit from "effect/Exit"
|
|
734
|
+
* import { Effect, Exit } from "effect"
|
|
737
735
|
*
|
|
738
736
|
* const f = (n: number) => (n > 0 ? Effect.succeed(n) : Effect.fail(`${n} is negative`))
|
|
739
737
|
*
|
|
@@ -792,7 +790,7 @@ export declare const asyncEffect: <A, E, R, R3, E2, R2>(register: (callback: (_:
|
|
|
792
790
|
* It is meant to be called with a bag of instructions that become available in the "this" of the effect.
|
|
793
791
|
*
|
|
794
792
|
* @example
|
|
795
|
-
* import
|
|
793
|
+
* import { Effect } from "effect"
|
|
796
794
|
*
|
|
797
795
|
* const throwingFunction = () => { throw new Error() }
|
|
798
796
|
* const blowUp = Effect.custom(throwingFunction, function() {
|
|
@@ -2380,46 +2378,142 @@ export declare const updateService: {
|
|
|
2380
2378
|
<A, E, R, T extends Context.Tag<any, any>>(self: Effect<A, E, R>, tag: T, f: (service: Context.Tag.Service<T>) => Context.Tag.Service<T>): Effect<A, E, R | Context.Tag.Identifier<T>>;
|
|
2381
2379
|
};
|
|
2382
2380
|
/**
|
|
2383
|
-
*
|
|
2381
|
+
* The "do simulation" in allows you to write code in a more declarative style, similar to the "do notation" in other programming languages. It provides a way to define variables and perform operations on them using functions like `bind` and `let`.
|
|
2382
|
+
*
|
|
2383
|
+
* Here's how the do simulation works:
|
|
2384
|
+
*
|
|
2385
|
+
* 1. Start the do simulation using the `Do` value
|
|
2386
|
+
* 2. Within the do simulation scope, you can use the `bind` function to define variables and bind them to `Effect` values
|
|
2387
|
+
* 3. You can accumulate multiple `bind` statements to define multiple variables within the scope
|
|
2388
|
+
* 4. Inside the do simulation scope, you can also use the `let` function to define variables and bind them to simple values
|
|
2389
|
+
*
|
|
2390
|
+
* @see {@link bind}
|
|
2391
|
+
* @see {@link bindTo}
|
|
2392
|
+
* @see {@link let_ let}
|
|
2393
|
+
*
|
|
2394
|
+
* @example
|
|
2395
|
+
* import { Effect, pipe } from "effect"
|
|
2396
|
+
*
|
|
2397
|
+
* const result = pipe(
|
|
2398
|
+
* Effect.Do,
|
|
2399
|
+
* Effect.bind("x", () => Effect.succeed(2)),
|
|
2400
|
+
* Effect.bind("y", () => Effect.succeed(3)),
|
|
2401
|
+
* Effect.let("sum", ({ x, y }) => x + y)
|
|
2402
|
+
* )
|
|
2403
|
+
* assert.deepStrictEqual(Effect.runSync(result), { x: 2, y: 3, sum: 5 })
|
|
2404
|
+
*
|
|
2384
2405
|
* @category do notation
|
|
2406
|
+
* @since 2.0.0
|
|
2385
2407
|
*/
|
|
2386
2408
|
export declare const Do: Effect<{}>;
|
|
2387
2409
|
/**
|
|
2388
|
-
*
|
|
2410
|
+
* The "do simulation" in allows you to write code in a more declarative style, similar to the "do notation" in other programming languages. It provides a way to define variables and perform operations on them using functions like `bind` and `let`.
|
|
2411
|
+
*
|
|
2412
|
+
* Here's how the do simulation works:
|
|
2413
|
+
*
|
|
2414
|
+
* 1. Start the do simulation using the `Do` value
|
|
2415
|
+
* 2. Within the do simulation scope, you can use the `bind` function to define variables and bind them to `Effect` values
|
|
2416
|
+
* 3. You can accumulate multiple `bind` statements to define multiple variables within the scope
|
|
2417
|
+
* 4. Inside the do simulation scope, you can also use the `let` function to define variables and bind them to simple values
|
|
2418
|
+
*
|
|
2419
|
+
* @see {@link Do}
|
|
2420
|
+
* @see {@link bindTo}
|
|
2421
|
+
* @see {@link let_ let}
|
|
2422
|
+
*
|
|
2423
|
+
* @example
|
|
2424
|
+
* import { Effect, pipe } from "effect"
|
|
2425
|
+
*
|
|
2426
|
+
* const result = pipe(
|
|
2427
|
+
* Effect.Do,
|
|
2428
|
+
* Effect.bind("x", () => Effect.succeed(2)),
|
|
2429
|
+
* Effect.bind("y", () => Effect.succeed(3)),
|
|
2430
|
+
* Effect.let("sum", ({ x, y }) => x + y)
|
|
2431
|
+
* )
|
|
2432
|
+
* assert.deepStrictEqual(Effect.runSync(result), { x: 2, y: 3, sum: 5 })
|
|
2389
2433
|
*
|
|
2390
|
-
* @since 2.0.0
|
|
2391
2434
|
* @category do notation
|
|
2435
|
+
* @since 2.0.0
|
|
2392
2436
|
*/
|
|
2393
2437
|
export declare const bind: {
|
|
2394
|
-
<N extends string,
|
|
2395
|
-
[
|
|
2396
|
-
}
|
|
2397
|
-
<
|
|
2398
|
-
[
|
|
2399
|
-
}
|
|
2438
|
+
<N extends string, A extends object, B, E2, R2>(name: Exclude<N, keyof A>, f: (a: A) => Effect<B, E2, R2>): <E1, R1>(self: Effect<A, E1, R1>) => Effect<{
|
|
2439
|
+
[K in N | keyof A]: K extends keyof A ? A[K] : B;
|
|
2440
|
+
}, E2 | E1, R2 | R1>;
|
|
2441
|
+
<A extends object, N extends string, E1, R1, B, E2, R2>(self: Effect<A, E1, R1>, name: Exclude<N, keyof A>, f: (a: A) => Effect<B, E2, R2>): Effect<{
|
|
2442
|
+
[K in N | keyof A]: K extends keyof A ? A[K] : B;
|
|
2443
|
+
}, E1 | E2, R1 | R2>;
|
|
2400
2444
|
};
|
|
2401
2445
|
/**
|
|
2446
|
+
* The "do simulation" in allows you to write code in a more declarative style, similar to the "do notation" in other programming languages. It provides a way to define variables and perform operations on them using functions like `bind` and `let`.
|
|
2447
|
+
*
|
|
2448
|
+
* Here's how the do simulation works:
|
|
2449
|
+
*
|
|
2450
|
+
* 1. Start the do simulation using the `Do` value
|
|
2451
|
+
* 2. Within the do simulation scope, you can use the `bind` function to define variables and bind them to `Effect` values
|
|
2452
|
+
* 3. You can accumulate multiple `bind` statements to define multiple variables within the scope
|
|
2453
|
+
* 4. Inside the do simulation scope, you can also use the `let` function to define variables and bind them to simple values
|
|
2454
|
+
*
|
|
2455
|
+
* @see {@link Do}
|
|
2456
|
+
* @see {@link bind}
|
|
2457
|
+
* @see {@link let_ let}
|
|
2458
|
+
*
|
|
2459
|
+
* @example
|
|
2460
|
+
* import { Effect, pipe } from "effect"
|
|
2461
|
+
*
|
|
2462
|
+
* const result = pipe(
|
|
2463
|
+
* Effect.Do,
|
|
2464
|
+
* Effect.bind("x", () => Effect.succeed(2)),
|
|
2465
|
+
* Effect.bind("y", () => Effect.succeed(3)),
|
|
2466
|
+
* Effect.let("sum", ({ x, y }) => x + y)
|
|
2467
|
+
* )
|
|
2468
|
+
* assert.deepStrictEqual(Effect.runSync(result), { x: 2, y: 3, sum: 5 })
|
|
2469
|
+
*
|
|
2402
2470
|
* @category do notation
|
|
2403
2471
|
* @since 2.0.0
|
|
2404
2472
|
*/
|
|
2405
2473
|
export declare const bindTo: {
|
|
2406
|
-
<N extends string>(
|
|
2407
|
-
|
|
2474
|
+
<N extends string>(name: N): <A, E, R>(self: Effect<A, E, R>) => Effect<{
|
|
2475
|
+
[K in N]: A;
|
|
2476
|
+
}, E, R>;
|
|
2477
|
+
<A, E, R, N extends string>(self: Effect<A, E, R>, name: N): Effect<{
|
|
2478
|
+
[K in N]: A;
|
|
2479
|
+
}, E, R>;
|
|
2408
2480
|
};
|
|
2409
2481
|
declare const let_: {
|
|
2410
|
-
<N extends string,
|
|
2411
|
-
[
|
|
2412
|
-
}
|
|
2413
|
-
<
|
|
2414
|
-
[
|
|
2415
|
-
}
|
|
2482
|
+
<N extends string, A extends object, B>(name: Exclude<N, keyof A>, f: (a: A) => B): <E, R>(self: Effect<A, E, R>) => Effect<{
|
|
2483
|
+
[K in N | keyof A]: K extends keyof A ? A[K] : B;
|
|
2484
|
+
}, E, R>;
|
|
2485
|
+
<A extends object, N extends string, E, R, B>(self: Effect<A, E, R>, name: Exclude<N, keyof A>, f: (a: A) => B): Effect<{
|
|
2486
|
+
[K in N | keyof A]: K extends keyof A ? A[K] : B;
|
|
2487
|
+
}, E, R>;
|
|
2416
2488
|
};
|
|
2417
2489
|
export {
|
|
2418
2490
|
/**
|
|
2419
|
-
*
|
|
2491
|
+
* The "do simulation" in allows you to write code in a more declarative style, similar to the "do notation" in other programming languages. It provides a way to define variables and perform operations on them using functions like `bind` and `let`.
|
|
2492
|
+
*
|
|
2493
|
+
* Here's how the do simulation works:
|
|
2494
|
+
*
|
|
2495
|
+
* 1. Start the do simulation using the `Do` value
|
|
2496
|
+
* 2. Within the do simulation scope, you can use the `bind` function to define variables and bind them to `Effect` values
|
|
2497
|
+
* 3. You can accumulate multiple `bind` statements to define multiple variables within the scope
|
|
2498
|
+
* 4. Inside the do simulation scope, you can also use the `let` function to define variables and bind them to simple values
|
|
2499
|
+
*
|
|
2500
|
+
* @see {@link Do}
|
|
2501
|
+
* @see {@link bind}
|
|
2502
|
+
* @see {@link bindTo}
|
|
2503
|
+
*
|
|
2504
|
+
* @example
|
|
2505
|
+
* import { Effect, pipe } from "effect"
|
|
2506
|
+
*
|
|
2507
|
+
* const result = pipe(
|
|
2508
|
+
* Effect.Do,
|
|
2509
|
+
* Effect.bind("x", () => Effect.succeed(2)),
|
|
2510
|
+
* Effect.bind("y", () => Effect.succeed(3)),
|
|
2511
|
+
* Effect.let("sum", ({ x, y }) => x + y)
|
|
2512
|
+
* )
|
|
2513
|
+
* assert.deepStrictEqual(Effect.runSync(result), { x: 2, y: 3, sum: 5 })
|
|
2420
2514
|
*
|
|
2421
|
-
* @since 2.0.0
|
|
2422
2515
|
* @category do notation
|
|
2516
|
+
* @since 2.0.0
|
|
2423
2517
|
*/
|
|
2424
2518
|
let_ as let };
|
|
2425
2519
|
/**
|
|
@@ -2651,7 +2745,7 @@ export declare const flatMap: {
|
|
|
2651
2745
|
* - a function returning an effect
|
|
2652
2746
|
*
|
|
2653
2747
|
* @example
|
|
2654
|
-
* import
|
|
2748
|
+
* import { Effect } from "effect"
|
|
2655
2749
|
*
|
|
2656
2750
|
* assert.deepStrictEqual(Effect.runSync(Effect.succeed("aa").pipe(Effect.andThen(1))), 1)
|
|
2657
2751
|
* assert.deepStrictEqual(Effect.runSync(Effect.succeed("aa").pipe(Effect.andThen((s) => s.length))), 2)
|