effect 2.1.2 → 2.2.1
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/Effect.js.map +1 -1
- package/dist/cjs/Either.js +1 -1
- package/dist/cjs/Either.js.map +1 -1
- package/dist/cjs/Exit.js.map +1 -1
- package/dist/cjs/FiberMap.js +59 -3
- package/dist/cjs/FiberMap.js.map +1 -1
- package/dist/cjs/FiberSet.js +55 -3
- package/dist/cjs/FiberSet.js.map +1 -1
- package/dist/cjs/HashMap.js.map +1 -1
- package/dist/cjs/HashSet.js.map +1 -1
- package/dist/cjs/List.js.map +1 -1
- package/dist/cjs/ReadonlyArray.js.map +1 -1
- package/dist/cjs/ReadonlyRecord.js.map +1 -1
- package/dist/cjs/STM.js.map +1 -1
- package/dist/cjs/internal/cause.js.map +1 -1
- package/dist/cjs/internal/core-effect.js +7 -7
- package/dist/cjs/internal/core-effect.js.map +1 -1
- package/dist/cjs/internal/core.js +1 -1
- package/dist/cjs/internal/core.js.map +1 -1
- package/dist/cjs/internal/fiberId.js +11 -3
- package/dist/cjs/internal/fiberId.js.map +1 -1
- package/dist/cjs/internal/groupBy.js.map +1 -1
- package/dist/cjs/internal/hashMap.js.map +1 -1
- package/dist/cjs/internal/hashSet.js.map +1 -1
- package/dist/cjs/internal/schedule.js +11 -1
- package/dist/cjs/internal/schedule.js.map +1 -1
- package/dist/cjs/internal/stm/stm.js.map +1 -1
- package/dist/cjs/internal/stream.js +1 -4
- package/dist/cjs/internal/stream.js.map +1 -1
- package/dist/cjs/internal/trie.js.map +1 -1
- package/dist/cjs/internal/version.js +1 -1
- package/dist/dts/Cause.d.ts +6 -4
- package/dist/dts/Cause.d.ts.map +1 -1
- package/dist/dts/Chunk.d.ts +16 -16
- package/dist/dts/Chunk.d.ts.map +1 -1
- package/dist/dts/Effect.d.ts +31 -31
- package/dist/dts/Effect.d.ts.map +1 -1
- package/dist/dts/Either.d.ts +9 -9
- package/dist/dts/Either.d.ts.map +1 -1
- package/dist/dts/Exit.d.ts +3 -2
- package/dist/dts/Exit.d.ts.map +1 -1
- package/dist/dts/FiberMap.d.ts +42 -5
- package/dist/dts/FiberMap.d.ts.map +1 -1
- package/dist/dts/FiberSet.d.ts +36 -1
- package/dist/dts/FiberSet.d.ts.map +1 -1
- package/dist/dts/GroupBy.d.ts +6 -6
- package/dist/dts/GroupBy.d.ts.map +1 -1
- package/dist/dts/HashMap.d.ts +5 -4
- package/dist/dts/HashMap.d.ts.map +1 -1
- package/dist/dts/HashSet.d.ts +6 -5
- package/dist/dts/HashSet.d.ts.map +1 -1
- package/dist/dts/List.d.ts +9 -8
- package/dist/dts/List.d.ts.map +1 -1
- package/dist/dts/Option.d.ts +7 -7
- package/dist/dts/Option.d.ts.map +1 -1
- package/dist/dts/ReadonlyArray.d.ts +25 -23
- package/dist/dts/ReadonlyArray.d.ts.map +1 -1
- package/dist/dts/ReadonlyRecord.d.ts +5 -4
- package/dist/dts/ReadonlyRecord.d.ts.map +1 -1
- package/dist/dts/STM.d.ts +28 -26
- package/dist/dts/STM.d.ts.map +1 -1
- package/dist/dts/SortedSet.d.ts +3 -3
- package/dist/dts/SortedSet.d.ts.map +1 -1
- package/dist/dts/Stream.d.ts +37 -37
- package/dist/dts/Stream.d.ts.map +1 -1
- package/dist/dts/Trie.d.ts +4 -4
- package/dist/dts/Trie.d.ts.map +1 -1
- package/dist/dts/internal/hashMap.d.ts.map +1 -1
- package/dist/dts/internal/stm/stm.d.ts.map +1 -1
- package/dist/dts/internal/version.d.ts +1 -1
- package/dist/esm/Cause.js.map +1 -1
- package/dist/esm/Effect.js.map +1 -1
- package/dist/esm/Either.js +1 -1
- package/dist/esm/Either.js.map +1 -1
- package/dist/esm/Exit.js.map +1 -1
- package/dist/esm/FiberMap.js +54 -1
- package/dist/esm/FiberMap.js.map +1 -1
- package/dist/esm/FiberSet.js +50 -1
- package/dist/esm/FiberSet.js.map +1 -1
- package/dist/esm/HashMap.js.map +1 -1
- package/dist/esm/HashSet.js.map +1 -1
- package/dist/esm/List.js.map +1 -1
- package/dist/esm/ReadonlyArray.js.map +1 -1
- package/dist/esm/ReadonlyRecord.js.map +1 -1
- package/dist/esm/STM.js.map +1 -1
- package/dist/esm/internal/cause.js.map +1 -1
- package/dist/esm/internal/core-effect.js +7 -7
- package/dist/esm/internal/core-effect.js.map +1 -1
- package/dist/esm/internal/core.js +1 -1
- package/dist/esm/internal/core.js.map +1 -1
- package/dist/esm/internal/fiberId.js +11 -3
- package/dist/esm/internal/fiberId.js.map +1 -1
- package/dist/esm/internal/groupBy.js.map +1 -1
- package/dist/esm/internal/hashMap.js.map +1 -1
- package/dist/esm/internal/hashSet.js.map +1 -1
- package/dist/esm/internal/schedule.js +11 -1
- package/dist/esm/internal/schedule.js.map +1 -1
- package/dist/esm/internal/stm/stm.js.map +1 -1
- package/dist/esm/internal/stream.js +1 -4
- package/dist/esm/internal/stream.js.map +1 -1
- package/dist/esm/internal/trie.js.map +1 -1
- package/dist/esm/internal/version.js +1 -1
- package/package.json +1 -1
- package/src/Cause.ts +6 -4
- package/src/Chunk.ts +20 -20
- package/src/Effect.ts +67 -72
- package/src/Either.ts +17 -21
- package/src/Exit.ts +3 -2
- package/src/FiberMap.ts +97 -16
- package/src/FiberSet.ts +86 -13
- package/src/GroupBy.ts +6 -6
- package/src/HashMap.ts +5 -4
- package/src/HashSet.ts +8 -7
- package/src/List.ts +11 -10
- package/src/Option.ts +8 -8
- package/src/ReadonlyArray.ts +44 -38
- package/src/ReadonlyRecord.ts +13 -10
- package/src/STM.ts +47 -46
- package/src/SortedSet.ts +5 -5
- package/src/Stream.ts +51 -51
- package/src/Trie.ts +4 -4
- package/src/internal/cause.ts +16 -7
- package/src/internal/core-effect.ts +160 -162
- package/src/internal/core.ts +30 -34
- package/src/internal/fiberId.ts +18 -17
- package/src/internal/groupBy.ts +2 -1
- package/src/internal/hashMap.ts +5 -4
- package/src/internal/hashSet.ts +9 -8
- package/src/internal/schedule.ts +15 -12
- package/src/internal/stm/stm.ts +104 -124
- package/src/internal/stream.ts +106 -97
- package/src/internal/trie.ts +3 -2
- package/src/internal/version.ts +1 -1
package/src/ReadonlyArray.ts
CHANGED
|
@@ -19,6 +19,7 @@ import type { Predicate, Refinement } from "./Predicate.js"
|
|
|
19
19
|
import { isBoolean } from "./Predicate.js"
|
|
20
20
|
import * as RR from "./ReadonlyRecord.js"
|
|
21
21
|
import * as Tuple from "./Tuple.js"
|
|
22
|
+
import type { NoInfer } from "./Types.js"
|
|
22
23
|
|
|
23
24
|
/**
|
|
24
25
|
* @category type lambdas
|
|
@@ -559,8 +560,8 @@ export const takeRight: {
|
|
|
559
560
|
* @since 2.0.0
|
|
560
561
|
*/
|
|
561
562
|
export const takeWhile: {
|
|
562
|
-
<A, B extends A>(refinement: (a: A
|
|
563
|
-
<
|
|
563
|
+
<A, B extends A>(refinement: (a: NoInfer<A>, i: number) => a is B): (self: Iterable<A>) => Array<B>
|
|
564
|
+
<A>(predicate: (a: NoInfer<A>, i: number) => boolean): (self: Iterable<A>) => Array<A>
|
|
564
565
|
<A, B extends A>(self: Iterable<A>, refinement: (a: A, i: number) => a is B): Array<B>
|
|
565
566
|
<A>(self: Iterable<A>, predicate: (a: A, i: number) => boolean): Array<A>
|
|
566
567
|
} = dual(2, <A>(self: Iterable<A>, predicate: (a: A, i: number) => boolean): Array<A> => {
|
|
@@ -597,10 +598,10 @@ const spanIndex = <A>(self: Iterable<A>, predicate: (a: A, i: number) => boolean
|
|
|
597
598
|
* @since 2.0.0
|
|
598
599
|
*/
|
|
599
600
|
export const span: {
|
|
600
|
-
<
|
|
601
|
-
refinement: (a: A
|
|
602
|
-
): (self: Iterable<
|
|
603
|
-
<
|
|
601
|
+
<A, B extends A>(
|
|
602
|
+
refinement: (a: NoInfer<A>, i: number) => a is B
|
|
603
|
+
): (self: Iterable<A>) => [init: Array<B>, rest: Array<Exclude<A, B>>]
|
|
604
|
+
<A>(predicate: (a: NoInfer<A>, i: number) => boolean): (self: Iterable<A>) => [init: Array<A>, rest: Array<A>]
|
|
604
605
|
<A, B extends A>(
|
|
605
606
|
self: Iterable<A>,
|
|
606
607
|
refinement: (a: A, i: number) => a is B
|
|
@@ -651,7 +652,7 @@ export const dropRight: {
|
|
|
651
652
|
* @since 2.0.0
|
|
652
653
|
*/
|
|
653
654
|
export const dropWhile: {
|
|
654
|
-
<
|
|
655
|
+
<A>(predicate: (a: NoInfer<A>, i: number) => boolean): (self: Iterable<A>) => Array<A>
|
|
655
656
|
<A>(self: Iterable<A>, predicate: (a: A, i: number) => boolean): Array<A>
|
|
656
657
|
} = dual(
|
|
657
658
|
2,
|
|
@@ -666,7 +667,7 @@ export const dropWhile: {
|
|
|
666
667
|
* @since 2.0.0
|
|
667
668
|
*/
|
|
668
669
|
export const findFirstIndex: {
|
|
669
|
-
<A>(predicate: (a: A
|
|
670
|
+
<A>(predicate: (a: NoInfer<A>, i: number) => boolean): (self: Iterable<A>) => Option<number>
|
|
670
671
|
<A>(self: Iterable<A>, predicate: (a: A, i: number) => boolean): Option<number>
|
|
671
672
|
} = dual(2, <A>(self: Iterable<A>, predicate: (a: A, i: number) => boolean): Option<number> => {
|
|
672
673
|
let i = 0
|
|
@@ -686,7 +687,7 @@ export const findFirstIndex: {
|
|
|
686
687
|
* @since 2.0.0
|
|
687
688
|
*/
|
|
688
689
|
export const findLastIndex: {
|
|
689
|
-
<A>(predicate: (a: A
|
|
690
|
+
<A>(predicate: (a: NoInfer<A>, i: number) => boolean): (self: Iterable<A>) => Option<number>
|
|
690
691
|
<A>(self: Iterable<A>, predicate: (a: A, i: number) => boolean): Option<number>
|
|
691
692
|
} = dual(2, <A>(self: Iterable<A>, predicate: (a: A, i: number) => boolean): Option<number> => {
|
|
692
693
|
const input = fromIterable(self)
|
|
@@ -706,9 +707,9 @@ export const findLastIndex: {
|
|
|
706
707
|
* @since 2.0.0
|
|
707
708
|
*/
|
|
708
709
|
export const findFirst: {
|
|
709
|
-
<A, B>(f: (a: A
|
|
710
|
-
<A, B extends A>(refinement: (a: A
|
|
711
|
-
<
|
|
710
|
+
<A, B>(f: (a: NoInfer<A>, i: number) => Option<B>): (self: Iterable<A>) => Option<B>
|
|
711
|
+
<A, B extends A>(refinement: (a: NoInfer<A>, i: number) => a is B): (self: Iterable<A>) => Option<B>
|
|
712
|
+
<A>(predicate: (a: NoInfer<A>, i: number) => boolean): (self: Iterable<A>) => Option<A>
|
|
712
713
|
<A, B>(self: Iterable<A>, f: (a: A, i: number) => Option<B>): Option<B>
|
|
713
714
|
<A, B extends A>(self: Iterable<A>, refinement: (a: A, i: number) => a is B): Option<B>
|
|
714
715
|
<A>(self: Iterable<A>, predicate: (a: A, i: number) => boolean): Option<A>
|
|
@@ -740,9 +741,9 @@ export const findFirst: {
|
|
|
740
741
|
* @since 2.0.0
|
|
741
742
|
*/
|
|
742
743
|
export const findLast: {
|
|
743
|
-
<A, B>(f: (a: A
|
|
744
|
-
<A, B extends A>(refinement: (a: A
|
|
745
|
-
<
|
|
744
|
+
<A, B>(f: (a: NoInfer<A>, i: number) => Option<B>): (self: Iterable<A>) => Option<B>
|
|
745
|
+
<A, B extends A>(refinement: (a: NoInfer<A>, i: number) => a is B): (self: Iterable<A>) => Option<B>
|
|
746
|
+
<A>(predicate: (a: NoInfer<A>, i: number) => boolean): (self: Iterable<A>) => Option<A>
|
|
746
747
|
<A, B>(self: Iterable<A>, f: (a: A, i: number) => Option<B>): Option<B>
|
|
747
748
|
<A, B extends A>(self: Iterable<A>, refinement: (a: A, i: number) => a is B): Option<B>
|
|
748
749
|
<A>(self: Iterable<A>, predicate: (a: A, i: number) => boolean): Option<A>
|
|
@@ -896,12 +897,15 @@ export const sort: {
|
|
|
896
897
|
* @category elements
|
|
897
898
|
*/
|
|
898
899
|
export const sortWith: {
|
|
899
|
-
<
|
|
900
|
-
|
|
900
|
+
<S extends Iterable<any> | NonEmptyReadonlyArray<any>, B>(
|
|
901
|
+
f: (a: ReadonlyArray.Infer<S>) => B,
|
|
902
|
+
order: Order.Order<B>
|
|
903
|
+
): (self: S) => ReadonlyArray.With<S, ReadonlyArray.Infer<S>>
|
|
904
|
+
<A, B>(self: NonEmptyReadonlyArray<A>, f: (a: A) => B, O: Order.Order<B>): NonEmptyArray<A>
|
|
905
|
+
<A, B>(self: Iterable<A>, f: (a: A) => B, order: Order.Order<B>): Array<A>
|
|
901
906
|
} = dual(
|
|
902
907
|
3,
|
|
903
|
-
<A, B>(self:
|
|
904
|
-
sort(self, Order.mapInput(order, f))
|
|
908
|
+
<A, B>(self: Iterable<A>, f: (a: A) => B, order: Order.Order<B>): Array<A> => sort(self, Order.mapInput(order, f))
|
|
905
909
|
)
|
|
906
910
|
|
|
907
911
|
/**
|
|
@@ -1236,9 +1240,9 @@ export const split: {
|
|
|
1236
1240
|
* @since 2.0.0
|
|
1237
1241
|
*/
|
|
1238
1242
|
export const splitWhere: {
|
|
1239
|
-
<
|
|
1240
|
-
predicate: (a: A
|
|
1241
|
-
): (self: Iterable<
|
|
1243
|
+
<A>(
|
|
1244
|
+
predicate: (a: NoInfer<A>, i: number) => boolean
|
|
1245
|
+
): (self: Iterable<A>) => [beforeMatch: Array<A>, fromMatch: Array<A>]
|
|
1242
1246
|
<A>(self: Iterable<A>, predicate: (a: A, i: number) => boolean): [beforeMatch: Array<A>, fromMatch: Array<A>]
|
|
1243
1247
|
} = dual(
|
|
1244
1248
|
2,
|
|
@@ -1702,15 +1706,15 @@ export const getRights = <E, A>(self: Iterable<Either<E, A>>): Array<A> => {
|
|
|
1702
1706
|
* @since 2.0.0
|
|
1703
1707
|
*/
|
|
1704
1708
|
export const filter: {
|
|
1705
|
-
<A, B extends A>(refinement: (a: A
|
|
1706
|
-
<A
|
|
1709
|
+
<A, B extends A>(refinement: (a: NoInfer<A>, i: number) => a is B): (self: Iterable<A>) => Array<B>
|
|
1710
|
+
<A>(predicate: (a: NoInfer<A>, i: number) => boolean): (self: Iterable<A>) => Array<A>
|
|
1707
1711
|
<A, B extends A>(self: Iterable<A>, refinement: (a: A, i: number) => a is B): Array<B>
|
|
1708
1712
|
<A>(self: Iterable<A>, predicate: (a: A, i: number) => boolean): Array<A>
|
|
1709
1713
|
} = dual(
|
|
1710
1714
|
2,
|
|
1711
|
-
<
|
|
1715
|
+
<A>(self: Iterable<A>, predicate: (a: A, i: number) => boolean): Array<A> => {
|
|
1712
1716
|
const as = fromIterable(self)
|
|
1713
|
-
const out: Array<
|
|
1717
|
+
const out: Array<A> = []
|
|
1714
1718
|
for (let i = 0; i < as.length; i++) {
|
|
1715
1719
|
if (predicate(as[i], i)) {
|
|
1716
1720
|
out.push(as[i])
|
|
@@ -1727,12 +1731,12 @@ export const filter: {
|
|
|
1727
1731
|
* @since 2.0.0
|
|
1728
1732
|
*/
|
|
1729
1733
|
export const partition: {
|
|
1730
|
-
<
|
|
1731
|
-
self: Iterable<
|
|
1732
|
-
) => [excluded: Array<Exclude<
|
|
1733
|
-
<
|
|
1734
|
-
predicate: (a: A
|
|
1735
|
-
): (self: Iterable<
|
|
1734
|
+
<A, B extends A>(refinement: (a: NoInfer<A>, i: number) => a is B): (
|
|
1735
|
+
self: Iterable<A>
|
|
1736
|
+
) => [excluded: Array<Exclude<A, B>>, satisfying: Array<B>]
|
|
1737
|
+
<A>(
|
|
1738
|
+
predicate: (a: NoInfer<A>, i: number) => boolean
|
|
1739
|
+
): (self: Iterable<A>) => [excluded: Array<A>, satisfying: Array<A>]
|
|
1736
1740
|
<A, B extends A>(
|
|
1737
1741
|
self: Iterable<A>,
|
|
1738
1742
|
refinement: (a: A, i: number) => a is B
|
|
@@ -1793,7 +1797,7 @@ export const reduceRight: {
|
|
|
1793
1797
|
* @category lifting
|
|
1794
1798
|
* @since 2.0.0
|
|
1795
1799
|
*/
|
|
1796
|
-
export const liftPredicate: {
|
|
1800
|
+
export const liftPredicate: { // Note: I intentionally avoid using the NoInfer pattern here.
|
|
1797
1801
|
<A, B extends A>(refinement: Refinement<A, B>): (a: A) => Array<B>
|
|
1798
1802
|
<A>(predicate: Predicate<A>): <B extends A>(b: B) => Array<B>
|
|
1799
1803
|
} = <A>(predicate: Predicate<A>) => <B extends A>(b: B): Array<B> => predicate(b) ? [b] : []
|
|
@@ -1854,8 +1858,10 @@ export const liftEither = <A extends Array<unknown>, E, B>(
|
|
|
1854
1858
|
* @since 2.0.0
|
|
1855
1859
|
*/
|
|
1856
1860
|
export const every: {
|
|
1857
|
-
<A, B extends A>(
|
|
1858
|
-
|
|
1861
|
+
<A, B extends A>(
|
|
1862
|
+
refinement: (a: NoInfer<A>, i: number) => a is B
|
|
1863
|
+
): (self: ReadonlyArray<A>) => self is ReadonlyArray<B>
|
|
1864
|
+
<A>(predicate: (a: NoInfer<A>, i: number) => boolean): (self: ReadonlyArray<A>) => boolean
|
|
1859
1865
|
<A, B extends A>(self: ReadonlyArray<A>, refinement: (a: A, i: number) => a is B): self is ReadonlyArray<B>
|
|
1860
1866
|
<A>(self: ReadonlyArray<A>, predicate: (a: A, i: number) => boolean): boolean
|
|
1861
1867
|
} = dual(
|
|
@@ -1871,9 +1877,9 @@ export const every: {
|
|
|
1871
1877
|
* @since 2.0.0
|
|
1872
1878
|
*/
|
|
1873
1879
|
export const some: {
|
|
1874
|
-
<
|
|
1875
|
-
predicate: (a: A
|
|
1876
|
-
): (self: ReadonlyArray<
|
|
1880
|
+
<A>(
|
|
1881
|
+
predicate: (a: NoInfer<A>, i: number) => boolean
|
|
1882
|
+
): (self: ReadonlyArray<A>) => self is NonEmptyReadonlyArray<A>
|
|
1877
1883
|
<A>(self: ReadonlyArray<A>, predicate: (a: A, i: number) => boolean): self is NonEmptyReadonlyArray<A>
|
|
1878
1884
|
} = dual(
|
|
1879
1885
|
2,
|
package/src/ReadonlyRecord.ts
CHANGED
|
@@ -11,6 +11,7 @@ import type { Equivalence } from "./Equivalence.js"
|
|
|
11
11
|
import { dual, identity } from "./Function.js"
|
|
12
12
|
import type { TypeLambda } from "./HKT.js"
|
|
13
13
|
import * as Option from "./Option.js"
|
|
14
|
+
import type { NoInfer } from "./Types.js"
|
|
14
15
|
|
|
15
16
|
/**
|
|
16
17
|
* @category models
|
|
@@ -527,10 +528,12 @@ export const filterMap: {
|
|
|
527
528
|
* @since 2.0.0
|
|
528
529
|
*/
|
|
529
530
|
export const filter: {
|
|
530
|
-
<K extends string, A, B extends A>(
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
531
|
+
<K extends string, A, B extends A>(
|
|
532
|
+
refinement: (a: NoInfer<A>, key: K) => a is B
|
|
533
|
+
): (self: Record<K, A>) => Record<string, B>
|
|
534
|
+
<K extends string, A>(
|
|
535
|
+
predicate: (A: NoInfer<A>, key: K) => boolean
|
|
536
|
+
): (self: Record<K, A>) => Record<string, A>
|
|
534
537
|
<K extends string, A, B extends A>(self: Record<K, A>, refinement: (a: A, key: K) => a is B): Record<string, B>
|
|
535
538
|
<K extends string, A>(self: Record<K, A>, predicate: (a: A, key: K) => boolean): Record<string, A>
|
|
536
539
|
} = dual(
|
|
@@ -709,12 +712,12 @@ export const separate: <A, B>(
|
|
|
709
712
|
* @since 2.0.0
|
|
710
713
|
*/
|
|
711
714
|
export const partition: {
|
|
712
|
-
<K extends string,
|
|
713
|
-
self: Record<K,
|
|
714
|
-
) => [excluded: Record<string, Exclude<
|
|
715
|
-
<K extends string,
|
|
716
|
-
predicate: (a: A
|
|
717
|
-
): (self: Record<K,
|
|
715
|
+
<K extends string, A, B extends A>(refinement: (a: NoInfer<A>, key: K) => a is B): (
|
|
716
|
+
self: Record<K, A>
|
|
717
|
+
) => [excluded: Record<string, Exclude<A, B>>, satisfying: Record<string, B>]
|
|
718
|
+
<K extends string, A>(
|
|
719
|
+
predicate: (a: NoInfer<A>, key: K) => boolean
|
|
720
|
+
): (self: Record<K, A>) => [excluded: Record<string, A>, satisfying: Record<string, A>]
|
|
718
721
|
<K extends string, A, B extends A>(
|
|
719
722
|
self: Record<K, A>,
|
|
720
723
|
refinement: (a: A, key: K) => a is B
|
package/src/STM.ts
CHANGED
|
@@ -14,7 +14,7 @@ import * as stm from "./internal/stm/stm.js"
|
|
|
14
14
|
import type * as Option from "./Option.js"
|
|
15
15
|
import type { Pipeable } from "./Pipeable.js"
|
|
16
16
|
import type { Predicate, Refinement } from "./Predicate.js"
|
|
17
|
-
import type
|
|
17
|
+
import type { Covariant, NoInfer } from "./Types.js"
|
|
18
18
|
import type * as Unify from "./Unify.js"
|
|
19
19
|
|
|
20
20
|
/**
|
|
@@ -140,9 +140,9 @@ export declare namespace STM {
|
|
|
140
140
|
*/
|
|
141
141
|
export interface Variance<out R, out E, out A> {
|
|
142
142
|
readonly [STMTypeId]: {
|
|
143
|
-
readonly _R:
|
|
144
|
-
readonly _E:
|
|
145
|
-
readonly _A:
|
|
143
|
+
readonly _R: Covariant<R>
|
|
144
|
+
readonly _E: Covariant<E>
|
|
145
|
+
readonly _A: Covariant<A>
|
|
146
146
|
}
|
|
147
147
|
}
|
|
148
148
|
}
|
|
@@ -550,7 +550,7 @@ export const eventually: <R, E, A>(self: STM<R, E, A>) => STM<R, E, A> = stm.eve
|
|
|
550
550
|
* @category constructors
|
|
551
551
|
*/
|
|
552
552
|
export const every: {
|
|
553
|
-
<A, R, E>(predicate: (a: A) => STM<R, E, boolean>): (iterable: Iterable<A>) => STM<R, E, boolean>
|
|
553
|
+
<A, R, E>(predicate: (a: NoInfer<A>) => STM<R, E, boolean>): (iterable: Iterable<A>) => STM<R, E, boolean>
|
|
554
554
|
<A, R, E>(iterable: Iterable<A>, predicate: (a: A) => STM<R, E, boolean>): STM<R, E, boolean>
|
|
555
555
|
} = stm.every
|
|
556
556
|
|
|
@@ -562,7 +562,7 @@ export const every: {
|
|
|
562
562
|
* @category constructors
|
|
563
563
|
*/
|
|
564
564
|
export const exists: {
|
|
565
|
-
<A, R, E>(predicate: (a: A) => STM<R, E, boolean>): (iterable: Iterable<A>) => STM<R, E, boolean>
|
|
565
|
+
<A, R, E>(predicate: (a: NoInfer<A>) => STM<R, E, boolean>): (iterable: Iterable<A>) => STM<R, E, boolean>
|
|
566
566
|
<A, R, E>(iterable: Iterable<A>, predicate: (a: A) => STM<R, E, boolean>): STM<R, E, boolean>
|
|
567
567
|
} = stm.exists
|
|
568
568
|
|
|
@@ -597,7 +597,7 @@ export const fiberId: STM<never, never, FiberId.FiberId> = stm.fiberId
|
|
|
597
597
|
* @category constructors
|
|
598
598
|
*/
|
|
599
599
|
export const filter: {
|
|
600
|
-
<A, R, E>(predicate: (a: A) => STM<R, E, boolean>): (iterable: Iterable<A>) => STM<R, E, Array<A>>
|
|
600
|
+
<A, R, E>(predicate: (a: NoInfer<A>) => STM<R, E, boolean>): (iterable: Iterable<A>) => STM<R, E, Array<A>>
|
|
601
601
|
<A, R, E>(iterable: Iterable<A>, predicate: (a: A) => STM<R, E, boolean>): STM<R, E, Array<A>>
|
|
602
602
|
} = stm.filter
|
|
603
603
|
|
|
@@ -609,7 +609,7 @@ export const filter: {
|
|
|
609
609
|
* @category constructors
|
|
610
610
|
*/
|
|
611
611
|
export const filterNot: {
|
|
612
|
-
<A, R, E>(predicate: (a: A) => STM<R, E, boolean>): (iterable: Iterable<A>) => STM<R, E, Array<A>>
|
|
612
|
+
<A, R, E>(predicate: (a: NoInfer<A>) => STM<R, E, boolean>): (iterable: Iterable<A>) => STM<R, E, Array<A>>
|
|
613
613
|
<A, R, E>(iterable: Iterable<A>, predicate: (a: A) => STM<R, E, boolean>): STM<R, E, Array<A>>
|
|
614
614
|
} = stm.filterNot
|
|
615
615
|
|
|
@@ -620,10 +620,13 @@ export const filterNot: {
|
|
|
620
620
|
* @category filtering
|
|
621
621
|
*/
|
|
622
622
|
export const filterOrDie: {
|
|
623
|
-
<A, B extends A>(
|
|
624
|
-
|
|
623
|
+
<A, B extends A>(
|
|
624
|
+
refinement: Refinement<NoInfer<A>, B>,
|
|
625
|
+
defect: LazyArg<unknown>
|
|
626
|
+
): <R, E>(self: STM<R, E, A>) => STM<R, E, B>
|
|
627
|
+
<A>(predicate: Predicate<NoInfer<A>>, defect: LazyArg<unknown>): <R, E>(self: STM<R, E, A>) => STM<R, E, A>
|
|
625
628
|
<R, E, A, B extends A>(self: STM<R, E, A>, refinement: Refinement<A, B>, defect: LazyArg<unknown>): STM<R, E, B>
|
|
626
|
-
<R, E, A
|
|
629
|
+
<R, E, A>(self: STM<R, E, A>, predicate: Predicate<A>, defect: LazyArg<unknown>): STM<R, E, A>
|
|
627
630
|
} = stm.filterOrDie
|
|
628
631
|
|
|
629
632
|
/**
|
|
@@ -634,10 +637,10 @@ export const filterOrDie: {
|
|
|
634
637
|
* @category filtering
|
|
635
638
|
*/
|
|
636
639
|
export const filterOrDieMessage: {
|
|
637
|
-
<A, B extends A>(refinement: Refinement<A
|
|
638
|
-
<A
|
|
640
|
+
<A, B extends A>(refinement: Refinement<NoInfer<A>, B>, message: string): <R, E>(self: STM<R, E, A>) => STM<R, E, B>
|
|
641
|
+
<A>(predicate: Predicate<NoInfer<A>>, message: string): <R, E>(self: STM<R, E, A>) => STM<R, E, A>
|
|
639
642
|
<R, E, A, B extends A>(self: STM<R, E, A>, refinement: Refinement<A, B>, message: string): STM<R, E, B>
|
|
640
|
-
<R, E, A
|
|
643
|
+
<R, E, A>(self: STM<R, E, A>, predicate: Predicate<A>, message: string): STM<R, E, A>
|
|
641
644
|
} = stm.filterOrDieMessage
|
|
642
645
|
|
|
643
646
|
/**
|
|
@@ -647,24 +650,24 @@ export const filterOrDieMessage: {
|
|
|
647
650
|
* @category filtering
|
|
648
651
|
*/
|
|
649
652
|
export const filterOrElse: {
|
|
650
|
-
<A, B extends A,
|
|
651
|
-
refinement: Refinement<A
|
|
652
|
-
orElse: (a:
|
|
653
|
-
): <R, E>(self: STM<R, E, A>) => STM<R2 | R, E2 | E, B |
|
|
654
|
-
<A,
|
|
655
|
-
predicate: Predicate<
|
|
656
|
-
orElse: (a:
|
|
657
|
-
): <R, E>(self: STM<R, E, A>) => STM<R2 | R, E2 | E, A |
|
|
658
|
-
<R, E, A, B extends A,
|
|
653
|
+
<A, B extends A, R2, E2, C>(
|
|
654
|
+
refinement: Refinement<NoInfer<A>, B>,
|
|
655
|
+
orElse: (a: NoInfer<A>) => STM<R2, E2, C>
|
|
656
|
+
): <R, E>(self: STM<R, E, A>) => STM<R2 | R, E2 | E, B | C>
|
|
657
|
+
<A, R2, E2, B>(
|
|
658
|
+
predicate: Predicate<NoInfer<A>>,
|
|
659
|
+
orElse: (a: NoInfer<A>) => STM<R2, E2, B>
|
|
660
|
+
): <R, E>(self: STM<R, E, A>) => STM<R2 | R, E2 | E, A | B>
|
|
661
|
+
<R, E, A, B extends A, R2, E2, C>(
|
|
659
662
|
self: STM<R, E, A>,
|
|
660
663
|
refinement: Refinement<A, B>,
|
|
661
|
-
orElse: (a:
|
|
662
|
-
): STM<R | R2, E | E2, B |
|
|
663
|
-
<R, E, A,
|
|
664
|
+
orElse: (a: A) => STM<R2, E2, C>
|
|
665
|
+
): STM<R | R2, E | E2, B | C>
|
|
666
|
+
<R, E, A, R2, E2, B>(
|
|
664
667
|
self: STM<R, E, A>,
|
|
665
|
-
predicate: Predicate<
|
|
666
|
-
orElse: (a:
|
|
667
|
-
): STM<R | R2, E | E2, A |
|
|
668
|
+
predicate: Predicate<A>,
|
|
669
|
+
orElse: (a: A) => STM<R2, E2, B>
|
|
670
|
+
): STM<R | R2, E | E2, A | B>
|
|
668
671
|
} = stm.filterOrElse
|
|
669
672
|
|
|
670
673
|
/**
|
|
@@ -674,24 +677,20 @@ export const filterOrElse: {
|
|
|
674
677
|
* @category filtering
|
|
675
678
|
*/
|
|
676
679
|
export const filterOrFail: {
|
|
677
|
-
<A, B extends A,
|
|
678
|
-
refinement: Refinement<A
|
|
679
|
-
orFailWith: (a:
|
|
680
|
+
<A, B extends A, E2>(
|
|
681
|
+
refinement: Refinement<NoInfer<A>, B>,
|
|
682
|
+
orFailWith: (a: NoInfer<A>) => E2
|
|
680
683
|
): <R, E>(self: STM<R, E, A>) => STM<R, E2 | E, B>
|
|
681
|
-
<A,
|
|
682
|
-
predicate: Predicate<
|
|
683
|
-
orFailWith: (a:
|
|
684
|
+
<A, E2>(
|
|
685
|
+
predicate: Predicate<NoInfer<A>>,
|
|
686
|
+
orFailWith: (a: NoInfer<A>) => E2
|
|
684
687
|
): <R, E>(self: STM<R, E, A>) => STM<R, E2 | E, A>
|
|
685
|
-
<R, E, A, B extends A,
|
|
688
|
+
<R, E, A, B extends A, E2>(
|
|
686
689
|
self: STM<R, E, A>,
|
|
687
690
|
refinement: Refinement<A, B>,
|
|
688
|
-
orFailWith: (a:
|
|
691
|
+
orFailWith: (a: A) => E2
|
|
689
692
|
): STM<R, E | E2, B>
|
|
690
|
-
<R, E, A,
|
|
691
|
-
self: STM<R, E, A>,
|
|
692
|
-
predicate: Predicate<X>,
|
|
693
|
-
orFailWith: (a: Y) => E2
|
|
694
|
-
): STM<R, E | E2, A>
|
|
693
|
+
<R, E, A, E2>(self: STM<R, E, A>, predicate: Predicate<A>, orFailWith: (a: A) => E2): STM<R, E | E2, A>
|
|
695
694
|
} = stm.filterOrFail
|
|
696
695
|
|
|
697
696
|
/**
|
|
@@ -1723,7 +1722,9 @@ export const retry: STM<never, never, never> = core.retry
|
|
|
1723
1722
|
* @category mutations
|
|
1724
1723
|
*/
|
|
1725
1724
|
export const retryUntil: {
|
|
1725
|
+
<A, B extends A>(refinement: Refinement<NoInfer<A>, B>): <R, E>(self: STM<R, E, A>) => STM<R, E, B>
|
|
1726
1726
|
<A>(predicate: Predicate<A>): <R, E>(self: STM<R, E, A>) => STM<R, E, A>
|
|
1727
|
+
<R, E, A, B extends A>(self: STM<R, E, A>, refinement: Refinement<A, B>): STM<R, E, B>
|
|
1727
1728
|
<R, E, A>(self: STM<R, E, A>, predicate: Predicate<A>): STM<R, E, A>
|
|
1728
1729
|
} = stm.retryUntil
|
|
1729
1730
|
|
|
@@ -1817,8 +1818,8 @@ export const sync: <A>(evaluate: () => A) => STM<never, never, A> = core.sync
|
|
|
1817
1818
|
* @category sequencing
|
|
1818
1819
|
*/
|
|
1819
1820
|
export const tap: {
|
|
1820
|
-
<A,
|
|
1821
|
-
<R, E, A,
|
|
1821
|
+
<A, R2, E2, _>(f: (a: A) => STM<R2, E2, _>): <R, E>(self: STM<R, E, A>) => STM<R2 | R, E2 | E, A>
|
|
1822
|
+
<R, E, A, R2, E2, _>(self: STM<R, E, A>, f: (a: A) => STM<R2, E2, _>): STM<R | R2, E | E2, A>
|
|
1822
1823
|
} = stm.tap
|
|
1823
1824
|
|
|
1824
1825
|
/**
|
|
@@ -1850,8 +1851,8 @@ export const tapBoth: {
|
|
|
1850
1851
|
* @category sequencing
|
|
1851
1852
|
*/
|
|
1852
1853
|
export const tapError: {
|
|
1853
|
-
<E,
|
|
1854
|
-
<R, A, E,
|
|
1854
|
+
<E, R2, E2, _>(f: (error: NoInfer<E>) => STM<R2, E2, _>): <R, A>(self: STM<R, E, A>) => STM<R2 | R, E | E2, A>
|
|
1855
|
+
<R, A, E, R2, E2, _>(self: STM<R, E, A>, f: (error: E) => STM<R2, E2, _>): STM<R | R2, E | E2, A>
|
|
1855
1856
|
} = stm.tapError
|
|
1856
1857
|
|
|
1857
1858
|
const try_: {
|
package/src/SortedSet.ts
CHANGED
|
@@ -13,7 +13,7 @@ import { pipeArguments } from "./Pipeable.js"
|
|
|
13
13
|
import type { Predicate } from "./Predicate.js"
|
|
14
14
|
import { hasProperty } from "./Predicate.js"
|
|
15
15
|
import * as RBT from "./RedBlackTree.js"
|
|
16
|
-
import type
|
|
16
|
+
import type { Invariant, NoInfer } from "./Types.js"
|
|
17
17
|
|
|
18
18
|
const TypeId: unique symbol = Symbol.for("effect/SortedSet")
|
|
19
19
|
|
|
@@ -29,7 +29,7 @@ export type TypeId = typeof TypeId
|
|
|
29
29
|
*/
|
|
30
30
|
export interface SortedSet<in out A> extends Iterable<A>, Equal.Equal, Pipeable, Inspectable {
|
|
31
31
|
readonly [TypeId]: {
|
|
32
|
-
readonly _A:
|
|
32
|
+
readonly _A: Invariant<A>
|
|
33
33
|
}
|
|
34
34
|
/** @internal */
|
|
35
35
|
readonly keyTree: RBT.RedBlackTree<A, boolean>
|
|
@@ -279,9 +279,9 @@ export const map: {
|
|
|
279
279
|
* @category filtering
|
|
280
280
|
*/
|
|
281
281
|
export const partition: {
|
|
282
|
-
<
|
|
283
|
-
predicate: (a: A) => boolean
|
|
284
|
-
): (self: SortedSet<
|
|
282
|
+
<A>(
|
|
283
|
+
predicate: (a: NoInfer<A>) => boolean
|
|
284
|
+
): (self: SortedSet<A>) => [excluded: SortedSet<A>, satisfying: SortedSet<A>]
|
|
285
285
|
<A>(self: SortedSet<A>, predicate: (a: A) => boolean): [excluded: SortedSet<A>, satisfying: SortedSet<A>]
|
|
286
286
|
} = Dual.dual(
|
|
287
287
|
2,
|