@fncts/io 0.0.9 → 0.0.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (105) hide show
  1. package/Channel/api.d.ts +27 -4
  2. package/Channel/internal/MergeDecision.d.ts +14 -0
  3. package/IO/runtime.d.ts +8 -1
  4. package/STM/api.d.ts +7 -0
  5. package/Sink/api.d.ts +637 -8
  6. package/TReentrantLock/api.d.ts +97 -0
  7. package/TReentrantLock/definition.d.ts +65 -0
  8. package/TReentrantLock.d.ts +2 -0
  9. package/_cjs/Cached/api.cjs +1 -1
  10. package/_cjs/Cached/api.cjs.map +1 -1
  11. package/_cjs/Channel/api/mapOutIOC.cjs +1 -1
  12. package/_cjs/Channel/api/mapOutIOC.cjs.map +1 -1
  13. package/_cjs/Channel/api/mergeAllWith.cjs +2 -2
  14. package/_cjs/Channel/api/mergeAllWith.cjs.map +1 -1
  15. package/_cjs/Channel/api/mergeWith.cjs +1 -1
  16. package/_cjs/Channel/api/mergeWith.cjs.map +1 -1
  17. package/_cjs/Channel/api.cjs +87 -32
  18. package/_cjs/Channel/api.cjs.map +1 -1
  19. package/_cjs/Channel/internal/MergeDecision.cjs +11 -2
  20. package/_cjs/Channel/internal/MergeDecision.cjs.map +1 -1
  21. package/_cjs/IO/api/foreachC.cjs +2 -2
  22. package/_cjs/IO/api/foreachC.cjs.map +1 -1
  23. package/_cjs/IO/runtime.cjs +18 -7
  24. package/_cjs/IO/runtime.cjs.map +1 -1
  25. package/_cjs/STM/api.cjs +15 -6
  26. package/_cjs/STM/api.cjs.map +1 -1
  27. package/_cjs/Sink/api.cjs +1475 -42
  28. package/_cjs/Sink/api.cjs.map +1 -1
  29. package/_cjs/Stream/api.cjs +29 -29
  30. package/_cjs/Stream/api.cjs.map +1 -1
  31. package/_cjs/TReentrantLock/api.cjs +297 -0
  32. package/_cjs/TReentrantLock/api.cjs.map +1 -0
  33. package/_cjs/TReentrantLock/definition.cjs +125 -0
  34. package/_cjs/TReentrantLock/definition.cjs.map +1 -0
  35. package/_cjs/TReentrantLock.cjs +32 -0
  36. package/_cjs/TReentrantLock.cjs.map +1 -0
  37. package/_cjs/collection/immutable/Conc/dropUntilIO.cjs +38 -0
  38. package/_cjs/collection/immutable/Conc/dropUntilIO.cjs.map +1 -0
  39. package/_cjs/collection/immutable/Conc/dropWhileIO.cjs +38 -0
  40. package/_cjs/collection/immutable/Conc/dropWhileIO.cjs.map +1 -0
  41. package/_cjs/collection/immutable/Conc/filterIO.cjs +35 -0
  42. package/_cjs/collection/immutable/Conc/filterIO.cjs.map +1 -0
  43. package/_cjs/collection/immutable/Conc.cjs +13 -0
  44. package/_cjs/collection/immutable/Conc.cjs.map +1 -1
  45. package/_cjs/demo.cjs +15 -0
  46. package/_cjs/demo.cjs.map +1 -0
  47. package/_mjs/Cached/api.mjs +1 -1
  48. package/_mjs/Cached/api.mjs.map +1 -1
  49. package/_mjs/Channel/api/mapOutIOC.mjs +1 -1
  50. package/_mjs/Channel/api/mapOutIOC.mjs.map +1 -1
  51. package/_mjs/Channel/api/mergeAllWith.mjs +2 -2
  52. package/_mjs/Channel/api/mergeAllWith.mjs.map +1 -1
  53. package/_mjs/Channel/api/mergeWith.mjs +1 -1
  54. package/_mjs/Channel/api/mergeWith.mjs.map +1 -1
  55. package/_mjs/Channel/api.mjs +75 -30
  56. package/_mjs/Channel/api.mjs.map +1 -1
  57. package/_mjs/Channel/internal/MergeDecision.mjs +7 -0
  58. package/_mjs/Channel/internal/MergeDecision.mjs.map +1 -1
  59. package/_mjs/IO/api/foreachC.mjs +2 -2
  60. package/_mjs/IO/api/foreachC.mjs.map +1 -1
  61. package/_mjs/IO/runtime.mjs +15 -5
  62. package/_mjs/IO/runtime.mjs.map +1 -1
  63. package/_mjs/STM/api.mjs +13 -6
  64. package/_mjs/STM/api.mjs.map +1 -1
  65. package/_mjs/Sink/api.mjs +1287 -37
  66. package/_mjs/Sink/api.mjs.map +1 -1
  67. package/_mjs/Stream/api.mjs +29 -29
  68. package/_mjs/Stream/api.mjs.map +1 -1
  69. package/_mjs/TReentrantLock/api.mjs +243 -0
  70. package/_mjs/TReentrantLock/api.mjs.map +1 -0
  71. package/_mjs/TReentrantLock/definition.mjs +102 -0
  72. package/_mjs/TReentrantLock/definition.mjs.map +1 -0
  73. package/_mjs/TReentrantLock.mjs +4 -0
  74. package/_mjs/TReentrantLock.mjs.map +1 -0
  75. package/_mjs/collection/immutable/Conc/dropUntilIO.mjs +26 -0
  76. package/_mjs/collection/immutable/Conc/dropUntilIO.mjs.map +1 -0
  77. package/_mjs/collection/immutable/Conc/dropWhileIO.mjs +26 -0
  78. package/_mjs/collection/immutable/Conc/dropWhileIO.mjs.map +1 -0
  79. package/_mjs/collection/immutable/Conc/filterIO.mjs +22 -0
  80. package/_mjs/collection/immutable/Conc/filterIO.mjs.map +1 -0
  81. package/_mjs/collection/immutable/Conc.mjs +1 -0
  82. package/_mjs/collection/immutable/Conc.mjs.map +1 -1
  83. package/_mjs/demo.mjs +7 -0
  84. package/_mjs/demo.mjs.map +1 -0
  85. package/_src/Channel/api.ts +98 -11
  86. package/_src/Channel/internal/MergeDecision.ts +15 -0
  87. package/_src/IO/api.ts +1 -1
  88. package/_src/IO/runtime.ts +18 -11
  89. package/_src/STM/api.ts +9 -0
  90. package/_src/Sink/api.ts +1725 -36
  91. package/_src/TFuture/definition.ts +1 -1
  92. package/_src/TReentrantLock/api.ts +193 -0
  93. package/_src/TReentrantLock/definition.ts +86 -0
  94. package/_src/TReentrantLock.ts +4 -0
  95. package/_src/collection/immutable/Conc/dropUntilIO.ts +24 -0
  96. package/_src/collection/immutable/Conc/dropWhileIO.ts +26 -0
  97. package/_src/collection/immutable/Conc/filterIO.ts +16 -0
  98. package/_src/collection/immutable/Conc.ts +1 -0
  99. package/_src/demo.ts +6 -0
  100. package/collection/immutable/Conc/dropUntilIO.d.ts +7 -0
  101. package/collection/immutable/Conc/dropWhileIO.d.ts +7 -0
  102. package/collection/immutable/Conc/filterIO.d.ts +7 -0
  103. package/collection/immutable/Conc.d.ts +1 -0
  104. package/demo.d.ts +1 -0
  105. package/package.json +3 -3
package/Channel/api.d.ts CHANGED
@@ -12,6 +12,7 @@ import { Queue } from "@fncts/io/Queue/definition";
12
12
  import { FiberId } from "@fncts/base/data/FiberId";
13
13
  import { Has } from "@fncts/base/typeclass/Has";
14
14
  import { Scope } from "@fncts/io/Scope/definition";
15
+ import { Hub } from "@fncts/io/Hub/definition";
15
16
  import type { AsyncInputConsumer } from "@fncts/io/Channel/internal/AsyncInputConsumer";
16
17
  import type { AsyncInputProducer } from "@fncts/io/Channel/internal/AsyncInputProducer";
17
18
  import type { UpstreamPullRequest } from "@fncts/io/Channel/UpstreamPullRequest";
@@ -88,6 +89,11 @@ export declare function catchAll_<Env, Env1, InErr, InErr1, InElem, InElem1, InD
88
89
  * @tsplus location "@fncts/io/Channel/api"
89
90
  */
90
91
  export declare function catchAllCause_<Env, Env1, InErr, InErr1, InElem, InElem1, InDone, InDone1, OutErr, OutErr1, OutElem, OutElem1, OutDone, OutDone1>(self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>, f: (cause: Cause<OutErr>) => Channel<Env1, InErr1, InElem1, InDone1, OutErr1, OutElem1, OutDone1>): Channel<Env & Env1, InErr & InErr1, InElem & InElem1, InDone & InDone1, OutErr1, OutElem | OutElem1, OutDone | OutDone1>;
92
+ /**
93
+ * @tsplus getter fncts.io.Channel collectElements
94
+ * @tsplus location "@fncts/io/Channel/api"
95
+ */
96
+ export declare function collectElements<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>(self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>): Channel<Env, InErr, InElem, InDone, OutErr, never, readonly [Conc<OutElem>, OutDone]>;
91
97
  /**
92
98
  * @tsplus getter fncts.io.Channel concatAll
93
99
  * @tsplus location "@fncts/io/Channel/api"
@@ -246,7 +252,7 @@ export declare function fromQueue<Err, Elem, Done>(queue: Queue.Dequeue<Either<E
246
252
  * @tsplus fluent fncts.io.Channel provideEnvironment
247
253
  * @tsplus location "@fncts/io/Channel/api"
248
254
  */
249
- export declare function provideEnvironment_<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>(self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>, env: Environment<Env>): Channel<unknown, InErr, InElem, InDone, OutErr, OutElem, OutDone>;
255
+ export declare function provideEnvironment_<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>(self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>, env: Lazy<Environment<Env>>): Channel<unknown, InErr, InElem, InDone, OutErr, OutElem, OutDone>;
250
256
  /**
251
257
  * @tsplus fluent fncts.io.Channel contramapEnvironment
252
258
  * @tsplus location "@fncts/io/Channel/api"
@@ -318,6 +324,12 @@ export declare function mapOutIO_<Env, Env1, InErr, InElem, InDone, OutErr, OutE
318
324
  * @tsplus location "@fncts/io/Channel/api"
319
325
  */
320
326
  export declare function matchCauseChannel_<Env, Env1, Env2, InErr, InErr1, InErr2, InElem, InElem1, InElem2, InDone, InDone1, InDone2, OutErr, OutErr2, OutErr3, OutElem, OutElem1, OutElem2, OutDone, OutDone2, OutDone3>(channel: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>, onError: (c: Cause<OutErr>) => Channel<Env1, InErr1, InElem1, InDone1, OutErr2, OutElem1, OutDone2>, onSuccess: (o: OutDone) => Channel<Env2, InErr2, InElem2, InDone2, OutErr3, OutElem2, OutDone3>): Channel<Env & Env1 & Env2, InErr & InErr1 & InErr2, InElem & InElem1 & InElem2, InDone & InDone1 & InDone2, OutErr2 | OutErr3, OutElem | OutElem1 | OutElem2, OutDone2 | OutDone3>;
327
+ /**
328
+ * Fold the channel exposing success and full error cause
329
+ * @tsplus fluent fncts.io.Channel matchChannel
330
+ * @tsplus location "@fncts/io/Channel/api"
331
+ */
332
+ export declare function matchChannel_<Env, Env1, Env2, InErr, InErr1, InErr2, InElem, InElem1, InElem2, InDone, InDone1, InDone2, OutErr, OutErr2, OutErr3, OutElem, OutElem1, OutElem2, OutDone, OutDone2, OutDone3>(channel: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>, onError: (e: OutErr) => Channel<Env1, InErr1, InElem1, InDone1, OutErr2, OutElem1, OutDone2>, onSuccess: (o: OutDone) => Channel<Env2, InErr2, InElem2, InDone2, OutErr3, OutElem2, OutDone3>): Channel<Env & Env1 & Env2, InErr & InErr1 & InErr2, InElem & InElem1 & InElem2, InDone & InDone1 & InDone2, OutErr2 | OutErr3, OutElem | OutElem1 | OutElem2, OutDone2 | OutDone3>;
321
333
  export declare const never: Channel<unknown, unknown, unknown, unknown, never, never, never>;
322
334
  /**
323
335
  * Returns a new channel that will perform the operations of this one, until failure, and then
@@ -339,6 +351,7 @@ export declare function orHaltWith_<Env, InErr, InElem, InDone, OutErr, OutElem,
339
351
  /**
340
352
  * Pipe the output of a channel into the input of another
341
353
  * @tsplus fluent fncts.io.Channel pipeTo
354
+ * @tsplus operator fncts.io.Channel >>>
342
355
  * @tsplus location "@fncts/io/Channel/api"
343
356
  */
344
357
  export declare function pipeTo_<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone, Env1, OutErr1, OutElem1, OutDone1>(left: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>, right: Channel<Env1, OutErr, OutElem, OutDone, OutErr1, OutElem1, OutDone1>): Channel<Env & Env1, InErr, InElem, InDone, OutErr1, OutElem1, OutDone1>;
@@ -376,10 +389,10 @@ export declare function readWith<Env, Env1, Env2, InErr, InElem, InDone, OutErr,
376
389
  */
377
390
  export declare function repeated<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>(self: Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>): Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>;
378
391
  /**
379
- * @tsplus static fncts.io.Channel toQueue
392
+ * @tsplus static fncts.io.ChannelOps toQueue
380
393
  * @tsplus location "@fncts/io/Channel/api"
381
394
  */
382
- export declare function toQueue<Err, Done, Elem>(queue: Queue.Enqueue<Either<Exit<Err, Done>, Elem>>): Channel<unknown, Err, Elem, Done, never, never, any>;
395
+ export declare function toQueue<Err, Done, Elem>(queue: Lazy<Queue.Enqueue<Either<Exit<Err, Done>, Elem>>>): Channel<unknown, Err, Elem, Done, never, never, unknown>;
383
396
  /**
384
397
  * Writes an output to the channel
385
398
  * @tsplus static fncts.io.ChannelOps write
@@ -418,4 +431,14 @@ export declare function unwrap<R, E, Env, InErr, InElem, InDone, OutErr, OutElem
418
431
  * @tsplus static fncts.io.ChannelOps unwrapScoped
419
432
  * @tsplus location "@fncts/io/Channel/api"
420
433
  */
421
- export declare function unwrapScoped<R, E, Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>(self: IO<R & Has<Scope>, E, Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>>): Channel<R & Env, InErr, InElem, InDone, E | OutErr, OutElem, OutDone>;
434
+ export declare function unwrapScoped<R, E, Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>(self: Lazy<IO<R & Has<Scope>, E, Channel<Env, InErr, InElem, InDone, OutErr, OutElem, OutDone>>>): Channel<R & Env, InErr, InElem, InDone, E | OutErr, OutElem, OutDone>;
435
+ /**
436
+ * @tsplus static fncts.io.ChannelOps fromHubScoped
437
+ * @tsplus location "@fncts/io/Channel/api"
438
+ */
439
+ export declare function fromHubScoped<Err, Done, Elem>(hub: Lazy<Hub<Either<Exit<Err, Done>, Elem>>>): IO<Has<Scope>, never, Channel<unknown, unknown, unknown, unknown, Err, Elem, Done>>;
440
+ /**
441
+ * @tsplus static fncts.io.ChannelOps toHub
442
+ * @tsplus location "@fncts/io/Channel/api"
443
+ */
444
+ export declare function toHub<Err, Done, Elem>(hub: Lazy<Hub<Either<Exit<Err, Done>, Elem>>>): Channel<unknown, Err, Elem, Done, never, never, unknown>;
@@ -18,6 +18,20 @@ export declare abstract class MergeDecision<R, E0, Z0, E, Z> {
18
18
  readonly _E: () => E;
19
19
  readonly _Z: () => Z;
20
20
  }
21
+ /**
22
+ * @tsplus unify fncts.io.Channel.MergeDecision
23
+ */
24
+ export declare function unifyMergeDecision<X extends MergeDecision<any, any, any, any, any>>(_: X): MergeDecision<[
25
+ X
26
+ ] extends [MergeDecision<infer R, any, any, any, any>] ? R : never, [
27
+ X
28
+ ] extends [MergeDecision<any, infer E0, any, any, any>] ? E0 : never, [
29
+ X
30
+ ] extends [MergeDecision<any, any, infer Z0, any, any>] ? Z0 : never, [
31
+ X
32
+ ] extends [MergeDecision<any, any, any, infer E, any>] ? E : never, [
33
+ X
34
+ ] extends [MergeDecision<any, any, any, any, infer Z>] ? Z : never>;
21
35
  /**
22
36
  * @tsplus fluent fncts.io.Channel.MergeDecision concrete
23
37
  * @tsplus macro remove
package/IO/runtime.d.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  import { Environment } from "@fncts/base/data/Environment";
2
2
  import { RuntimeConfig } from "@fncts/io/RuntimeConfig";
3
3
  import { IO, URIO } from "@fncts/io/IO/definition";
4
- import { Exit } from "@fncts/base/data/Exit";
5
4
  import { FiberId } from "@fncts/base/data/FiberId";
6
5
  import { TraceElement } from "@fncts/base/data/TraceElement/definition";
7
6
  import { InterruptStatus } from "@fncts/io/InterruptStatus";
@@ -11,10 +10,13 @@ import { Cons } from "@fncts/base/collection/immutable/List";
11
10
  import { FiberScope } from "@fncts/io/FiberScope/definition";
12
11
  import { Supervisor } from "@fncts/io/Supervisor/definition";
13
12
  import { Nothing } from "@fncts/base/data/Maybe";
13
+ import { Exit } from "@fncts/base/data/Exit";
14
+ import { FiberContext } from "@fncts/io/Fiber";
14
15
  export declare class Runtime<R> {
15
16
  readonly environment: Environment<R>;
16
17
  readonly runtimeConfig: RuntimeConfig;
17
18
  constructor(environment: Environment<R>, runtimeConfig: RuntimeConfig);
19
+ unsafeRunFiber: <E, A>(io: import("@fncts/io/IO/definition").IO<R, E, A>, __tsplusTrace?: string) => FiberContext<E, A>;
18
20
  unsafeRunWith: <E, A>(io: import("@fncts/io/IO/definition").IO<R, E, A>, k: (exit: import("@fncts/base/data/Exit").Exit<E, A>) => any, __tsplusTrace?: string) => (fiberId: FiberId) => (f: (exit: import("@fncts/base/data/Exit").Exit<E, A>) => any) => void;
19
21
  unsafeRunAsync: <E, A>(io: import("@fncts/io/IO/definition").IO<R, E, A>, __tsplusTrace?: string) => void;
20
22
  unsafeRunAsyncWith: <E, A>(io: import("@fncts/io/IO/definition").IO<R, E, A>, k: (exit: import("@fncts/base/data/Exit").Exit<E, A>) => any, __tsplusTrace?: string) => void;
@@ -27,6 +29,11 @@ export declare class Runtime<R> {
27
29
  export declare function runtime<R>(__tsplusTrace?: string): URIO<R, Runtime<R>>;
28
30
  export declare const defaultRuntimeConfig: import("../RuntimeConfig").RuntimeConfig;
29
31
  export declare const defaultRuntime: Runtime<unknown>;
32
+ /**
33
+ * @tsplus fluent fncts.io.IO unsafeRunFiber
34
+ * @tsplus location "@fncts/io/IO/runtime"
35
+ */
36
+ export declare const unsafeRunFiber: <E, A>(io: import("@fncts/io/IO/definition").IO<unknown, E, A>, __tsplusTrace?: string) => FiberContext<E, A>;
30
37
  /**
31
38
  * @tsplus fluent fncts.io.IO unsafeRunAsync
32
39
  * @tsplus location "@fncts/io/IO/runtime"
package/STM/api.d.ts CHANGED
@@ -1,10 +1,12 @@
1
1
  import { Lazy } from "@fncts/base/data/function";
2
2
  import { Maybe } from "@fncts/base/data/Maybe";
3
3
  import { Either } from "@fncts/base/data/Either";
4
+ import { FiberId } from "@fncts/base/data/FiberId";
4
5
  import { IO } from "@fncts/io/IO/definition";
5
6
  import { Environment } from "@fncts/base/data/Environment";
6
7
  import { Refinement } from "@fncts/base/data/Refinement";
7
8
  import { Predicate } from "@fncts/base/data/Predicate";
9
+ import type { Journal } from "./internal/Journal.js";
8
10
  import { STM } from "./definition.js";
9
11
  /**
10
12
  * Maps the success value of this effect to the specified constant value.
@@ -31,6 +33,11 @@ export declare function asJustError<R, E, A>(stm: STM<R, E, A>): STM<R, Maybe<E>
31
33
  * @tsplus location "@fncts/io/STM/api"
32
34
  */
33
35
  export declare function absolve<R, E, E1, A>(z: STM<R, E, Either<E1, A>>): STM<R, E | E1, A>;
36
+ /**
37
+ * @tsplus static fncts.io.STMOps Effect
38
+ * @tsplus location "@fncts/io/STM/api"
39
+ */
40
+ export declare function makeEffect<R, E, A>(f: (journal: Journal, fiberId: FiberId, r: R) => A): STM<R, E, A>;
34
41
  /**
35
42
  * Retrieves the environment inside an stm.
36
43
  * @tsplus static fncts.io.STMOps environment