@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.
- package/Cached/internal.d.ts +1 -1
- package/CancellerState.d.ts +1 -1
- package/Channel/ChildExecutorDecision/definition.d.ts +1 -1
- package/Channel/UpstreamPullRequest/definition.d.ts +1 -1
- package/Channel/UpstreamPullStrategy/definition.d.ts +1 -1
- package/Channel/api/mergeAllWith.d.ts +1 -1
- package/Channel/internal/ChannelExecutor.d.ts +1 -1
- package/Channel/internal/ChannelState.d.ts +2 -2
- package/Channel/internal/MergeDecision.d.ts +1 -1
- package/Channel/internal/MergeState.d.ts +1 -1
- package/Channel/internal/SingleProducerAsyncInput.d.ts +1 -1
- package/Clock/definition.d.ts +1 -0
- package/Fiber/FiberContext.d.ts +22 -19
- package/Fiber/api/interruptAll.d.ts +1 -1
- package/Fiber/api/interruptAsFork.d.ts +8 -0
- package/Fiber/definition.d.ts +6 -8
- package/FiberRef/api.d.ts +7 -2
- package/FiberRef/definition.d.ts +4 -3
- package/FiberRef/unsafe.d.ts +18 -1
- package/FiberRefs/api.d.ts +5 -0
- package/FiberRefs/definition.d.ts +1 -1
- package/FiberState/definition.d.ts +2 -2
- package/FiberStatus/definition.d.ts +1 -1
- package/Future/definition.d.ts +1 -1
- package/Hub/definition.d.ts +1 -1
- package/IO/api/core-scope.d.ts +4 -3
- package/IO/api/interrupt.d.ts +2 -2
- package/IO/api/supervised.d.ts +10 -0
- package/IO/api.d.ts +7 -10
- package/IO/definition.d.ts +16 -139
- package/IO.d.ts +1 -0
- package/IOEnv/definition.d.ts +1 -1
- package/Layer/definition.d.ts +2 -2
- package/Ref/definition.d.ts +3 -3
- package/Reloadable/api.d.ts +21 -0
- package/Reloadable/constructors.d.ts +23 -0
- package/Reloadable/definition.d.ts +20 -0
- package/Reloadable.d.ts +3 -0
- package/RuntimeConfig.d.ts +1 -1
- package/STM/definition.d.ts +5 -5
- package/STM/internal/CommitState.d.ts +1 -1
- package/STM/internal/Entry.d.ts +2 -2
- package/STM/internal/Journal.d.ts +6 -6
- package/STM/internal/TryCommit.d.ts +2 -2
- package/STM/internal/Versioned.d.ts +1 -1
- package/Schedule/Decision.d.ts +1 -1
- package/Scope/ReleaseMap/definition.d.ts +1 -1
- package/Scope/definition.d.ts +2 -2
- package/ScopedRef/definition.d.ts +1 -1
- package/State/internal.d.ts +1 -1
- package/Stream/api.d.ts +1 -1
- package/Stream/definition.d.ts +1 -1
- package/Stream/internal/DebounceState.d.ts +4 -4
- package/Stream/internal/Handoff.d.ts +5 -5
- package/Stream/internal/Pull.d.ts +1 -1
- package/Stream/internal/SinkEndReason.d.ts +1 -1
- package/TExit/definition.d.ts +3 -3
- package/TReentrantLock/definition.d.ts +1 -1
- package/TRef/definition.d.ts +1 -1
- package/TxnId.d.ts +1 -1
- package/_cjs/Clock/definition.cjs +2 -1
- package/_cjs/Clock/definition.cjs.map +1 -1
- package/_cjs/Console/definition.cjs +1 -1
- package/_cjs/Console/definition.cjs.map +1 -1
- package/_cjs/Fiber/FiberContext.cjs +180 -310
- package/_cjs/Fiber/FiberContext.cjs.map +1 -1
- package/_cjs/Fiber/api/collectAll.cjs +2 -2
- package/_cjs/Fiber/api/collectAll.cjs.map +1 -1
- package/_cjs/Fiber/api/interrupt.cjs +4 -2
- package/_cjs/Fiber/api/interrupt.cjs.map +1 -1
- package/_cjs/Fiber/api/interruptAll.cjs +8 -8
- package/_cjs/Fiber/api/interruptAll.cjs.map +1 -1
- package/_cjs/Fiber/api/interruptAs.cjs +7 -1
- package/_cjs/Fiber/api/interruptAs.cjs.map +1 -1
- package/_cjs/Fiber/api/interruptAsFork.cjs +15 -0
- package/_cjs/Fiber/api/interruptAsFork.cjs.map +1 -0
- package/_cjs/Fiber/api/interruptFork.cjs +5 -5
- package/_cjs/Fiber/api/interruptFork.cjs.map +1 -1
- package/_cjs/Fiber/definition.cjs +2 -2
- package/_cjs/Fiber/definition.cjs.map +1 -1
- package/_cjs/FiberRef/api.cjs +29 -10
- package/_cjs/FiberRef/api.cjs.map +1 -1
- package/_cjs/FiberRef/definition.cjs +2 -1
- package/_cjs/FiberRef/definition.cjs.map +1 -1
- package/_cjs/FiberRef/unsafe.cjs +29 -5
- package/_cjs/FiberRef/unsafe.cjs.map +1 -1
- package/_cjs/FiberRefs/api.cjs +28 -2
- package/_cjs/FiberRefs/api.cjs.map +1 -1
- package/_cjs/FiberRefs/join.cjs +1 -1
- package/_cjs/FiberRefs/join.cjs.map +1 -1
- package/_cjs/IO/api/core-scope.cjs +23 -15
- package/_cjs/IO/api/core-scope.cjs.map +1 -1
- package/_cjs/IO/api/ensuringChildren.cjs +4 -2
- package/_cjs/IO/api/ensuringChildren.cjs.map +1 -1
- package/_cjs/IO/api/interrupt.cjs +21 -11
- package/_cjs/IO/api/interrupt.cjs.map +1 -1
- package/_cjs/IO/api/supervised.cjs +26 -0
- package/_cjs/IO/api/supervised.cjs.map +1 -0
- package/_cjs/IO/api/withChildren.cjs +4 -2
- package/_cjs/IO/api/withChildren.cjs.map +1 -1
- package/_cjs/IO/api/zipC.cjs +10 -8
- package/_cjs/IO/api/zipC.cjs.map +1 -1
- package/_cjs/IO/api.cjs +67 -63
- package/_cjs/IO/api.cjs.map +1 -1
- package/_cjs/IO/definition.cjs +8 -226
- package/_cjs/IO/definition.cjs.map +1 -1
- package/_cjs/IO/runtime.cjs +7 -9
- package/_cjs/IO/runtime.cjs.map +1 -1
- package/_cjs/IO.cjs +13 -0
- package/_cjs/IO.cjs.map +1 -1
- package/_cjs/Layer/api.cjs +1 -1
- package/_cjs/Layer/api.cjs.map +1 -1
- package/_cjs/Random/definition.cjs +1 -1
- package/_cjs/Random/definition.cjs.map +1 -1
- package/_cjs/Reloadable/api.cjs +46 -0
- package/_cjs/Reloadable/api.cjs.map +1 -0
- package/_cjs/Reloadable/constructors.cjs +82 -0
- package/_cjs/Reloadable/constructors.cjs.map +1 -0
- package/_cjs/Reloadable/definition.cjs +58 -0
- package/_cjs/Reloadable/definition.cjs.map +1 -0
- package/_cjs/Reloadable.cjs +45 -0
- package/_cjs/Reloadable.cjs.map +1 -0
- package/_cjs/Scope/definition.cjs +1 -1
- package/_cjs/Scope/definition.cjs.map +1 -1
- package/_cjs/internal/IsFatal.cjs +129 -0
- package/_cjs/internal/IsFatal.cjs.map +1 -0
- package/_mjs/Clock/definition.mjs +2 -1
- package/_mjs/Clock/definition.mjs.map +1 -1
- package/_mjs/Console/definition.mjs +1 -1
- package/_mjs/Console/definition.mjs.map +1 -1
- package/_mjs/Fiber/FiberContext.mjs +180 -309
- package/_mjs/Fiber/FiberContext.mjs.map +1 -1
- package/_mjs/Fiber/api/collectAll.mjs +2 -2
- package/_mjs/Fiber/api/collectAll.mjs.map +1 -1
- package/_mjs/Fiber/api/interrupt.mjs +3 -2
- package/_mjs/Fiber/api/interrupt.mjs.map +1 -1
- package/_mjs/Fiber/api/interruptAll.mjs +6 -6
- package/_mjs/Fiber/api/interruptAll.mjs.map +1 -1
- package/_mjs/Fiber/api/interruptAs.mjs +3 -1
- package/_mjs/Fiber/api/interruptAs.mjs.map +1 -1
- package/_mjs/Fiber/api/interruptAsFork.mjs +8 -0
- package/_mjs/Fiber/api/interruptAsFork.mjs.map +1 -0
- package/_mjs/Fiber/api/interruptFork.mjs +5 -4
- package/_mjs/Fiber/api/interruptFork.mjs.map +1 -1
- package/_mjs/Fiber/definition.mjs +2 -2
- package/_mjs/Fiber/definition.mjs.map +1 -1
- package/_mjs/FiberRef/api.mjs +26 -9
- package/_mjs/FiberRef/api.mjs.map +1 -1
- package/_mjs/FiberRef/definition.mjs +2 -1
- package/_mjs/FiberRef/definition.mjs.map +1 -1
- package/_mjs/FiberRef/unsafe.mjs +23 -4
- package/_mjs/FiberRef/unsafe.mjs.map +1 -1
- package/_mjs/FiberRefs/api.mjs +22 -1
- package/_mjs/FiberRefs/api.mjs.map +1 -1
- package/_mjs/FiberRefs/join.mjs +1 -1
- package/_mjs/FiberRefs/join.mjs.map +1 -1
- package/_mjs/IO/api/core-scope.mjs +21 -16
- package/_mjs/IO/api/core-scope.mjs.map +1 -1
- package/_mjs/IO/api/ensuringChildren.mjs +3 -2
- package/_mjs/IO/api/ensuringChildren.mjs.map +1 -1
- package/_mjs/IO/api/interrupt.mjs +18 -9
- package/_mjs/IO/api/interrupt.mjs.map +1 -1
- package/_mjs/IO/api/supervised.mjs +14 -0
- package/_mjs/IO/api/supervised.mjs.map +1 -0
- package/_mjs/IO/api/withChildren.mjs +3 -2
- package/_mjs/IO/api/withChildren.mjs.map +1 -1
- package/_mjs/IO/api/zipC.mjs +9 -8
- package/_mjs/IO/api/zipC.mjs.map +1 -1
- package/_mjs/IO/api.mjs +66 -60
- package/_mjs/IO/api.mjs.map +1 -1
- package/_mjs/IO/definition.mjs +5 -184
- package/_mjs/IO/definition.mjs.map +1 -1
- package/_mjs/IO/runtime.mjs +7 -8
- package/_mjs/IO/runtime.mjs.map +1 -1
- package/_mjs/IO.mjs +1 -0
- package/_mjs/IO.mjs.map +1 -1
- package/_mjs/Layer/api.mjs +1 -1
- package/_mjs/Layer/api.mjs.map +1 -1
- package/_mjs/Random/definition.mjs +1 -1
- package/_mjs/Random/definition.mjs.map +1 -1
- package/_mjs/Reloadable/api.mjs +30 -0
- package/_mjs/Reloadable/api.mjs.map +1 -0
- package/_mjs/Reloadable/constructors.mjs +55 -0
- package/_mjs/Reloadable/constructors.mjs.map +1 -0
- package/_mjs/Reloadable/definition.mjs +40 -0
- package/_mjs/Reloadable/definition.mjs.map +1 -0
- package/_mjs/Reloadable.mjs +5 -0
- package/_mjs/Reloadable.mjs.map +1 -0
- package/_mjs/Scope/definition.mjs +1 -1
- package/_mjs/Scope/definition.mjs.map +1 -1
- package/_mjs/internal/IsFatal.mjs +104 -0
- package/_mjs/internal/IsFatal.mjs.map +1 -0
- package/_src/Clock/definition.ts +1 -0
- package/_src/Fiber/FiberContext.ts +50 -135
- package/_src/Fiber/api/collectAll.ts +1 -4
- package/_src/Fiber/api/interruptAll.ts +2 -2
- package/_src/Fiber/api/interruptAs.ts +1 -1
- package/_src/Fiber/api/interruptAsFork.ts +7 -0
- package/_src/Fiber/api/interruptFork.ts +1 -1
- package/_src/Fiber/definition.ts +3 -5
- package/_src/FiberRef/api.ts +30 -7
- package/_src/FiberRef/definition.ts +1 -0
- package/_src/FiberRef/unsafe.ts +27 -3
- package/_src/FiberRefs/api.ts +16 -0
- package/_src/FiberRefs/join.ts +1 -1
- package/_src/IO/api/core-scope.ts +12 -10
- package/_src/IO/api/interrupt.ts +8 -3
- package/_src/IO/api/supervised.ts +14 -0
- package/_src/IO/api.ts +25 -26
- package/_src/IO/definition.ts +8 -158
- package/_src/IO/runtime.ts +7 -11
- package/_src/IO.ts +1 -0
- package/_src/Reloadable/api.ts +28 -0
- package/_src/Reloadable/constructors.ts +60 -0
- package/_src/Reloadable/definition.ts +34 -0
- package/_src/Reloadable.ts +5 -0
- package/_src/internal/IsFatal.ts +79 -0
- package/internal/IsFatal.d.ts +47 -0
- 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,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.
|
|
3
|
+
"version": "0.0.19",
|
|
4
4
|
"dependencies": {
|
|
5
|
-
"@fncts/base": "0.0.
|
|
6
|
-
"@fncts/transformers": "0.0.
|
|
7
|
-
"@fncts/typelevel": "0.0.
|
|
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
|
"./*": {
|