@fncts/io 0.0.17 → 0.0.19

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.
Files changed (219) hide show
  1. package/Cached/internal.d.ts +1 -1
  2. package/CancellerState.d.ts +1 -1
  3. package/Channel/ChildExecutorDecision/definition.d.ts +1 -1
  4. package/Channel/UpstreamPullRequest/definition.d.ts +1 -1
  5. package/Channel/UpstreamPullStrategy/definition.d.ts +1 -1
  6. package/Channel/api/mergeAllWith.d.ts +1 -1
  7. package/Channel/internal/ChannelExecutor.d.ts +1 -1
  8. package/Channel/internal/ChannelState.d.ts +2 -2
  9. package/Channel/internal/MergeDecision.d.ts +1 -1
  10. package/Channel/internal/MergeState.d.ts +1 -1
  11. package/Channel/internal/SingleProducerAsyncInput.d.ts +1 -1
  12. package/Clock/definition.d.ts +1 -0
  13. package/Fiber/FiberContext.d.ts +22 -19
  14. package/Fiber/api/interruptAll.d.ts +1 -1
  15. package/Fiber/api/interruptAsFork.d.ts +8 -0
  16. package/Fiber/definition.d.ts +6 -8
  17. package/FiberRef/api.d.ts +7 -2
  18. package/FiberRef/definition.d.ts +4 -3
  19. package/FiberRef/unsafe.d.ts +18 -1
  20. package/FiberRefs/api.d.ts +5 -0
  21. package/FiberRefs/definition.d.ts +1 -1
  22. package/FiberState/definition.d.ts +2 -2
  23. package/FiberStatus/definition.d.ts +1 -1
  24. package/Future/definition.d.ts +1 -1
  25. package/Hub/definition.d.ts +1 -1
  26. package/IO/api/core-scope.d.ts +4 -3
  27. package/IO/api/interrupt.d.ts +2 -2
  28. package/IO/api/supervised.d.ts +10 -0
  29. package/IO/api.d.ts +7 -10
  30. package/IO/definition.d.ts +16 -139
  31. package/IO.d.ts +1 -0
  32. package/IOEnv/definition.d.ts +1 -1
  33. package/Layer/definition.d.ts +2 -2
  34. package/Ref/definition.d.ts +3 -3
  35. package/Reloadable/api.d.ts +21 -0
  36. package/Reloadable/constructors.d.ts +23 -0
  37. package/Reloadable/definition.d.ts +20 -0
  38. package/Reloadable.d.ts +3 -0
  39. package/RuntimeConfig.d.ts +1 -1
  40. package/STM/definition.d.ts +5 -5
  41. package/STM/internal/CommitState.d.ts +1 -1
  42. package/STM/internal/Entry.d.ts +2 -2
  43. package/STM/internal/Journal.d.ts +6 -6
  44. package/STM/internal/TryCommit.d.ts +2 -2
  45. package/STM/internal/Versioned.d.ts +1 -1
  46. package/Schedule/Decision.d.ts +1 -1
  47. package/Scope/ReleaseMap/definition.d.ts +1 -1
  48. package/Scope/definition.d.ts +2 -2
  49. package/ScopedRef/definition.d.ts +1 -1
  50. package/State/internal.d.ts +1 -1
  51. package/Stream/api.d.ts +1 -1
  52. package/Stream/definition.d.ts +1 -1
  53. package/Stream/internal/DebounceState.d.ts +4 -4
  54. package/Stream/internal/Handoff.d.ts +5 -5
  55. package/Stream/internal/Pull.d.ts +1 -1
  56. package/Stream/internal/SinkEndReason.d.ts +1 -1
  57. package/TExit/definition.d.ts +3 -3
  58. package/TReentrantLock/definition.d.ts +1 -1
  59. package/TRef/definition.d.ts +1 -1
  60. package/TxnId.d.ts +1 -1
  61. package/_cjs/Clock/definition.cjs +2 -1
  62. package/_cjs/Clock/definition.cjs.map +1 -1
  63. package/_cjs/Console/definition.cjs +1 -1
  64. package/_cjs/Console/definition.cjs.map +1 -1
  65. package/_cjs/Fiber/FiberContext.cjs +180 -310
  66. package/_cjs/Fiber/FiberContext.cjs.map +1 -1
  67. package/_cjs/Fiber/api/collectAll.cjs +2 -2
  68. package/_cjs/Fiber/api/collectAll.cjs.map +1 -1
  69. package/_cjs/Fiber/api/interrupt.cjs +4 -2
  70. package/_cjs/Fiber/api/interrupt.cjs.map +1 -1
  71. package/_cjs/Fiber/api/interruptAll.cjs +8 -8
  72. package/_cjs/Fiber/api/interruptAll.cjs.map +1 -1
  73. package/_cjs/Fiber/api/interruptAs.cjs +7 -1
  74. package/_cjs/Fiber/api/interruptAs.cjs.map +1 -1
  75. package/_cjs/Fiber/api/interruptAsFork.cjs +15 -0
  76. package/_cjs/Fiber/api/interruptAsFork.cjs.map +1 -0
  77. package/_cjs/Fiber/api/interruptFork.cjs +5 -5
  78. package/_cjs/Fiber/api/interruptFork.cjs.map +1 -1
  79. package/_cjs/Fiber/definition.cjs +2 -2
  80. package/_cjs/Fiber/definition.cjs.map +1 -1
  81. package/_cjs/FiberRef/api.cjs +29 -10
  82. package/_cjs/FiberRef/api.cjs.map +1 -1
  83. package/_cjs/FiberRef/definition.cjs +2 -1
  84. package/_cjs/FiberRef/definition.cjs.map +1 -1
  85. package/_cjs/FiberRef/unsafe.cjs +29 -5
  86. package/_cjs/FiberRef/unsafe.cjs.map +1 -1
  87. package/_cjs/FiberRefs/api.cjs +28 -2
  88. package/_cjs/FiberRefs/api.cjs.map +1 -1
  89. package/_cjs/FiberRefs/join.cjs +1 -1
  90. package/_cjs/FiberRefs/join.cjs.map +1 -1
  91. package/_cjs/IO/api/core-scope.cjs +23 -15
  92. package/_cjs/IO/api/core-scope.cjs.map +1 -1
  93. package/_cjs/IO/api/ensuringChildren.cjs +4 -2
  94. package/_cjs/IO/api/ensuringChildren.cjs.map +1 -1
  95. package/_cjs/IO/api/interrupt.cjs +21 -11
  96. package/_cjs/IO/api/interrupt.cjs.map +1 -1
  97. package/_cjs/IO/api/supervised.cjs +26 -0
  98. package/_cjs/IO/api/supervised.cjs.map +1 -0
  99. package/_cjs/IO/api/withChildren.cjs +4 -2
  100. package/_cjs/IO/api/withChildren.cjs.map +1 -1
  101. package/_cjs/IO/api/zipC.cjs +10 -8
  102. package/_cjs/IO/api/zipC.cjs.map +1 -1
  103. package/_cjs/IO/api.cjs +67 -63
  104. package/_cjs/IO/api.cjs.map +1 -1
  105. package/_cjs/IO/definition.cjs +8 -226
  106. package/_cjs/IO/definition.cjs.map +1 -1
  107. package/_cjs/IO/runtime.cjs +7 -9
  108. package/_cjs/IO/runtime.cjs.map +1 -1
  109. package/_cjs/IO.cjs +13 -0
  110. package/_cjs/IO.cjs.map +1 -1
  111. package/_cjs/Layer/api.cjs +1 -1
  112. package/_cjs/Layer/api.cjs.map +1 -1
  113. package/_cjs/Random/definition.cjs +1 -1
  114. package/_cjs/Random/definition.cjs.map +1 -1
  115. package/_cjs/Reloadable/api.cjs +46 -0
  116. package/_cjs/Reloadable/api.cjs.map +1 -0
  117. package/_cjs/Reloadable/constructors.cjs +82 -0
  118. package/_cjs/Reloadable/constructors.cjs.map +1 -0
  119. package/_cjs/Reloadable/definition.cjs +58 -0
  120. package/_cjs/Reloadable/definition.cjs.map +1 -0
  121. package/_cjs/Reloadable.cjs +45 -0
  122. package/_cjs/Reloadable.cjs.map +1 -0
  123. package/_cjs/Scope/definition.cjs +1 -1
  124. package/_cjs/Scope/definition.cjs.map +1 -1
  125. package/_cjs/internal/IsFatal.cjs +129 -0
  126. package/_cjs/internal/IsFatal.cjs.map +1 -0
  127. package/_mjs/Clock/definition.mjs +2 -1
  128. package/_mjs/Clock/definition.mjs.map +1 -1
  129. package/_mjs/Console/definition.mjs +1 -1
  130. package/_mjs/Console/definition.mjs.map +1 -1
  131. package/_mjs/Fiber/FiberContext.mjs +180 -309
  132. package/_mjs/Fiber/FiberContext.mjs.map +1 -1
  133. package/_mjs/Fiber/api/collectAll.mjs +2 -2
  134. package/_mjs/Fiber/api/collectAll.mjs.map +1 -1
  135. package/_mjs/Fiber/api/interrupt.mjs +3 -2
  136. package/_mjs/Fiber/api/interrupt.mjs.map +1 -1
  137. package/_mjs/Fiber/api/interruptAll.mjs +6 -6
  138. package/_mjs/Fiber/api/interruptAll.mjs.map +1 -1
  139. package/_mjs/Fiber/api/interruptAs.mjs +3 -1
  140. package/_mjs/Fiber/api/interruptAs.mjs.map +1 -1
  141. package/_mjs/Fiber/api/interruptAsFork.mjs +8 -0
  142. package/_mjs/Fiber/api/interruptAsFork.mjs.map +1 -0
  143. package/_mjs/Fiber/api/interruptFork.mjs +5 -4
  144. package/_mjs/Fiber/api/interruptFork.mjs.map +1 -1
  145. package/_mjs/Fiber/definition.mjs +2 -2
  146. package/_mjs/Fiber/definition.mjs.map +1 -1
  147. package/_mjs/FiberRef/api.mjs +26 -9
  148. package/_mjs/FiberRef/api.mjs.map +1 -1
  149. package/_mjs/FiberRef/definition.mjs +2 -1
  150. package/_mjs/FiberRef/definition.mjs.map +1 -1
  151. package/_mjs/FiberRef/unsafe.mjs +23 -4
  152. package/_mjs/FiberRef/unsafe.mjs.map +1 -1
  153. package/_mjs/FiberRefs/api.mjs +22 -1
  154. package/_mjs/FiberRefs/api.mjs.map +1 -1
  155. package/_mjs/FiberRefs/join.mjs +1 -1
  156. package/_mjs/FiberRefs/join.mjs.map +1 -1
  157. package/_mjs/IO/api/core-scope.mjs +21 -16
  158. package/_mjs/IO/api/core-scope.mjs.map +1 -1
  159. package/_mjs/IO/api/ensuringChildren.mjs +3 -2
  160. package/_mjs/IO/api/ensuringChildren.mjs.map +1 -1
  161. package/_mjs/IO/api/interrupt.mjs +18 -9
  162. package/_mjs/IO/api/interrupt.mjs.map +1 -1
  163. package/_mjs/IO/api/supervised.mjs +14 -0
  164. package/_mjs/IO/api/supervised.mjs.map +1 -0
  165. package/_mjs/IO/api/withChildren.mjs +3 -2
  166. package/_mjs/IO/api/withChildren.mjs.map +1 -1
  167. package/_mjs/IO/api/zipC.mjs +9 -8
  168. package/_mjs/IO/api/zipC.mjs.map +1 -1
  169. package/_mjs/IO/api.mjs +66 -60
  170. package/_mjs/IO/api.mjs.map +1 -1
  171. package/_mjs/IO/definition.mjs +5 -184
  172. package/_mjs/IO/definition.mjs.map +1 -1
  173. package/_mjs/IO/runtime.mjs +7 -8
  174. package/_mjs/IO/runtime.mjs.map +1 -1
  175. package/_mjs/IO.mjs +1 -0
  176. package/_mjs/IO.mjs.map +1 -1
  177. package/_mjs/Layer/api.mjs +1 -1
  178. package/_mjs/Layer/api.mjs.map +1 -1
  179. package/_mjs/Random/definition.mjs +1 -1
  180. package/_mjs/Random/definition.mjs.map +1 -1
  181. package/_mjs/Reloadable/api.mjs +30 -0
  182. package/_mjs/Reloadable/api.mjs.map +1 -0
  183. package/_mjs/Reloadable/constructors.mjs +55 -0
  184. package/_mjs/Reloadable/constructors.mjs.map +1 -0
  185. package/_mjs/Reloadable/definition.mjs +40 -0
  186. package/_mjs/Reloadable/definition.mjs.map +1 -0
  187. package/_mjs/Reloadable.mjs +5 -0
  188. package/_mjs/Reloadable.mjs.map +1 -0
  189. package/_mjs/Scope/definition.mjs +1 -1
  190. package/_mjs/Scope/definition.mjs.map +1 -1
  191. package/_mjs/internal/IsFatal.mjs +104 -0
  192. package/_mjs/internal/IsFatal.mjs.map +1 -0
  193. package/_src/Clock/definition.ts +1 -0
  194. package/_src/Fiber/FiberContext.ts +50 -135
  195. package/_src/Fiber/api/collectAll.ts +1 -4
  196. package/_src/Fiber/api/interruptAll.ts +2 -2
  197. package/_src/Fiber/api/interruptAs.ts +1 -1
  198. package/_src/Fiber/api/interruptAsFork.ts +7 -0
  199. package/_src/Fiber/api/interruptFork.ts +1 -1
  200. package/_src/Fiber/definition.ts +3 -5
  201. package/_src/FiberRef/api.ts +30 -7
  202. package/_src/FiberRef/definition.ts +1 -0
  203. package/_src/FiberRef/unsafe.ts +27 -3
  204. package/_src/FiberRefs/api.ts +16 -0
  205. package/_src/FiberRefs/join.ts +1 -1
  206. package/_src/IO/api/core-scope.ts +12 -10
  207. package/_src/IO/api/interrupt.ts +8 -3
  208. package/_src/IO/api/supervised.ts +14 -0
  209. package/_src/IO/api.ts +25 -26
  210. package/_src/IO/definition.ts +8 -158
  211. package/_src/IO/runtime.ts +7 -11
  212. package/_src/IO.ts +1 -0
  213. package/_src/Reloadable/api.ts +28 -0
  214. package/_src/Reloadable/constructors.ts +60 -0
  215. package/_src/Reloadable/definition.ts +34 -0
  216. package/_src/Reloadable.ts +5 -0
  217. package/_src/internal/IsFatal.ts +79 -0
  218. package/internal/IsFatal.d.ts +47 -0
  219. package/package.json +4 -4
@@ -0,0 +1,34 @@
1
+ import { IterableWeakMap } from "@fncts/base/collection/weak/IterableWeakMap";
2
+
3
+ /**
4
+ * @tsplus type fncts.io.Reloadable
5
+ * @tsplus companion fncts.io.ReloadableOps
6
+ */
7
+ export class Reloadable<Service> {
8
+ declare _Service: (_: never) => Service;
9
+ constructor(readonly scopedRef: ScopedRef<Service>, readonly reload: IO<never, unknown, void>) {}
10
+
11
+ get get(): UIO<Service> {
12
+ return this.scopedRef.get;
13
+ }
14
+
15
+ get reloadFork(): UIO<void> {
16
+ return this.reload.forkDaemon.asUnit;
17
+ }
18
+ }
19
+
20
+ const tagMap: IterableWeakMap<Tag<any>, Tag<any>> = new IterableWeakMap();
21
+
22
+ /**
23
+ * @tsplus derive fncts.Tag[fncts.io.Reloadable]<_> 10
24
+ */
25
+ export function deriveTag<S>(
26
+ ...[tag]: [S] extends [Reloadable<infer X>] ? [tag: Tag<X>] : [tag: Tag<S>]
27
+ ): Tag<Reloadable<S>> {
28
+ if (tagMap.has(tag)) {
29
+ return tagMap.get(tag) as Tag<Reloadable<S>>;
30
+ }
31
+ const reloadableTag = Tag<Reloadable<S>>(`Reloadable(${tag.id})`);
32
+ tagMap.set(tag, reloadableTag);
33
+ return reloadableTag;
34
+ }
@@ -0,0 +1,5 @@
1
+ // codegen:start { preset: barrel, include: ./Reloadable/*.ts }
2
+ export * from "./Reloadable/api.js";
3
+ export * from "./Reloadable/constructors.js";
4
+ export * from "./Reloadable/definition.js";
5
+ // codegen:end
@@ -0,0 +1,79 @@
1
+ export const enum IsFatalTag {
2
+ Single,
3
+ Empty,
4
+ Both,
5
+ }
6
+
7
+ export const IsFatalTypeId = Symbol.for("fncts.io.IsFatal");
8
+ export type IsFatalTypeId = typeof IsFatalTypeId;
9
+
10
+ /**
11
+ * @tsplus type fncts.io.IsFatal
12
+ * @tsplus companion fncts.io.IsFatalOps
13
+ */
14
+ export abstract class IsFatal {
15
+ readonly _typeId: IsFatalTypeId = IsFatalTypeId;
16
+
17
+ apply(t: unknown): boolean {
18
+ concrete(this);
19
+ switch (this._tag) {
20
+ case IsFatalTag.Single:
21
+ return this.predicate(t);
22
+ case IsFatalTag.Empty:
23
+ return false;
24
+ case IsFatalTag.Both:
25
+ return this.left.apply(t) || this.right.apply(t);
26
+ }
27
+ }
28
+ }
29
+
30
+ export class Single extends IsFatal {
31
+ readonly _tag = IsFatalTag.Single;
32
+ constructor(readonly predicate: Predicate<unknown>) {
33
+ super();
34
+ }
35
+ }
36
+
37
+ export class Empty extends IsFatal {
38
+ readonly _tag = IsFatalTag.Empty;
39
+ }
40
+
41
+ export class Both extends IsFatal {
42
+ readonly _tag = IsFatalTag.Both;
43
+ constructor(readonly left: IsFatal, readonly right: IsFatal) {
44
+ super();
45
+ }
46
+ }
47
+
48
+ function concrete(u: IsFatal): asserts u is Single | Empty | Both {
49
+ //
50
+ }
51
+
52
+ /**
53
+ * @tsplus static fncts.io.IsFatalOps empty
54
+ */
55
+ export const empty: IsFatal = new Empty();
56
+
57
+ /**
58
+ * @tsplus static fncts.io.IsFatalOps __call
59
+ */
60
+ export function makeIsFatal(predicate: Predicate<unknown>): IsFatal {
61
+ return new Single(predicate);
62
+ }
63
+
64
+ /**
65
+ * @tsplus static fncts.io.IsFatalOps both
66
+ * @tsplus fluent fncts.io.IsFatal both
67
+ * @tsplus operator fncts.io.IsFatal |
68
+ */
69
+ export function both(left: IsFatal, right: IsFatal): IsFatal {
70
+ concrete(left);
71
+ concrete(right);
72
+ if (left._tag === IsFatalTag.Empty) {
73
+ return right;
74
+ }
75
+ if (right._tag === IsFatalTag.Empty) {
76
+ return left;
77
+ }
78
+ return new Both(left, right);
79
+ }
@@ -0,0 +1,47 @@
1
+ import { Predicate } from "@fncts/base/data/Predicate/definition";
2
+ export declare const enum IsFatalTag {
3
+ Single = 0,
4
+ Empty = 1,
5
+ Both = 2
6
+ }
7
+ export declare const IsFatalTypeId: unique symbol;
8
+ export type IsFatalTypeId = typeof IsFatalTypeId;
9
+ /**
10
+ * @tsplus type fncts.io.IsFatal
11
+ * @tsplus companion fncts.io.IsFatalOps
12
+ */
13
+ export declare abstract class IsFatal {
14
+ readonly _typeId: IsFatalTypeId;
15
+ apply(t: unknown): boolean;
16
+ }
17
+ export declare class Single extends IsFatal {
18
+ readonly predicate: Predicate<unknown>;
19
+ readonly _tag = IsFatalTag.Single;
20
+ constructor(predicate: Predicate<unknown>);
21
+ }
22
+ export declare class Empty extends IsFatal {
23
+ readonly _tag = IsFatalTag.Empty;
24
+ }
25
+ export declare class Both extends IsFatal {
26
+ readonly left: IsFatal;
27
+ readonly right: IsFatal;
28
+ readonly _tag = IsFatalTag.Both;
29
+ constructor(left: IsFatal, right: IsFatal);
30
+ }
31
+ /**
32
+ * @tsplus static fncts.io.IsFatalOps empty
33
+ * @tsplus location "@fncts/io/internal/IsFatal"
34
+ */
35
+ export declare const empty: IsFatal;
36
+ /**
37
+ * @tsplus static fncts.io.IsFatalOps __call
38
+ * @tsplus location "@fncts/io/internal/IsFatal"
39
+ */
40
+ export declare function makeIsFatal(predicate: Predicate<unknown>): IsFatal;
41
+ /**
42
+ * @tsplus static fncts.io.IsFatalOps both
43
+ * @tsplus fluent fncts.io.IsFatal both
44
+ * @tsplus operator fncts.io.IsFatal |
45
+ * @tsplus location "@fncts/io/internal/IsFatal"
46
+ */
47
+ export declare function both(left: IsFatal, right: IsFatal): IsFatal;
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@fncts/io",
3
- "version": "0.0.17",
3
+ "version": "0.0.19",
4
4
  "dependencies": {
5
- "@fncts/base": "0.0.17",
6
- "@fncts/transformers": "0.0.1",
7
- "@fncts/typelevel": "0.0.13"
5
+ "@fncts/base": "0.0.19",
6
+ "@fncts/transformers": "0.0.2",
7
+ "@fncts/typelevel": "0.0.14"
8
8
  },
9
9
  "exports": {
10
10
  "./*": {