effect 3.0.2 → 3.0.4
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/Cause.js.map +1 -1
- package/dist/cjs/Chunk.js +1 -1
- package/dist/cjs/Chunk.js.map +1 -1
- package/dist/cjs/Effect.js.map +1 -1
- package/dist/cjs/Either.js +4 -6
- package/dist/cjs/Either.js.map +1 -1
- package/dist/cjs/Match.js +6 -1
- package/dist/cjs/Match.js.map +1 -1
- package/dist/cjs/Option.js +3 -5
- package/dist/cjs/Option.js.map +1 -1
- package/dist/cjs/Order.js +15 -0
- package/dist/cjs/Order.js.map +1 -1
- package/dist/cjs/STM.js.map +1 -1
- package/dist/cjs/Utils.js +2 -4
- package/dist/cjs/Utils.js.map +1 -1
- package/dist/cjs/internal/core-effect.js +3 -21
- package/dist/cjs/internal/core-effect.js.map +1 -1
- package/dist/cjs/internal/core.js +10 -0
- package/dist/cjs/internal/core.js.map +1 -1
- package/dist/cjs/internal/effectable.js +4 -0
- package/dist/cjs/internal/effectable.js.map +1 -1
- package/dist/cjs/internal/fiberRuntime.js +3 -3
- package/dist/cjs/internal/fiberRuntime.js.map +1 -1
- package/dist/cjs/internal/matcher.js +8 -3
- package/dist/cjs/internal/matcher.js.map +1 -1
- package/dist/cjs/internal/rateLimiter.js +1 -1
- package/dist/cjs/internal/rateLimiter.js.map +1 -1
- package/dist/cjs/internal/stm/core.js +4 -0
- package/dist/cjs/internal/stm/core.js.map +1 -1
- package/dist/cjs/internal/stm/stm.js +3 -21
- package/dist/cjs/internal/stm/stm.js.map +1 -1
- package/dist/cjs/internal/version.js +1 -1
- package/dist/dts/Cause.d.ts +1 -0
- package/dist/dts/Cause.d.ts.map +1 -1
- package/dist/dts/Chunk.d.ts.map +1 -1
- package/dist/dts/Effect.d.ts +43 -38
- package/dist/dts/Effect.d.ts.map +1 -1
- package/dist/dts/Either.d.ts +1 -1
- package/dist/dts/Either.d.ts.map +1 -1
- package/dist/dts/Match.d.ts +35 -36
- package/dist/dts/Match.d.ts.map +1 -1
- package/dist/dts/Option.d.ts +1 -1
- package/dist/dts/Option.d.ts.map +1 -1
- package/dist/dts/Order.d.ts.map +1 -1
- package/dist/dts/STM.d.ts +25 -35
- package/dist/dts/STM.d.ts.map +1 -1
- package/dist/dts/Utils.d.ts +29 -25
- package/dist/dts/Utils.d.ts.map +1 -1
- package/dist/dts/index.d.ts +15 -0
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/internal/core.d.ts.map +1 -1
- package/dist/dts/internal/stm/stm.d.ts.map +1 -1
- package/dist/esm/Cause.js.map +1 -1
- package/dist/esm/Chunk.js +1 -1
- package/dist/esm/Chunk.js.map +1 -1
- package/dist/esm/Effect.js.map +1 -1
- package/dist/esm/Either.js +4 -6
- package/dist/esm/Either.js.map +1 -1
- package/dist/esm/Match.js +5 -0
- package/dist/esm/Match.js.map +1 -1
- package/dist/esm/Option.js +4 -6
- package/dist/esm/Option.js.map +1 -1
- package/dist/esm/Order.js +15 -0
- package/dist/esm/Order.js.map +1 -1
- package/dist/esm/STM.js.map +1 -1
- package/dist/esm/Utils.js +2 -4
- package/dist/esm/Utils.js.map +1 -1
- package/dist/esm/index.js +15 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/core-effect.js +2 -20
- package/dist/esm/internal/core-effect.js.map +1 -1
- package/dist/esm/internal/core.js +10 -0
- package/dist/esm/internal/core.js.map +1 -1
- package/dist/esm/internal/effectable.js +4 -0
- package/dist/esm/internal/effectable.js.map +1 -1
- package/dist/esm/internal/fiberRuntime.js +3 -3
- package/dist/esm/internal/fiberRuntime.js.map +1 -1
- package/dist/esm/internal/matcher.js +6 -2
- package/dist/esm/internal/matcher.js.map +1 -1
- package/dist/esm/internal/rateLimiter.js +1 -1
- package/dist/esm/internal/rateLimiter.js.map +1 -1
- package/dist/esm/internal/stm/core.js +4 -0
- package/dist/esm/internal/stm/core.js.map +1 -1
- package/dist/esm/internal/stm/stm.js +2 -20
- package/dist/esm/internal/stm/stm.js.map +1 -1
- package/dist/esm/internal/version.js +1 -1
- package/package.json +1 -1
- package/src/Cause.ts +1 -0
- package/src/Chunk.ts +1 -2
- package/src/Effect.ts +46 -41
- package/src/Either.ts +5 -7
- package/src/Match.ts +97 -109
- package/src/Option.ts +5 -7
- package/src/Order.ts +15 -0
- package/src/STM.ts +25 -36
- package/src/Utils.ts +31 -28
- package/src/index.ts +15 -0
- package/src/internal/core-effect.ts +2 -23
- package/src/internal/core.ts +10 -0
- package/src/internal/effectable.ts +4 -0
- package/src/internal/fiberRuntime.ts +3 -3
- package/src/internal/matcher.ts +95 -68
- package/src/internal/rateLimiter.ts +1 -1
- package/src/internal/stm/core.ts +4 -0
- package/src/internal/stm/stm.ts +2 -22
- package/src/internal/version.ts +1 -1
package/src/STM.ts
CHANGED
|
@@ -72,6 +72,7 @@ export interface STM<out A, out E = never, out R = never>
|
|
|
72
72
|
[Unify.typeSymbol]?: unknown
|
|
73
73
|
[Unify.unifySymbol]?: STMUnify<this>
|
|
74
74
|
[Unify.ignoreSymbol]?: STMUnifyIgnore
|
|
75
|
+
[Symbol.iterator](): Effect.EffectGenerator<STM<A, E, R>>
|
|
75
76
|
}
|
|
76
77
|
|
|
77
78
|
/**
|
|
@@ -149,18 +150,6 @@ export declare namespace STM {
|
|
|
149
150
|
}
|
|
150
151
|
}
|
|
151
152
|
|
|
152
|
-
/**
|
|
153
|
-
* @category models
|
|
154
|
-
* @since 2.0.0
|
|
155
|
-
*/
|
|
156
|
-
export interface STMGen<out A, out E, out R> {
|
|
157
|
-
readonly _A: () => A
|
|
158
|
-
readonly _E: () => E
|
|
159
|
-
readonly _R: () => R
|
|
160
|
-
readonly value: STM<A, E, R>
|
|
161
|
-
[Symbol.iterator](): Generator<STMGen<A, E, R>, A>
|
|
162
|
-
}
|
|
163
|
-
|
|
164
153
|
/**
|
|
165
154
|
* Returns `true` if the provided value is an `STM`, `false` otherwise.
|
|
166
155
|
*
|
|
@@ -810,17 +799,17 @@ export const fromOption: <A>(option: Option.Option<A>) => STM<A, Option.Option<n
|
|
|
810
799
|
* @category models
|
|
811
800
|
*/
|
|
812
801
|
export interface Adapter {
|
|
813
|
-
<A, E, R>(self: STM<A, E, R>):
|
|
814
|
-
<A, _R, _E, _A>(a: A, ab: (a: A) => STM<_A, _E, _R>):
|
|
815
|
-
<A, B, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => STM<_A, _E, _R>):
|
|
816
|
-
<A, B, C, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => STM<_A, _E, _R>):
|
|
802
|
+
<A, E, R>(self: STM<A, E, R>): STM<A, E, R>
|
|
803
|
+
<A, _R, _E, _A>(a: A, ab: (a: A) => STM<_A, _E, _R>): STM<_A, _E, _R>
|
|
804
|
+
<A, B, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => STM<_A, _E, _R>): STM<_A, _E, _R>
|
|
805
|
+
<A, B, C, _R, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => STM<_A, _E, _R>): STM<_A, _E, _R>
|
|
817
806
|
<A, B, C, D, _R, _E, _A>(
|
|
818
807
|
a: A,
|
|
819
808
|
ab: (a: A) => B,
|
|
820
809
|
bc: (b: B) => C,
|
|
821
810
|
cd: (c: C) => D,
|
|
822
811
|
de: (d: D) => STM<_A, _E, _R>
|
|
823
|
-
):
|
|
812
|
+
): STM<_A, _E, _R>
|
|
824
813
|
<A, B, C, D, E, _R, _E, _A>(
|
|
825
814
|
a: A,
|
|
826
815
|
ab: (a: A) => B,
|
|
@@ -828,7 +817,7 @@ export interface Adapter {
|
|
|
828
817
|
cd: (c: C) => D,
|
|
829
818
|
de: (d: D) => E,
|
|
830
819
|
ef: (e: E) => STM<_A, _E, _R>
|
|
831
|
-
):
|
|
820
|
+
): STM<_A, _E, _R>
|
|
832
821
|
<A, B, C, D, E, F, _R, _E, _A>(
|
|
833
822
|
a: A,
|
|
834
823
|
ab: (a: A) => B,
|
|
@@ -837,7 +826,7 @@ export interface Adapter {
|
|
|
837
826
|
de: (d: D) => E,
|
|
838
827
|
ef: (e: E) => F,
|
|
839
828
|
fg: (f: F) => STM<_A, _E, _R>
|
|
840
|
-
):
|
|
829
|
+
): STM<_A, _E, _R>
|
|
841
830
|
<A, B, C, D, E, F, G, _R, _E, _A>(
|
|
842
831
|
a: A,
|
|
843
832
|
ab: (a: A) => B,
|
|
@@ -847,7 +836,7 @@ export interface Adapter {
|
|
|
847
836
|
ef: (e: E) => F,
|
|
848
837
|
fg: (f: F) => G,
|
|
849
838
|
gh: (g: F) => STM<_A, _E, _R>
|
|
850
|
-
):
|
|
839
|
+
): STM<_A, _E, _R>
|
|
851
840
|
<A, B, C, D, E, F, G, H, _R, _E, _A>(
|
|
852
841
|
a: A,
|
|
853
842
|
ab: (a: A) => B,
|
|
@@ -858,7 +847,7 @@ export interface Adapter {
|
|
|
858
847
|
fg: (f: F) => G,
|
|
859
848
|
gh: (g: G) => H,
|
|
860
849
|
hi: (g: H) => STM<_A, _E, _R>
|
|
861
|
-
):
|
|
850
|
+
): STM<_A, _E, _R>
|
|
862
851
|
<A, B, C, D, E, F, G, H, I, _R, _E, _A>(
|
|
863
852
|
a: A,
|
|
864
853
|
ab: (a: A) => B,
|
|
@@ -870,7 +859,7 @@ export interface Adapter {
|
|
|
870
859
|
gh: (g: G) => H,
|
|
871
860
|
hi: (h: H) => I,
|
|
872
861
|
ij: (i: I) => STM<_A, _E, _R>
|
|
873
|
-
):
|
|
862
|
+
): STM<_A, _E, _R>
|
|
874
863
|
<A, B, C, D, E, F, G, H, I, J, _R, _E, _A>(
|
|
875
864
|
a: A,
|
|
876
865
|
ab: (a: A) => B,
|
|
@@ -883,7 +872,7 @@ export interface Adapter {
|
|
|
883
872
|
hi: (h: H) => I,
|
|
884
873
|
ij: (i: I) => J,
|
|
885
874
|
jk: (j: J) => STM<_A, _E, _R>
|
|
886
|
-
):
|
|
875
|
+
): STM<_A, _E, _R>
|
|
887
876
|
<A, B, C, D, E, F, G, H, I, J, K, _R, _E, _A>(
|
|
888
877
|
a: A,
|
|
889
878
|
ab: (a: A) => B,
|
|
@@ -897,7 +886,7 @@ export interface Adapter {
|
|
|
897
886
|
ij: (i: I) => J,
|
|
898
887
|
jk: (j: J) => K,
|
|
899
888
|
kl: (k: K) => STM<_A, _E, _R>
|
|
900
|
-
):
|
|
889
|
+
): STM<_A, _E, _R>
|
|
901
890
|
<A, B, C, D, E, F, G, H, I, J, K, L, _R, _E, _A>(
|
|
902
891
|
a: A,
|
|
903
892
|
ab: (a: A) => B,
|
|
@@ -912,7 +901,7 @@ export interface Adapter {
|
|
|
912
901
|
jk: (j: J) => K,
|
|
913
902
|
kl: (k: K) => L,
|
|
914
903
|
lm: (l: L) => STM<_A, _E, _R>
|
|
915
|
-
):
|
|
904
|
+
): STM<_A, _E, _R>
|
|
916
905
|
<A, B, C, D, E, F, G, H, I, J, K, L, M, _R, _E, _A>(
|
|
917
906
|
a: A,
|
|
918
907
|
ab: (a: A) => B,
|
|
@@ -928,7 +917,7 @@ export interface Adapter {
|
|
|
928
917
|
kl: (k: K) => L,
|
|
929
918
|
lm: (l: L) => M,
|
|
930
919
|
mn: (m: M) => STM<_A, _E, _R>
|
|
931
|
-
):
|
|
920
|
+
): STM<_A, _E, _R>
|
|
932
921
|
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, _R, _E, _A>(
|
|
933
922
|
a: A,
|
|
934
923
|
ab: (a: A) => B,
|
|
@@ -945,7 +934,7 @@ export interface Adapter {
|
|
|
945
934
|
lm: (l: L) => M,
|
|
946
935
|
mn: (m: M) => N,
|
|
947
936
|
no: (n: N) => STM<_A, _E, _R>
|
|
948
|
-
):
|
|
937
|
+
): STM<_A, _E, _R>
|
|
949
938
|
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, _R, _E, _A>(
|
|
950
939
|
a: A,
|
|
951
940
|
ab: (a: A) => B,
|
|
@@ -963,7 +952,7 @@ export interface Adapter {
|
|
|
963
952
|
mn: (m: M) => N,
|
|
964
953
|
no: (n: N) => O,
|
|
965
954
|
op: (o: O) => STM<_A, _E, _R>
|
|
966
|
-
):
|
|
955
|
+
): STM<_A, _E, _R>
|
|
967
956
|
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, _R, _E, _A>(
|
|
968
957
|
a: A,
|
|
969
958
|
ab: (a: A) => B,
|
|
@@ -982,7 +971,7 @@ export interface Adapter {
|
|
|
982
971
|
no: (n: N) => O,
|
|
983
972
|
op: (o: O) => P,
|
|
984
973
|
pq: (p: P) => STM<_A, _E, _R>
|
|
985
|
-
):
|
|
974
|
+
): STM<_A, _E, _R>
|
|
986
975
|
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, _R, _E, _A>(
|
|
987
976
|
a: A,
|
|
988
977
|
ab: (a: A) => B,
|
|
@@ -1002,7 +991,7 @@ export interface Adapter {
|
|
|
1002
991
|
op: (o: O) => P,
|
|
1003
992
|
pq: (p: P) => Q,
|
|
1004
993
|
qr: (q: Q) => STM<_A, _E, _R>
|
|
1005
|
-
):
|
|
994
|
+
): STM<_A, _E, _R>
|
|
1006
995
|
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, _R, _E, _A>(
|
|
1007
996
|
a: A,
|
|
1008
997
|
ab: (a: A) => B,
|
|
@@ -1023,7 +1012,7 @@ export interface Adapter {
|
|
|
1023
1012
|
pq: (p: P) => Q,
|
|
1024
1013
|
qr: (q: Q) => R,
|
|
1025
1014
|
rs: (r: R) => STM<_A, _E, _R>
|
|
1026
|
-
):
|
|
1015
|
+
): STM<_A, _E, _R>
|
|
1027
1016
|
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, _R, _E, _A>(
|
|
1028
1017
|
a: A,
|
|
1029
1018
|
ab: (a: A) => B,
|
|
@@ -1045,7 +1034,7 @@ export interface Adapter {
|
|
|
1045
1034
|
qr: (q: Q) => R,
|
|
1046
1035
|
rs: (r: R) => S,
|
|
1047
1036
|
st: (s: S) => STM<_A, _E, _R>
|
|
1048
|
-
):
|
|
1037
|
+
): STM<_A, _E, _R>
|
|
1049
1038
|
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, _R, _E, _A>(
|
|
1050
1039
|
a: A,
|
|
1051
1040
|
ab: (a: A) => B,
|
|
@@ -1068,19 +1057,19 @@ export interface Adapter {
|
|
|
1068
1057
|
rs: (r: R) => S,
|
|
1069
1058
|
st: (s: S) => T,
|
|
1070
1059
|
tu: (s: T) => STM<_A, _E, _R>
|
|
1071
|
-
):
|
|
1060
|
+
): STM<_A, _E, _R>
|
|
1072
1061
|
}
|
|
1073
1062
|
|
|
1074
1063
|
/**
|
|
1075
1064
|
* @since 2.0.0
|
|
1076
1065
|
* @category constructors
|
|
1077
1066
|
*/
|
|
1078
|
-
export const gen: <Eff extends
|
|
1067
|
+
export const gen: <Eff extends STM<any, any, any>, AEff>(
|
|
1079
1068
|
f: (resume: Adapter) => Generator<Eff, AEff, any>
|
|
1080
1069
|
) => STM<
|
|
1081
1070
|
AEff,
|
|
1082
|
-
[Eff] extends [never] ? never : [Eff] extends [
|
|
1083
|
-
[Eff] extends [never] ? never : [Eff] extends [
|
|
1071
|
+
[Eff] extends [never] ? never : [Eff] extends [STM<infer _A, infer E, infer _R>] ? E : never,
|
|
1072
|
+
[Eff] extends [never] ? never : [Eff] extends [STM<infer _A, infer _E, infer R>] ? R : never
|
|
1084
1073
|
> = stm.gen
|
|
1085
1074
|
|
|
1086
1075
|
/**
|
package/src/Utils.ts
CHANGED
|
@@ -164,18 +164,22 @@ export interface Variance<in out F extends TypeLambda, in R, out O, out E> {
|
|
|
164
164
|
readonly _E: Types.Covariant<E>
|
|
165
165
|
}
|
|
166
166
|
|
|
167
|
+
/**
|
|
168
|
+
* @category models
|
|
169
|
+
* @since 2.0.0
|
|
170
|
+
*/
|
|
167
171
|
/**
|
|
168
172
|
* @category models
|
|
169
173
|
* @since 2.0.0
|
|
170
174
|
*/
|
|
171
175
|
export interface Gen<F extends TypeLambda, Z> {
|
|
172
|
-
<K extends Variance<F, any, any, any>, A>(
|
|
176
|
+
<K extends Variance<F, any, any, any> | Kind<F, any, any, any, any>, A>(
|
|
173
177
|
body: (resume: Z) => Generator<K, A>
|
|
174
178
|
): Kind<
|
|
175
179
|
F,
|
|
176
|
-
[K] extends [Variance<F, infer R, any, any>] ? R : never,
|
|
177
|
-
[K] extends [Variance<F, any, infer O, any>] ? O : never,
|
|
178
|
-
[K] extends [Variance<F, any, any, infer E>] ? E : never,
|
|
180
|
+
[K] extends [Variance<F, infer R, any, any>] ? R : [K] extends [Kind<F, infer R, any, any, any>] ? R : never,
|
|
181
|
+
[K] extends [Variance<F, any, infer O, any>] ? O : [K] extends [Kind<F, any, infer O, any, any>] ? O : never,
|
|
182
|
+
[K] extends [Variance<F, any, any, infer E>] ? E : [K] extends [Kind<F, any, any, infer E, any>] ? E : never,
|
|
179
183
|
A
|
|
180
184
|
>
|
|
181
185
|
}
|
|
@@ -187,22 +191,22 @@ export interface Gen<F extends TypeLambda, Z> {
|
|
|
187
191
|
export interface Adapter<Z extends TypeLambda> {
|
|
188
192
|
<_R, _O, _E, _A>(
|
|
189
193
|
self: Kind<Z, _R, _O, _E, _A>
|
|
190
|
-
):
|
|
191
|
-
<A, _R, _O, _E, _A>(a: A, ab: (a: A) => Kind<Z, _R, _O, _E, _A>):
|
|
192
|
-
<A, B, _R, _O, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => Kind<Z, _R, _O, _E, _A>):
|
|
194
|
+
): Kind<Z, _R, _O, _E, _A>
|
|
195
|
+
<A, _R, _O, _E, _A>(a: A, ab: (a: A) => Kind<Z, _R, _O, _E, _A>): Kind<Z, _R, _O, _E, _A>
|
|
196
|
+
<A, B, _R, _O, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => Kind<Z, _R, _O, _E, _A>): Kind<Z, _R, _O, _E, _A>
|
|
193
197
|
<A, B, C, _R, _O, _E, _A>(
|
|
194
198
|
a: A,
|
|
195
199
|
ab: (a: A) => B,
|
|
196
200
|
bc: (b: B) => C,
|
|
197
201
|
cd: (c: C) => Kind<Z, _R, _O, _E, _A>
|
|
198
|
-
):
|
|
202
|
+
): Kind<Z, _R, _O, _E, _A>
|
|
199
203
|
<A, B, C, D, _R, _O, _E, _A>(
|
|
200
204
|
a: A,
|
|
201
205
|
ab: (a: A) => B,
|
|
202
206
|
bc: (b: B) => C,
|
|
203
207
|
cd: (c: C) => D,
|
|
204
208
|
de: (d: D) => Kind<Z, _R, _O, _E, _A>
|
|
205
|
-
):
|
|
209
|
+
): Kind<Z, _R, _O, _E, _A>
|
|
206
210
|
<A, B, C, D, E, _R, _O, _E, _A>(
|
|
207
211
|
a: A,
|
|
208
212
|
ab: (a: A) => B,
|
|
@@ -210,7 +214,7 @@ export interface Adapter<Z extends TypeLambda> {
|
|
|
210
214
|
cd: (c: C) => D,
|
|
211
215
|
de: (d: D) => E,
|
|
212
216
|
ef: (e: E) => Kind<Z, _R, _O, _E, _A>
|
|
213
|
-
):
|
|
217
|
+
): Kind<Z, _R, _O, _E, _A>
|
|
214
218
|
<A, B, C, D, E, F, _R, _O, _E, _A>(
|
|
215
219
|
a: A,
|
|
216
220
|
ab: (a: A) => B,
|
|
@@ -219,7 +223,7 @@ export interface Adapter<Z extends TypeLambda> {
|
|
|
219
223
|
de: (d: D) => E,
|
|
220
224
|
ef: (e: E) => F,
|
|
221
225
|
fg: (f: F) => Kind<Z, _R, _O, _E, _A>
|
|
222
|
-
):
|
|
226
|
+
): Kind<Z, _R, _O, _E, _A>
|
|
223
227
|
<A, B, C, D, E, F, G, _R, _O, _E, _A>(
|
|
224
228
|
a: A,
|
|
225
229
|
ab: (a: A) => B,
|
|
@@ -229,7 +233,7 @@ export interface Adapter<Z extends TypeLambda> {
|
|
|
229
233
|
ef: (e: E) => F,
|
|
230
234
|
fg: (f: F) => G,
|
|
231
235
|
gh: (g: F) => Kind<Z, _R, _O, _E, _A>
|
|
232
|
-
):
|
|
236
|
+
): Kind<Z, _R, _O, _E, _A>
|
|
233
237
|
<A, B, C, D, E, F, G, H, _R, _O, _E, _A>(
|
|
234
238
|
a: A,
|
|
235
239
|
ab: (a: A) => B,
|
|
@@ -240,7 +244,7 @@ export interface Adapter<Z extends TypeLambda> {
|
|
|
240
244
|
fg: (f: F) => G,
|
|
241
245
|
gh: (g: G) => H,
|
|
242
246
|
hi: (g: H) => Kind<Z, _R, _O, _E, _A>
|
|
243
|
-
):
|
|
247
|
+
): Kind<Z, _R, _O, _E, _A>
|
|
244
248
|
<A, B, C, D, E, F, G, H, I, _R, _O, _E, _A>(
|
|
245
249
|
a: A,
|
|
246
250
|
ab: (a: A) => B,
|
|
@@ -252,7 +256,7 @@ export interface Adapter<Z extends TypeLambda> {
|
|
|
252
256
|
gh: (g: G) => H,
|
|
253
257
|
hi: (h: H) => I,
|
|
254
258
|
ij: (i: I) => Kind<Z, _R, _O, _E, _A>
|
|
255
|
-
):
|
|
259
|
+
): Kind<Z, _R, _O, _E, _A>
|
|
256
260
|
<A, B, C, D, E, F, G, H, I, J, _R, _O, _E, _A>(
|
|
257
261
|
a: A,
|
|
258
262
|
ab: (a: A) => B,
|
|
@@ -265,7 +269,7 @@ export interface Adapter<Z extends TypeLambda> {
|
|
|
265
269
|
hi: (h: H) => I,
|
|
266
270
|
ij: (i: I) => J,
|
|
267
271
|
jk: (j: J) => Kind<Z, _R, _O, _E, _A>
|
|
268
|
-
):
|
|
272
|
+
): Kind<Z, _R, _O, _E, _A>
|
|
269
273
|
<A, B, C, D, E, F, G, H, I, J, K, _R, _O, _E, _A>(
|
|
270
274
|
a: A,
|
|
271
275
|
ab: (a: A) => B,
|
|
@@ -279,7 +283,7 @@ export interface Adapter<Z extends TypeLambda> {
|
|
|
279
283
|
ij: (i: I) => J,
|
|
280
284
|
jk: (j: J) => K,
|
|
281
285
|
kl: (k: K) => Kind<Z, _R, _O, _E, _A>
|
|
282
|
-
):
|
|
286
|
+
): Kind<Z, _R, _O, _E, _A>
|
|
283
287
|
<A, B, C, D, E, F, G, H, I, J, K, L, _R, _O, _E, _A>(
|
|
284
288
|
a: A,
|
|
285
289
|
ab: (a: A) => B,
|
|
@@ -294,7 +298,7 @@ export interface Adapter<Z extends TypeLambda> {
|
|
|
294
298
|
jk: (j: J) => K,
|
|
295
299
|
kl: (k: K) => L,
|
|
296
300
|
lm: (l: L) => Kind<Z, _R, _O, _E, _A>
|
|
297
|
-
):
|
|
301
|
+
): Kind<Z, _R, _O, _E, _A>
|
|
298
302
|
<A, B, C, D, E, F, G, H, I, J, K, L, M, _R, _O, _E, _A>(
|
|
299
303
|
a: A,
|
|
300
304
|
ab: (a: A) => B,
|
|
@@ -310,7 +314,7 @@ export interface Adapter<Z extends TypeLambda> {
|
|
|
310
314
|
kl: (k: K) => L,
|
|
311
315
|
lm: (l: L) => M,
|
|
312
316
|
mn: (m: M) => Kind<Z, _R, _O, _E, _A>
|
|
313
|
-
):
|
|
317
|
+
): Kind<Z, _R, _O, _E, _A>
|
|
314
318
|
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, _R, _O, _E, _A>(
|
|
315
319
|
a: A,
|
|
316
320
|
ab: (a: A) => B,
|
|
@@ -327,7 +331,7 @@ export interface Adapter<Z extends TypeLambda> {
|
|
|
327
331
|
lm: (l: L) => M,
|
|
328
332
|
mn: (m: M) => N,
|
|
329
333
|
no: (n: N) => Kind<Z, _R, _O, _E, _A>
|
|
330
|
-
):
|
|
334
|
+
): Kind<Z, _R, _O, _E, _A>
|
|
331
335
|
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, _R, _O, _E, _A>(
|
|
332
336
|
a: A,
|
|
333
337
|
ab: (a: A) => B,
|
|
@@ -345,7 +349,7 @@ export interface Adapter<Z extends TypeLambda> {
|
|
|
345
349
|
mn: (m: M) => N,
|
|
346
350
|
no: (n: N) => O,
|
|
347
351
|
op: (o: O) => Kind<Z, _R, _O, _E, _A>
|
|
348
|
-
):
|
|
352
|
+
): Kind<Z, _R, _O, _E, _A>
|
|
349
353
|
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, _R, _O, _E, _A>(
|
|
350
354
|
a: A,
|
|
351
355
|
ab: (a: A) => B,
|
|
@@ -364,7 +368,7 @@ export interface Adapter<Z extends TypeLambda> {
|
|
|
364
368
|
no: (n: N) => O,
|
|
365
369
|
op: (o: O) => P,
|
|
366
370
|
pq: (p: P) => Kind<Z, _R, _O, _E, _A>
|
|
367
|
-
):
|
|
371
|
+
): Kind<Z, _R, _O, _E, _A>
|
|
368
372
|
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, _R, _O, _E, _A>(
|
|
369
373
|
a: A,
|
|
370
374
|
ab: (a: A) => B,
|
|
@@ -384,7 +388,7 @@ export interface Adapter<Z extends TypeLambda> {
|
|
|
384
388
|
op: (o: O) => P,
|
|
385
389
|
pq: (p: P) => Q,
|
|
386
390
|
qr: (q: Q) => Kind<Z, _R, _O, _E, _A>
|
|
387
|
-
):
|
|
391
|
+
): Kind<Z, _R, _O, _E, _A>
|
|
388
392
|
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, _R, _O, _E, _A>(
|
|
389
393
|
a: A,
|
|
390
394
|
ab: (a: A) => B,
|
|
@@ -405,7 +409,7 @@ export interface Adapter<Z extends TypeLambda> {
|
|
|
405
409
|
pq: (p: P) => Q,
|
|
406
410
|
qr: (q: Q) => R,
|
|
407
411
|
rs: (r: R) => Kind<Z, _R, _O, _E, _A>
|
|
408
|
-
):
|
|
412
|
+
): Kind<Z, _R, _O, _E, _A>
|
|
409
413
|
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, _R, _O, _E, _A>(
|
|
410
414
|
a: A,
|
|
411
415
|
ab: (a: A) => B,
|
|
@@ -427,7 +431,7 @@ export interface Adapter<Z extends TypeLambda> {
|
|
|
427
431
|
qr: (q: Q) => R,
|
|
428
432
|
rs: (r: R) => S,
|
|
429
433
|
st: (s: S) => Kind<Z, _R, _O, _E, _A>
|
|
430
|
-
):
|
|
434
|
+
): Kind<Z, _R, _O, _E, _A>
|
|
431
435
|
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, _R, _O, _E, _A>(
|
|
432
436
|
a: A,
|
|
433
437
|
ab: (a: A) => B,
|
|
@@ -450,20 +454,19 @@ export interface Adapter<Z extends TypeLambda> {
|
|
|
450
454
|
rs: (r: R) => S,
|
|
451
455
|
st: (s: S) => T,
|
|
452
456
|
tu: (s: T) => Kind<Z, _R, _O, _E, _A>
|
|
453
|
-
):
|
|
457
|
+
): Kind<Z, _R, _O, _E, _A>
|
|
454
458
|
}
|
|
455
459
|
|
|
456
460
|
/**
|
|
457
461
|
* @category adapters
|
|
458
462
|
* @since 2.0.0
|
|
459
463
|
*/
|
|
460
|
-
export const adapter: <F extends TypeLambda>() => Adapter<F> = () =>
|
|
461
|
-
(function() {
|
|
464
|
+
export const adapter: <F extends TypeLambda>() => Adapter<F> = () => (function() {
|
|
462
465
|
let x = arguments[0]
|
|
463
466
|
for (let i = 1; i < arguments.length; i++) {
|
|
464
467
|
x = arguments[i](x)
|
|
465
468
|
}
|
|
466
|
-
return
|
|
469
|
+
return x
|
|
467
470
|
})
|
|
468
471
|
|
|
469
472
|
const defaultIncHi = 0x14057b7e
|
package/src/index.ts
CHANGED
|
@@ -531,6 +531,21 @@ export * as Number from "./Number.js"
|
|
|
531
531
|
export * as Option from "./Option.js"
|
|
532
532
|
|
|
533
533
|
/**
|
|
534
|
+
* This module provides an implementation of the `Order` type class which is used to define a total ordering on some type `A`.
|
|
535
|
+
* An order is defined by a relation `<=`, which obeys the following laws:
|
|
536
|
+
*
|
|
537
|
+
* - either `x <= y` or `y <= x` (totality)
|
|
538
|
+
* - if `x <= y` and `y <= x`, then `x == y` (antisymmetry)
|
|
539
|
+
* - if `x <= y` and `y <= z`, then `x <= z` (transitivity)
|
|
540
|
+
*
|
|
541
|
+
* The truth table for compare is defined as follows:
|
|
542
|
+
*
|
|
543
|
+
* | `x <= y` | `x >= y` | Ordering | |
|
|
544
|
+
* | -------- | -------- | -------- | --------------------- |
|
|
545
|
+
* | `true` | `true` | `0` | corresponds to x == y |
|
|
546
|
+
* | `true` | `false` | `< 0` | corresponds to x < y |
|
|
547
|
+
* | `false` | `true` | `> 0` | corresponds to x > y |
|
|
548
|
+
*
|
|
534
549
|
* @since 2.0.0
|
|
535
550
|
*/
|
|
536
551
|
export * as Order from "./Order.js"
|
|
@@ -34,7 +34,6 @@ import * as fiberRefsPatch from "./fiberRefs/patch.js"
|
|
|
34
34
|
import type { FiberRuntime } from "./fiberRuntime.js"
|
|
35
35
|
import * as metricLabel from "./metric/label.js"
|
|
36
36
|
import * as runtimeFlags from "./runtimeFlags.js"
|
|
37
|
-
import * as SingleShotGen from "./singleShotGen.js"
|
|
38
37
|
import * as internalTracer from "./tracer.js"
|
|
39
38
|
|
|
40
39
|
/* @internal */
|
|
@@ -774,23 +773,6 @@ export const forever = <A, E, R>(self: Effect.Effect<A, E, R>): Effect.Effect<ne
|
|
|
774
773
|
return loop
|
|
775
774
|
}
|
|
776
775
|
|
|
777
|
-
/** @internal */
|
|
778
|
-
class EffectGen {
|
|
779
|
-
constructor(readonly value: Effect.Effect<any, any, any>) {
|
|
780
|
-
}
|
|
781
|
-
[Symbol.iterator]() {
|
|
782
|
-
return new SingleShotGen.SingleShotGen(this)
|
|
783
|
-
}
|
|
784
|
-
}
|
|
785
|
-
|
|
786
|
-
const adapter = function() {
|
|
787
|
-
let x = arguments[0]
|
|
788
|
-
for (let i = 1; i < arguments.length; i++) {
|
|
789
|
-
x = arguments[i](x)
|
|
790
|
-
}
|
|
791
|
-
return new EffectGen(x) as any
|
|
792
|
-
}
|
|
793
|
-
|
|
794
776
|
/**
|
|
795
777
|
* Inspired by https://github.com/tusharmath/qio/pull/22 (revised)
|
|
796
778
|
@internal */
|
|
@@ -802,16 +784,13 @@ export const gen: typeof Effect.gen = function() {
|
|
|
802
784
|
f = arguments[1].bind(arguments[0])
|
|
803
785
|
}
|
|
804
786
|
return core.suspend(() => {
|
|
805
|
-
const iterator = f(
|
|
787
|
+
const iterator = f(pipe)
|
|
806
788
|
const state = iterator.next()
|
|
807
789
|
const run = (
|
|
808
790
|
state: IteratorYieldResult<any> | IteratorReturnResult<any>
|
|
809
791
|
): Effect.Effect<any, any, any> => (state.done
|
|
810
792
|
? core.succeed(state.value)
|
|
811
|
-
:
|
|
812
|
-
state.value.value as unknown as Effect.Effect<any, any, any>,
|
|
813
|
-
core.flatMap((val: any) => run(iterator.next(val)))
|
|
814
|
-
))
|
|
793
|
+
: core.flatMap(state.value, (val: any) => run(iterator.next(val))))
|
|
815
794
|
return run(state)
|
|
816
795
|
})
|
|
817
796
|
}
|
package/src/internal/core.ts
CHANGED
|
@@ -47,6 +47,7 @@ import type * as fiberScope from "./fiberScope.js"
|
|
|
47
47
|
import * as DeferredOpCodes from "./opCodes/deferred.js"
|
|
48
48
|
import * as OpCodes from "./opCodes/effect.js"
|
|
49
49
|
import * as _runtimeFlags from "./runtimeFlags.js"
|
|
50
|
+
import { SingleShotGen } from "./singleShotGen.js"
|
|
50
51
|
import * as internalTracer from "./tracer.js"
|
|
51
52
|
|
|
52
53
|
// -----------------------------------------------------------------------------
|
|
@@ -178,6 +179,9 @@ class EffectPrimitive {
|
|
|
178
179
|
[NodeInspectSymbol]() {
|
|
179
180
|
return this.toJSON()
|
|
180
181
|
}
|
|
182
|
+
[Symbol.iterator]() {
|
|
183
|
+
return new SingleShotGen(this)
|
|
184
|
+
}
|
|
181
185
|
}
|
|
182
186
|
|
|
183
187
|
/** @internal */
|
|
@@ -216,6 +220,9 @@ class EffectPrimitiveFailure {
|
|
|
216
220
|
[NodeInspectSymbol]() {
|
|
217
221
|
return this.toJSON()
|
|
218
222
|
}
|
|
223
|
+
[Symbol.iterator]() {
|
|
224
|
+
return new SingleShotGen(this)
|
|
225
|
+
}
|
|
219
226
|
}
|
|
220
227
|
|
|
221
228
|
/** @internal */
|
|
@@ -254,6 +261,9 @@ class EffectPrimitiveSuccess {
|
|
|
254
261
|
[NodeInspectSymbol]() {
|
|
255
262
|
return this.toJSON()
|
|
256
263
|
}
|
|
264
|
+
[Symbol.iterator]() {
|
|
265
|
+
return new SingleShotGen(this)
|
|
266
|
+
}
|
|
257
267
|
}
|
|
258
268
|
|
|
259
269
|
/** @internal */
|
|
@@ -7,6 +7,7 @@ import { pipeArguments } from "../Pipeable.js"
|
|
|
7
7
|
import type * as Sink from "../Sink.js"
|
|
8
8
|
import type * as Stream from "../Stream.js"
|
|
9
9
|
import * as OpCodes from "./opCodes/effect.js"
|
|
10
|
+
import * as SingleShotGen from "./singleShotGen.js"
|
|
10
11
|
import * as version from "./version.js"
|
|
11
12
|
|
|
12
13
|
/** @internal */
|
|
@@ -75,6 +76,9 @@ export const EffectPrototype: Effect.Effect<never> & Equal.Equal = {
|
|
|
75
76
|
[Hash.symbol]() {
|
|
76
77
|
return Hash.cached(this, Hash.random(this))
|
|
77
78
|
},
|
|
79
|
+
[Symbol.iterator]() {
|
|
80
|
+
return new SingleShotGen.SingleShotGen(this) as any
|
|
81
|
+
},
|
|
78
82
|
pipe() {
|
|
79
83
|
return pipeArguments(this, arguments)
|
|
80
84
|
}
|
|
@@ -1585,7 +1585,7 @@ export const exists: {
|
|
|
1585
1585
|
readonly batching?: boolean | "inherit" | undefined
|
|
1586
1586
|
}): Effect.Effect<boolean, E, R>
|
|
1587
1587
|
} = dual(
|
|
1588
|
-
(args) => Predicate.isIterable(args[0]),
|
|
1588
|
+
(args) => Predicate.isIterable(args[0]) && !core.isEffect(args[0]),
|
|
1589
1589
|
<A, E, R>(elements: Iterable<A>, f: (a: A, i: number) => Effect.Effect<boolean, E, R>, options?: {
|
|
1590
1590
|
readonly concurrency?: Concurrency | undefined
|
|
1591
1591
|
readonly batching?: boolean | "inherit" | undefined
|
|
@@ -1639,7 +1639,7 @@ export const filter = dual<
|
|
|
1639
1639
|
readonly negate?: boolean | undefined
|
|
1640
1640
|
}) => Effect.Effect<Array<A>, E, R>
|
|
1641
1641
|
>(
|
|
1642
|
-
(args) => Predicate.isIterable(args[0]),
|
|
1642
|
+
(args) => Predicate.isIterable(args[0]) && !core.isEffect(args[0]),
|
|
1643
1643
|
<A, E, R>(elements: Iterable<A>, f: (a: NoInfer<A>, i: number) => Effect.Effect<boolean, E, R>, options?: {
|
|
1644
1644
|
readonly concurrency?: Concurrency | undefined
|
|
1645
1645
|
readonly batching?: boolean | "inherit" | undefined
|
|
@@ -2551,7 +2551,7 @@ export const reduceEffect = dual<
|
|
|
2551
2551
|
readonly batching?: boolean | "inherit" | undefined
|
|
2552
2552
|
}
|
|
2553
2553
|
) => Effect.Effect<Z, E | Effect.Effect.Error<Eff>, R | Effect.Effect.Context<Eff>>
|
|
2554
|
-
>((args) => Predicate.isIterable(args[0]), <A, E, R, Z>(
|
|
2554
|
+
>((args) => Predicate.isIterable(args[0]) && !core.isEffect(args[0]), <A, E, R, Z>(
|
|
2555
2555
|
elements: Iterable<Effect.Effect<A, E, R>>,
|
|
2556
2556
|
zero: Effect.Effect<Z, E, R>,
|
|
2557
2557
|
f: (acc: NoInfer<Z>, a: NoInfer<A>, i: number) => Z,
|