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/Layer.ts
CHANGED
|
@@ -24,7 +24,7 @@ import * as Context from "./Context.js"
|
|
|
24
24
|
import type * as Effect from "./Effect.js"
|
|
25
25
|
import type * as Exit from "./Exit.js"
|
|
26
26
|
import type { FiberRef } from "./FiberRef.js"
|
|
27
|
-
import type
|
|
27
|
+
import { dual, type LazyArg } from "./Function.js"
|
|
28
28
|
import { clockTag } from "./internal/clock.js"
|
|
29
29
|
import * as core from "./internal/core.js"
|
|
30
30
|
import * as defaultServices from "./internal/defaultServices.js"
|
|
@@ -352,19 +352,14 @@ export const effect: {
|
|
|
352
352
|
* @since 2.0.0
|
|
353
353
|
* @category constructors
|
|
354
354
|
*/
|
|
355
|
-
<
|
|
356
|
-
tag: T
|
|
357
|
-
): <E, R>(effect: Effect.Effect<Context.Tag.Service<T>, E, R>) => Layer<Context.Tag.Identifier<T>, E, R>
|
|
355
|
+
<I, S>(tag: Context.Tag<I, S>): <E, R>(effect: Effect.Effect<Types.NoInfer<S>, E, R>) => Layer<I, E, R>
|
|
358
356
|
/**
|
|
359
357
|
* Constructs a layer from the specified effect.
|
|
360
358
|
*
|
|
361
359
|
* @since 2.0.0
|
|
362
360
|
* @category constructors
|
|
363
361
|
*/
|
|
364
|
-
<
|
|
365
|
-
tag: T,
|
|
366
|
-
effect: Effect.Effect<Context.Tag.Service<T>, E, R>
|
|
367
|
-
): Layer<Context.Tag.Identifier<T>, E, R>
|
|
362
|
+
<I, S, E, R>(tag: Context.Tag<I, S>, effect: Effect.Effect<Types.NoInfer<S>, E, R>): Layer<I, E, R>
|
|
368
363
|
} = internal.fromEffect
|
|
369
364
|
|
|
370
365
|
/**
|
|
@@ -496,11 +491,11 @@ export const flatten: {
|
|
|
496
491
|
*/
|
|
497
492
|
export const fresh: <A, E, R>(self: Layer<A, E, R>) => Layer<A, E, R> = internal.fresh
|
|
498
493
|
|
|
499
|
-
const fromFunction: <
|
|
500
|
-
tagA:
|
|
501
|
-
tagB:
|
|
502
|
-
f: (a:
|
|
503
|
-
) => Layer<
|
|
494
|
+
const fromFunction: <I1, S1, I2, S2>(
|
|
495
|
+
tagA: Context.Tag<I1, S1>,
|
|
496
|
+
tagB: Context.Tag<I2, S2>,
|
|
497
|
+
f: (a: Types.NoInfer<S1>) => Types.NoInfer<S2>
|
|
498
|
+
) => Layer<I2, never, I1> = internal.fromFunction
|
|
504
499
|
|
|
505
500
|
export {
|
|
506
501
|
/**
|
|
@@ -762,11 +757,11 @@ export const project: {
|
|
|
762
757
|
* @since 2.0.0
|
|
763
758
|
* @category utils
|
|
764
759
|
*/
|
|
765
|
-
<
|
|
766
|
-
tagA:
|
|
767
|
-
tagB:
|
|
768
|
-
f: (a:
|
|
769
|
-
): <RIn, E>(self: Layer<
|
|
760
|
+
<I1, S1, I2, S2>(
|
|
761
|
+
tagA: Context.Tag<I1, S1>,
|
|
762
|
+
tagB: Context.Tag<I2, S2>,
|
|
763
|
+
f: (a: Types.NoInfer<S1>) => Types.NoInfer<S2>
|
|
764
|
+
): <RIn, E>(self: Layer<I1, E, RIn>) => Layer<I2, E, RIn>
|
|
770
765
|
/**
|
|
771
766
|
* Projects out part of one of the services output by this layer using the
|
|
772
767
|
* specified function.
|
|
@@ -774,12 +769,12 @@ export const project: {
|
|
|
774
769
|
* @since 2.0.0
|
|
775
770
|
* @category utils
|
|
776
771
|
*/
|
|
777
|
-
<RIn, E,
|
|
778
|
-
self: Layer<
|
|
779
|
-
tagA:
|
|
780
|
-
tagB:
|
|
781
|
-
f: (a:
|
|
782
|
-
): Layer<
|
|
772
|
+
<RIn, E, I1, S1, I2, S2>(
|
|
773
|
+
self: Layer<I1, E, RIn>,
|
|
774
|
+
tagA: Context.Tag<I1, S1>,
|
|
775
|
+
tagB: Context.Tag<I2, S2>,
|
|
776
|
+
f: (a: Types.NoInfer<S1>) => Types.NoInfer<S2>
|
|
777
|
+
): Layer<I2, E, RIn>
|
|
783
778
|
} = internal.project
|
|
784
779
|
|
|
785
780
|
/**
|
|
@@ -903,19 +898,19 @@ export const scoped: {
|
|
|
903
898
|
* @since 2.0.0
|
|
904
899
|
* @category constructors
|
|
905
900
|
*/
|
|
906
|
-
<
|
|
907
|
-
|
|
908
|
-
)
|
|
901
|
+
<I, S>(
|
|
902
|
+
tag: Context.Tag<I, S>
|
|
903
|
+
): <E, R>(effect: Effect.Effect<Types.NoInfer<S>, E, R>) => Layer<I, E, Exclude<R, Scope.Scope>>
|
|
909
904
|
/**
|
|
910
905
|
* Constructs a layer from the specified scoped effect.
|
|
911
906
|
*
|
|
912
907
|
* @since 2.0.0
|
|
913
908
|
* @category constructors
|
|
914
909
|
*/
|
|
915
|
-
<
|
|
916
|
-
tag:
|
|
917
|
-
effect: Effect.Effect<
|
|
918
|
-
): Layer<
|
|
910
|
+
<I, S, E, R>(
|
|
911
|
+
tag: Context.Tag<I, S>,
|
|
912
|
+
effect: Effect.Effect<Types.NoInfer<S>, E, R>
|
|
913
|
+
): Layer<I, E, Exclude<R, Scope.Scope>>
|
|
919
914
|
} = internal.scoped
|
|
920
915
|
|
|
921
916
|
/**
|
|
@@ -945,9 +940,7 @@ export const scopedContext: <A, E, R>(
|
|
|
945
940
|
* @since 2.0.0
|
|
946
941
|
* @category constructors
|
|
947
942
|
*/
|
|
948
|
-
export const service: <
|
|
949
|
-
tag: T
|
|
950
|
-
) => Layer<Context.Tag.Identifier<T>, never, Context.Tag.Identifier<T>> = internal.service
|
|
943
|
+
export const service: <I, S>(tag: Context.Tag<I, S>) => Layer<I, never, I> = internal.service
|
|
951
944
|
|
|
952
945
|
/**
|
|
953
946
|
* Constructs a layer from the specified value.
|
|
@@ -962,14 +955,14 @@ export const succeed: {
|
|
|
962
955
|
* @since 2.0.0
|
|
963
956
|
* @category constructors
|
|
964
957
|
*/
|
|
965
|
-
<
|
|
958
|
+
<I, S>(tag: Context.Tag<I, S>): (resource: Types.NoInfer<S>) => Layer<I>
|
|
966
959
|
/**
|
|
967
960
|
* Constructs a layer from the specified value.
|
|
968
961
|
*
|
|
969
962
|
* @since 2.0.0
|
|
970
963
|
* @category constructors
|
|
971
964
|
*/
|
|
972
|
-
<
|
|
965
|
+
<I, S>(tag: Context.Tag<I, S>, resource: Types.NoInfer<S>): Layer<I>
|
|
973
966
|
} = internal.succeed
|
|
974
967
|
|
|
975
968
|
/**
|
|
@@ -1003,16 +996,14 @@ export const sync: {
|
|
|
1003
996
|
* @since 2.0.0
|
|
1004
997
|
* @category constructors
|
|
1005
998
|
*/
|
|
1006
|
-
<
|
|
1007
|
-
tag: T
|
|
1008
|
-
): (evaluate: LazyArg<Context.Tag.Service<T>>) => Layer<Context.Tag.Identifier<T>>
|
|
999
|
+
<I, S>(tag: Context.Tag<I, S>): (evaluate: LazyArg<Types.NoInfer<S>>) => Layer<I>
|
|
1009
1000
|
/**
|
|
1010
1001
|
* Lazily constructs a layer from the specified value.
|
|
1011
1002
|
*
|
|
1012
1003
|
* @since 2.0.0
|
|
1013
1004
|
* @category constructors
|
|
1014
1005
|
*/
|
|
1015
|
-
<
|
|
1006
|
+
<I, S>(tag: Context.Tag<I, S>, evaluate: LazyArg<Types.NoInfer<S>>): Layer<I>
|
|
1016
1007
|
} = internal.sync
|
|
1017
1008
|
|
|
1018
1009
|
/**
|
|
@@ -1525,3 +1516,66 @@ export const buildWithMemoMap: {
|
|
|
1525
1516
|
scope: Scope.Scope
|
|
1526
1517
|
): Effect.Effect<Context.Context<ROut>, E, RIn>
|
|
1527
1518
|
} = internal.buildWithMemoMap
|
|
1519
|
+
|
|
1520
|
+
/**
|
|
1521
|
+
* Updates a service in the context with a new implementation.
|
|
1522
|
+
*
|
|
1523
|
+
* **Details**
|
|
1524
|
+
*
|
|
1525
|
+
* This function modifies the existing implementation of a service in the
|
|
1526
|
+
* context. It retrieves the current service, applies the provided
|
|
1527
|
+
* transformation function `f`, and replaces the old service with the
|
|
1528
|
+
* transformed one.
|
|
1529
|
+
*
|
|
1530
|
+
* **When to Use**
|
|
1531
|
+
*
|
|
1532
|
+
* This is useful for adapting or extending a service's behavior during the
|
|
1533
|
+
* creation of a layer.
|
|
1534
|
+
*
|
|
1535
|
+
* @since 3.13.0
|
|
1536
|
+
* @category utils
|
|
1537
|
+
*/
|
|
1538
|
+
export const updateService = dual<
|
|
1539
|
+
/**
|
|
1540
|
+
* Updates a service in the context with a new implementation.
|
|
1541
|
+
*
|
|
1542
|
+
* **Details**
|
|
1543
|
+
*
|
|
1544
|
+
* This function modifies the existing implementation of a service in the
|
|
1545
|
+
* context. It retrieves the current service, applies the provided
|
|
1546
|
+
* transformation function `f`, and replaces the old service with the
|
|
1547
|
+
* transformed one.
|
|
1548
|
+
*
|
|
1549
|
+
* **When to Use**
|
|
1550
|
+
*
|
|
1551
|
+
* This is useful for adapting or extending a service's behavior during the
|
|
1552
|
+
* creation of a layer.
|
|
1553
|
+
*
|
|
1554
|
+
* @since 3.13.0
|
|
1555
|
+
* @category utils
|
|
1556
|
+
*/
|
|
1557
|
+
<I, A>(tag: Context.Tag<I, A>, f: (a: A) => A) => <A1, E1, R1>(layer: Layer<A1, E1, R1>) => Layer<A1, E1, I | R1>,
|
|
1558
|
+
/**
|
|
1559
|
+
* Updates a service in the context with a new implementation.
|
|
1560
|
+
*
|
|
1561
|
+
* **Details**
|
|
1562
|
+
*
|
|
1563
|
+
* This function modifies the existing implementation of a service in the
|
|
1564
|
+
* context. It retrieves the current service, applies the provided
|
|
1565
|
+
* transformation function `f`, and replaces the old service with the
|
|
1566
|
+
* transformed one.
|
|
1567
|
+
*
|
|
1568
|
+
* **When to Use**
|
|
1569
|
+
*
|
|
1570
|
+
* This is useful for adapting or extending a service's behavior during the
|
|
1571
|
+
* creation of a layer.
|
|
1572
|
+
*
|
|
1573
|
+
* @since 3.13.0
|
|
1574
|
+
* @category utils
|
|
1575
|
+
*/
|
|
1576
|
+
<A1, E1, R1, I, A>(layer: Layer<A1, E1, R1>, tag: Context.Tag<I, A>, f: (a: A) => A) => Layer<A1, E1, I | R1>
|
|
1577
|
+
>(3, (layer, tag, f) =>
|
|
1578
|
+
provide(
|
|
1579
|
+
layer,
|
|
1580
|
+
map(context(), (c) => Context.add(c, tag, f(Context.unsafeGet(c, tag))))
|
|
1581
|
+
))
|