@fncts/io 0.0.25 → 0.0.27

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. package/IO/api/whenFiberRef.d.ts +10 -0
  2. package/IO/api/whenRef.d.ts +10 -0
  3. package/IO/api/zipConcurrent.d.ts +5 -4
  4. package/IO/api.d.ts +12 -1
  5. package/IO.d.ts +2 -0
  6. package/RefSubject/Atomic.d.ts +1 -0
  7. package/RefSubject/Synchronized/definition.d.ts +1 -0
  8. package/RefSubject/definition.d.ts +1 -0
  9. package/_cjs/IO/api/whenFiberRef.cjs +20 -0
  10. package/_cjs/IO/api/whenFiberRef.cjs.map +1 -0
  11. package/_cjs/IO/api/whenRef.cjs +21 -0
  12. package/_cjs/IO/api/whenRef.cjs.map +1 -0
  13. package/_cjs/IO/api/zipConcurrent.cjs +25 -18
  14. package/_cjs/IO/api/zipConcurrent.cjs.map +1 -1
  15. package/_cjs/IO/api.cjs +21 -5
  16. package/_cjs/IO/api.cjs.map +1 -1
  17. package/_cjs/IO.cjs +22 -0
  18. package/_cjs/IO.cjs.map +1 -1
  19. package/_cjs/RefSubject/Atomic.cjs +6 -3
  20. package/_cjs/RefSubject/Atomic.cjs.map +1 -1
  21. package/_cjs/RefSubject/Synchronized/definition.cjs +3 -0
  22. package/_cjs/RefSubject/Synchronized/definition.cjs.map +1 -1
  23. package/_cjs/RefSubject/api.cjs +3 -0
  24. package/_cjs/RefSubject/api.cjs.map +1 -1
  25. package/_cjs/RefSubject/definition.cjs.map +1 -1
  26. package/_mjs/IO/api/whenFiberRef.mjs +12 -0
  27. package/_mjs/IO/api/whenFiberRef.mjs.map +1 -0
  28. package/_mjs/IO/api/whenRef.mjs +13 -0
  29. package/_mjs/IO/api/whenRef.mjs.map +1 -0
  30. package/_mjs/IO/api/zipConcurrent.mjs +23 -16
  31. package/_mjs/IO/api/zipConcurrent.mjs.map +1 -1
  32. package/_mjs/IO/api.mjs +16 -3
  33. package/_mjs/IO/api.mjs.map +1 -1
  34. package/_mjs/IO.mjs +2 -0
  35. package/_mjs/IO.mjs.map +1 -1
  36. package/_mjs/RefSubject/Atomic.mjs +6 -3
  37. package/_mjs/RefSubject/Atomic.mjs.map +1 -1
  38. package/_mjs/RefSubject/Synchronized/definition.mjs +3 -0
  39. package/_mjs/RefSubject/Synchronized/definition.mjs.map +1 -1
  40. package/_mjs/RefSubject/api.mjs +3 -0
  41. package/_mjs/RefSubject/api.mjs.map +1 -1
  42. package/_mjs/RefSubject/definition.mjs.map +1 -1
  43. package/_src/IO/api/whenFiberRef.ts +9 -0
  44. package/_src/IO/api/whenRef.ts +9 -0
  45. package/_src/IO/api/zipConcurrent.ts +40 -42
  46. package/_src/IO/api.ts +18 -2
  47. package/_src/IO.ts +2 -0
  48. package/_src/RefSubject/Atomic.ts +4 -0
  49. package/_src/RefSubject/Synchronized/definition.ts +4 -0
  50. package/_src/RefSubject/api.ts +4 -0
  51. package/_src/RefSubject/definition.ts +2 -0
  52. package/package.json +2 -2
@@ -74,6 +74,9 @@ class Dimap extends RefSubjectInternal {
74
74
  failCause(cause) {
75
75
  return this.ref.failCause(cause);
76
76
  }
77
+ get unsafeGet() {
78
+ return this.g(this.ref.unsafeGet);
79
+ }
77
80
  }
78
81
  /**
79
82
  * Transforms both the `set` and `get` values of the `Ref` with the
@@ -1 +1 @@
1
- {"version":3,"file":"api.mjs","mappings":"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","names":["unsafeMake","dimap","modify","tuple","Emitter","AtomicRefSubject","RefSubjectInternal","concrete","initial","make","tsplus_module_1","unsafeMake_1","get","self","__tsplusTrace","set","a","Dimap","constructor","ref","f","g","end","value","c","o","run","emitter","tsplus_module_2","emit","cause","failCause","contramap","dimap_1","map","modifyJust","def","modify_1","tsplus_module_4","getAndSet","a0","getAndUpdate","getAndUpdateJust","update","undefined","updateAndGet","r","updateJust","updateJustAndGet"],"sourceRoot":"","sources":["../../_src/RefSubject/api.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"api.mjs","mappings":"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","names":["unsafeMake","dimap","modify","tuple","Emitter","AtomicRefSubject","RefSubjectInternal","concrete","initial","make","tsplus_module_1","unsafeMake_1","get","self","__tsplusTrace","set","a","Dimap","constructor","ref","f","g","end","value","c","o","run","emitter","tsplus_module_2","emit","cause","failCause","unsafeGet","contramap","dimap_1","map","modifyJust","def","modify_1","tsplus_module_4","getAndSet","a0","getAndUpdate","getAndUpdateJust","update","undefined","updateAndGet","r","updateJust","updateJustAndGet"],"sourceRoot":"","sources":["../../_src/RefSubject/api.ts"],"sourcesContent":[null]}
@@ -1 +1 @@
1
- {"version":3,"file":"definition.mjs","mappings":";AAKA,SAASA,UAAU,QAAQ,aAAY;AACvC,SAASC,YAAY,QAAQ,aAAY;AACzC,SAASC,WAAW,QAAQ,YAAW;AAYvC,OAAO,MAAMC,UAAU,GAAkB,EAAE;AAM3C,OAAM,MAAgBC,kBAAkB;EAAxCC;IAQW,QAAY,GAAeL,UAAU;EA4BhD;;KA5BYA,UAAU;AA8BtB;;;AAGA,OAAM,SAAUM,QAAQ,CAAaC,CAAyB;EAC5D;AAAA","names":["PushTypeId","PushVariance","RefVariance","RefSubject","RefSubjectInternal","constructor","concrete","_"],"sourceRoot":"","sources":["../../_src/RefSubject/definition.ts"],"sourcesContent":[null]}
1
+ {"version":3,"file":"definition.mjs","mappings":";AAKA,SAASA,UAAU,QAAQ,aAAY;AACvC,SAASC,YAAY,QAAQ,aAAY;AACzC,SAASC,WAAW,QAAQ,YAAW;AAYvC,OAAO,MAAMC,UAAU,GAAkB,EAAE;AAM3C,OAAM,MAAgBC,kBAAkB;EAAxCC;IAQW,QAAY,GAAeL,UAAU;EA8BhD;;KA9BYA,UAAU;AAgCtB;;;AAGA,OAAM,SAAUM,QAAQ,CAAaC,CAAyB;EAC5D;AAAA","names":["PushTypeId","PushVariance","RefVariance","RefSubject","RefSubjectInternal","constructor","concrete","_"],"sourceRoot":"","sources":["../../_src/RefSubject/definition.ts"],"sourcesContent":[null]}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @tsplus pipeable fncts.io.IO whenFiberRef
3
+ * @tsplus static fncts.io.IOOps whenFiberRef
4
+ */
5
+ export function whenFiberRef<S>(ref: FiberRef<S>, f: Predicate<S>, __tsplusTrace?: string) {
6
+ return <R, E, A>(self: IO<R, E, A>): IO<R, E, Maybe<A>> => {
7
+ return self.whenIO(ref.get.map(f));
8
+ };
9
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @tsplus pipeable fncts.io.IO whenRef
3
+ * @tsplus static fncts.io.IOOps whenRef
4
+ */
5
+ export function whenRef<S>(ref: Ref<S>, f: Predicate<S>) {
6
+ return <R, E, A>(self: IO<R, E, A>): IO<R, E, Maybe<A>> => {
7
+ return self.whenIO(ref.get.map(f));
8
+ };
9
+ }
@@ -1,4 +1,8 @@
1
+ import type { InterruptibilityRestorer } from "./interrupt.js";
2
+ import type { Grafter } from "./transplant.js";
3
+
1
4
  import { tuple } from "@fncts/base/data/function";
5
+ import { AtomicBoolean } from "@fncts/base/internal/AtomicBoolean";
2
6
  import { AtomicReference } from "@fncts/base/internal/AtomicReference";
3
7
 
4
8
  /**
@@ -17,53 +21,47 @@ export function zipWithConcurrent<A, R1, E1, B, C>(that: IO<R1, E1, B>, f: (a: A
17
21
  return <R, E>(self: IO<R, E, A>): IO<R | R1, E | E1, C> => {
18
22
  return IO.fiberId.flatMap((fiberId) =>
19
23
  IO.uninterruptibleMask((restore) => {
20
- const future = Future.unsafeMake<void, C>(FiberId.none);
21
- const ref = new AtomicReference<Maybe<Either<A, B>>>(Nothing());
22
- return IO.transplant((graft) =>
23
- graft(
24
- restore(self).matchCauseIO(
25
- (cause) => future.fail(undefined) > IO.failCauseNow(cause),
26
- (a) =>
27
- ref.getAndSet(Just(Either.left(a))).match(
28
- () => IO.unit,
29
- (value) =>
30
- value.match(
31
- () => IO.unit,
32
- (b) => future.succeed(f(a, b)).asUnit,
33
- ),
34
- ),
35
- ),
36
- )
37
- .forkDaemon.zip(
38
- graft(
39
- restore(that).matchCauseIO(
40
- (cause) => future.fail(undefined) > IO.failCauseNow(cause),
41
- (b) =>
42
- ref.getAndSet(Just(Either.right(b))).match(
43
- () => IO.unit,
44
- (value) =>
45
- value.match(
46
- (a) => future.succeed(f(a, b)).asUnit,
47
- () => IO.unit,
48
- ),
49
- ),
50
- ),
51
- ).forkDaemon,
52
- )
24
+ return IO.transplant((graft) => {
25
+ const future = Future.unsafeMake<void, void>(FiberId.none);
26
+ const ref = new AtomicBoolean(false);
27
+ return fork(self, restore, graft, future, ref)
28
+ .zip(fork(that, restore, graft, future, ref))
53
29
  .flatMap(([left, right]) =>
54
30
  restore(future.await).matchCauseIO(
55
31
  (cause) =>
56
- left
57
- .interruptAs(fiberId)
58
- .zipConcurrent(right.interruptAs(fiberId))
59
- .flatMap(([left, right]) =>
60
- left.zipConcurrent(right).match(IO.failCauseNow, () => IO.failCauseNow(cause.stripFailures)),
61
- ),
62
- (c) => left.inheritRefs.zip(right.inheritRefs).as(c),
32
+ left.interruptFork >
33
+ right.interruptFork >
34
+ left.await.zip(right.await).flatMap(([left, right]) =>
35
+ left
36
+ .zipWithCause(right, f, (a, b) => Cause.both(a, b))
37
+ .match(
38
+ (causes) => IO.refailCause(Cause.both(cause.stripFailures, causes)),
39
+ () => IO.refailCause(cause.stripFailures),
40
+ ),
41
+ ),
42
+ () => left.join.zipWith(right.join, f),
63
43
  ),
64
- ),
65
- );
44
+ );
45
+ });
66
46
  }),
67
47
  );
68
48
  };
69
49
  }
50
+
51
+ function fork<R, E, A, C>(
52
+ io: Lazy<IO<R, E, A>>,
53
+ restore: InterruptibilityRestorer,
54
+ graft: Grafter,
55
+ future: Future<void, void>,
56
+ ref: AtomicBoolean,
57
+ ): IO<R, never, Fiber<E, A>> {
58
+ return graft(restore(io())).matchCauseIO(
59
+ (cause) => future.fail(undefined) > IO.refailCause(cause),
60
+ (a) => {
61
+ if (ref.getAndSet(true)) {
62
+ future.unsafeDone(IO.unit);
63
+ }
64
+ return IO.succeedNow(a);
65
+ },
66
+ ).forkDaemon;
67
+ }
package/_src/IO/api.ts CHANGED
@@ -1061,6 +1061,16 @@ export function left<A>(a: Lazy<A>, __tsplusTrace?: string): UIO<Either<A, never
1061
1061
  return IO.succeed(a).flatMap((a) => IO.succeedNow(Either.left(a)));
1062
1062
  }
1063
1063
 
1064
+ /**
1065
+ * @tsplus getter fncts.io.IO just
1066
+ */
1067
+ export function just<R, E, A>(self: IO<R, E, Maybe<A>>): IO<R, Maybe<E>, A> {
1068
+ return self.matchIO(
1069
+ (e) => IO.fail(Just(e)),
1070
+ (a) => a.match(() => IO.fail(Nothing()), IO.succeedNow),
1071
+ );
1072
+ }
1073
+
1064
1074
  /**
1065
1075
  * @tsplus static fncts.io.IOOps log
1066
1076
  */
@@ -1291,6 +1301,11 @@ export function mergeAll<R, E, A, B>(
1291
1301
  return fas.foldLeft(IO.succeed(b) as IO<R, E, B>, (b, a) => b.zipWith(a, f));
1292
1302
  }
1293
1303
 
1304
+ /**
1305
+ * @tsplus static fncts.io.IOOps nothing
1306
+ */
1307
+ export const nothing = IO.succeedNow(Nothing());
1308
+
1294
1309
  /**
1295
1310
  * Converts an option on errors into an option on values.
1296
1311
  *
@@ -1871,10 +1886,11 @@ export function when(b: Lazy<boolean>, __tsplusTrace?: string) {
1871
1886
  * The moral equivalent of `if (p) exp` when `p` has side-effects
1872
1887
  *
1873
1888
  * @tsplus pipeable fncts.io.IO whenIO
1889
+ * @tsplus static fncts.io.IOOps whenIO
1874
1890
  */
1875
1891
  export function whenIO<R1, E1>(mb: IO<R1, E1, boolean>, __tsplusTrace?: string) {
1876
- return <R, E, A>(ma: IO<R, E, A>): IO<R1 | R, E | E1, void> => {
1877
- return mb.flatMap((b) => (b ? ma.asUnit : IO.unit));
1892
+ return <R, E, A>(ma: IO<R, E, A>): IO<R1 | R, E | E1, Maybe<A>> => {
1893
+ return mb.flatMap((b) => (b ? ma.asJust : IO.nothing));
1878
1894
  };
1879
1895
  }
1880
1896
 
package/_src/IO.ts CHANGED
@@ -55,6 +55,8 @@ export * from "./IO/api/stateful.js";
55
55
  export * from "./IO/api/supervised.js";
56
56
  export * from "./IO/api/timeout.js";
57
57
  export * from "./IO/api/transplant.js";
58
+ export * from "./IO/api/whenFiberRef.js";
59
+ export * from "./IO/api/whenRef.js";
58
60
  export * from "./IO/api/withChildren.js";
59
61
  export * from "./IO/api/withEarlyRelease.js";
60
62
  export * from "./IO/api/withFinalizer.js";
@@ -63,6 +63,10 @@ export class AtomicRefSubject<E, A> extends RefSubjectInternal<never, E, A, A> {
63
63
  unsafeEnd(): void {
64
64
  return this.stream.end.unsafeRunAsync();
65
65
  }
66
+
67
+ get unsafeGet(): A {
68
+ return this.ref.unsafeGet;
69
+ }
66
70
  }
67
71
 
68
72
  class AtomicDimapRef<A, B> extends Atomic<B> {
@@ -69,4 +69,8 @@ export class SynchronizedRefSubjectInternal<R, E, A, B>
69
69
  withPermit<R, E, A>(io: IO<R, E, A>, __tsplusTrace?: string): IO<R, E, A> {
70
70
  return this.semaphore.withPermit(io);
71
71
  }
72
+
73
+ get unsafeGet(): B {
74
+ return this.ref.unsafeGet;
75
+ }
72
76
  }
@@ -83,6 +83,10 @@ class Dimap<R, E, A, B, C, D> extends RefSubjectInternal<R, E, C, D> {
83
83
  }
84
84
 
85
85
  end: IO<R, never, void> = this.ref.end;
86
+
87
+ get unsafeGet(): D {
88
+ return this.g(this.ref.unsafeGet);
89
+ }
86
90
  }
87
91
 
88
92
  /**
@@ -59,6 +59,8 @@ export abstract class RefSubjectInternal<R, E, A, B>
59
59
  abstract emit(value: A): IO<R, never, void>;
60
60
 
61
61
  abstract end: IO<R, never, void>;
62
+
63
+ abstract get unsafeGet(): B;
62
64
  }
63
65
 
64
66
  /**
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@fncts/io",
3
- "version": "0.0.25",
3
+ "version": "0.0.27",
4
4
  "dependencies": {
5
- "@fncts/base": "0.0.23",
5
+ "@fncts/base": "0.0.24",
6
6
  "@fncts/transformers": "0.0.4",
7
7
  "@fncts/typelevel": "0.0.15"
8
8
  },