@fncts/io 0.0.11 → 0.0.12
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/IO/runtime.d.ts +8 -1
- package/_cjs/IO/runtime.cjs +18 -7
- package/_cjs/IO/runtime.cjs.map +1 -1
- package/_cjs/demo.cjs +15 -0
- package/_cjs/demo.cjs.map +1 -0
- package/_mjs/IO/runtime.mjs +15 -5
- package/_mjs/IO/runtime.mjs.map +1 -1
- package/_mjs/demo.mjs +7 -0
- package/_mjs/demo.mjs.map +1 -0
- package/_src/IO/runtime.ts +18 -11
- package/_src/demo.ts +6 -0
- package/demo.d.ts +1 -0
- package/package.json +3 -3
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/_cjs/IO/runtime.cjs
CHANGED
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
});
|
6
6
|
exports.defaultRuntimeConfig = exports.defaultRuntime = exports.Runtime = void 0;
|
7
7
|
exports.runtime = runtime;
|
8
|
-
exports.unsafeRunWith = exports.unsafeRunPromiseExit = exports.unsafeRunAsyncWith = exports.unsafeRunAsync = void 0;
|
8
|
+
exports.unsafeRunWith = exports.unsafeRunPromiseExit = exports.unsafeRunFiber = exports.unsafeRunAsyncWith = exports.unsafeRunAsync = void 0;
|
9
9
|
|
10
10
|
var tsplus_module_1 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/TraceElement/definition"));
|
11
11
|
|
@@ -64,7 +64,7 @@ class Runtime {
|
|
64
64
|
this.environment = environment;
|
65
65
|
this.runtimeConfig = runtimeConfig;
|
66
66
|
|
67
|
-
this.
|
67
|
+
this.unsafeRunFiber = (io, __tsplusTrace) => {
|
68
68
|
const fiberId = tsplus_module_2.unsafeMake(tsplus_module_1.parse(__tsplusTrace));
|
69
69
|
const children = new Set();
|
70
70
|
const supervisor = this.runtimeConfig.supervisor;
|
@@ -78,20 +78,25 @@ class Runtime {
|
|
78
78
|
|
79
79
|
context.nextIO = io;
|
80
80
|
context.run();
|
81
|
+
return context;
|
82
|
+
};
|
83
|
+
|
84
|
+
this.unsafeRunWith = (io, k, __tsplusTrace) => {
|
85
|
+
const context = this.unsafeRunFiber(io, fileName_1 + ":45:40");
|
81
86
|
context.unsafeOnDone(exit => k(tsplus_module_13.flatten(exit)));
|
82
|
-
return fiberId => k => this.unsafeRunAsyncWith(context.interruptAs(fiberId), exit => k(tsplus_module_13.flatten(exit)), fileName_1 + ":
|
87
|
+
return fiberId => k => this.unsafeRunAsyncWith(context.interruptAs(fiberId), exit => k(tsplus_module_13.flatten(exit)), fileName_1 + ":47:55");
|
83
88
|
};
|
84
89
|
|
85
90
|
this.unsafeRunAsync = (io, __tsplusTrace) => {
|
86
|
-
this.unsafeRunAsyncWith(io, () => void 0, fileName_1 + ":
|
91
|
+
this.unsafeRunAsyncWith(io, () => void 0, fileName_1 + ":51:28");
|
87
92
|
};
|
88
93
|
|
89
94
|
this.unsafeRunAsyncWith = (io, k, __tsplusTrace) => {
|
90
|
-
this.unsafeRunWith(io, k, fileName_1 + ":
|
95
|
+
this.unsafeRunWith(io, k, fileName_1 + ":55:23");
|
91
96
|
};
|
92
97
|
|
93
98
|
this.unsafeRunPromiseExit = (io, __tsplusTrace) => new Promise(resolve => {
|
94
|
-
this.unsafeRunAsyncWith(io, resolve, fileName_1 + ":
|
99
|
+
this.unsafeRunAsyncWith(io, resolve, fileName_1 + ":60:30");
|
95
100
|
});
|
96
101
|
}
|
97
102
|
|
@@ -117,10 +122,16 @@ const defaultRuntimeConfig = /*#__PURE__*/new tsplus_module_16.RuntimeConfig({
|
|
117
122
|
exports.defaultRuntimeConfig = defaultRuntimeConfig;
|
118
123
|
const defaultRuntime = /*#__PURE__*/new Runtime(tsplus_module_20.empty, defaultRuntimeConfig);
|
119
124
|
/**
|
120
|
-
* @tsplus fluent fncts.io.IO
|
125
|
+
* @tsplus fluent fncts.io.IO unsafeRunFiber
|
121
126
|
*/
|
122
127
|
|
123
128
|
exports.defaultRuntime = defaultRuntime;
|
129
|
+
const unsafeRunFiber = defaultRuntime.unsafeRunFiber;
|
130
|
+
/**
|
131
|
+
* @tsplus fluent fncts.io.IO unsafeRunAsync
|
132
|
+
*/
|
133
|
+
|
134
|
+
exports.unsafeRunFiber = unsafeRunFiber;
|
124
135
|
const unsafeRunAsync = defaultRuntime.unsafeRunAsync;
|
125
136
|
/**
|
126
137
|
* @tsplus fluent fncts.io.IO unsafeRunAsyncWith
|
package/_cjs/IO/runtime.cjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"runtime.cjs","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;AACA;;;;;;;;AAGM,MAAOA,OAAP,CAAc;EAClBC,YAAqBC,WAArB,EAA2DC,aAA3D,EAAuF;IAAlE;IAAsC;;IAE3D,
|
1
|
+
{"version":3,"file":"runtime.cjs","mappings":"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","names":["Runtime","constructor","environment","runtimeConfig","io","__tsplusTrace","fiberId","tsplus_module_2","tsplus_module_1","children","Set","supervisor","context","FiberContext","tsplus_module_4","tsplus_module_3","toBoolean","AtomicReference","tsplus_module_9","tsplus_module_6","tsplus_module_8","tsplus_module_10","unsafeAdd","unsafeOnStart","tsplus_module_12","unsafeOnDone","exit","unsafeOnEnd","tsplus_module_13","nextIO","run","k","unsafeRunFiber","fileName_1","unsafeRunAsyncWith","interruptAs","unsafeRunWith","Promise","resolve","runtime","tsplus_module_15","tsplus_module_14","config","defaultRuntimeConfig","RuntimeConfig","reportFailure","undefined","tsplus_module_11","flags","yieldOpCount","logger","tsplus_module_19","s","console","log","level","tsplus_module_17","defaultRuntime","tsplus_module_20","unsafeRunAsync","unsafeRunPromiseExit"],"sourceRoot":"","sources":["../../_src/IO/runtime.ts"],"sourcesContent":[null]}
|
package/_cjs/demo.cjs
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var tsplus_module_1 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api"));
|
4
|
+
|
5
|
+
var tsplus_module_2 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/runtime"));
|
6
|
+
|
7
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
8
|
+
|
9
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
10
|
+
|
11
|
+
const fileName_1 = "(@fncts/io) src/demo.ts";
|
12
|
+
tsplus_module_2.unsafeRunWith(tsplus_module_1.catchAllCause_(tsplus_module_1.flatMap_(tsplus_module_1.succeed(() => console.log(1), fileName_1 + ":1:11"), () => tsplus_module_1.halt(() => "lmao", fileName_1 + ":2:25"), fileName_1 + ":2:11"), cause => tsplus_module_1.succeed(() => console.log("failed"), fileName_1 + ":3:31"), fileName_1 + ":3:17"), exit => {
|
13
|
+
console.log(exit);
|
14
|
+
}, fileName_1 + ":4:17");
|
15
|
+
//# sourceMappingURL=demo.cjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"demo.cjs","mappings":";;;;;;;;;;;AAAAA,oHAAWC,OAAO,CAACC,GAAR,CAAY,CAAZ,CAAX,EAAyBC,oBAAzB,GACW,MAAMC,2BAAQ,MAAR,EAAcD,oBAAd,CADjB,EACgCA,oBADhC,GAEkBE,KAAD,IAAWD,8BAAGH,OAAO,CAACC,GAAR,CAAY,QAAZ,CAAH,EAAwBC,oBAAxB,CAF5B,EAEqDA,oBAFrD,GAGkBG,IAAD,IAAS;EACtBL,OAAO,CAACC,GAAR,CAAYI,IAAZ;AACD,CALH,EAKGH,oBALH","names":["tsplus_module_2","console","log","fileName_1","tsplus_module_1","cause","exit"],"sourceRoot":"","sources":["../_src/demo.ts"],"sourcesContent":[null]}
|
package/_mjs/IO/runtime.mjs
CHANGED
@@ -27,7 +27,7 @@ export class Runtime {
|
|
27
27
|
this.environment = environment;
|
28
28
|
this.runtimeConfig = runtimeConfig;
|
29
29
|
|
30
|
-
this.
|
30
|
+
this.unsafeRunFiber = (io, __tsplusTrace) => {
|
31
31
|
const fiberId = tsplus_module_2.unsafeMake(tsplus_module_1.parse(__tsplusTrace));
|
32
32
|
const children = new Set();
|
33
33
|
const supervisor = this.runtimeConfig.supervisor;
|
@@ -41,20 +41,25 @@ export class Runtime {
|
|
41
41
|
|
42
42
|
context.nextIO = io;
|
43
43
|
context.run();
|
44
|
+
return context;
|
45
|
+
};
|
46
|
+
|
47
|
+
this.unsafeRunWith = (io, k, __tsplusTrace) => {
|
48
|
+
const context = this.unsafeRunFiber(io, fileName_1 + ":45:40");
|
44
49
|
context.unsafeOnDone(exit => k(tsplus_module_13.flatten(exit)));
|
45
|
-
return fiberId => k => this.unsafeRunAsyncWith(context.interruptAs(fiberId), exit => k(tsplus_module_13.flatten(exit)), fileName_1 + ":
|
50
|
+
return fiberId => k => this.unsafeRunAsyncWith(context.interruptAs(fiberId), exit => k(tsplus_module_13.flatten(exit)), fileName_1 + ":47:55");
|
46
51
|
};
|
47
52
|
|
48
53
|
this.unsafeRunAsync = (io, __tsplusTrace) => {
|
49
|
-
this.unsafeRunAsyncWith(io, () => void 0, fileName_1 + ":
|
54
|
+
this.unsafeRunAsyncWith(io, () => void 0, fileName_1 + ":51:28");
|
50
55
|
};
|
51
56
|
|
52
57
|
this.unsafeRunAsyncWith = (io, k, __tsplusTrace) => {
|
53
|
-
this.unsafeRunWith(io, k, fileName_1 + ":
|
58
|
+
this.unsafeRunWith(io, k, fileName_1 + ":55:23");
|
54
59
|
};
|
55
60
|
|
56
61
|
this.unsafeRunPromiseExit = (io, __tsplusTrace) => new Promise(resolve => {
|
57
|
-
this.unsafeRunAsyncWith(io, resolve, fileName_1 + ":
|
62
|
+
this.unsafeRunAsyncWith(io, resolve, fileName_1 + ":60:30");
|
58
63
|
});
|
59
64
|
}
|
60
65
|
|
@@ -74,6 +79,11 @@ export const defaultRuntimeConfig = /*#__PURE__*/new tsplus_module_16.RuntimeCon
|
|
74
79
|
logger: /*#__PURE__*/tsplus_module_19.filterLogLevel_( /*#__PURE__*/tsplus_module_19.map_(tsplus_module_18.defaultString, s => console.log(s)), level => tsplus_module_17.gte(level, tsplus_module_17.Info))
|
75
80
|
});
|
76
81
|
export const defaultRuntime = /*#__PURE__*/new Runtime(tsplus_module_20.empty, defaultRuntimeConfig);
|
82
|
+
/**
|
83
|
+
* @tsplus fluent fncts.io.IO unsafeRunFiber
|
84
|
+
*/
|
85
|
+
|
86
|
+
export const unsafeRunFiber = defaultRuntime.unsafeRunFiber;
|
77
87
|
/**
|
78
88
|
* @tsplus fluent fncts.io.IO unsafeRunAsync
|
79
89
|
*/
|
package/_mjs/IO/runtime.mjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"runtime.mjs","mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,SAASA,eAAT,QAAgC,sCAAhC;AAEA,SAASC,YAAT,QAA6B,iBAA7B;AACA,SAASC,QAAT,QAAyB,yBAAzB;AAGA,OAAM,MAAOC,OAAP,CAAc;EAClBC,YAAqBC,WAArB,EAA2DC,aAA3D,EAAuF;IAAlE;IAAsC;;IAE3D,
|
1
|
+
{"version":3,"file":"runtime.mjs","mappings":"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","names":["AtomicReference","FiberContext","concrete","Runtime","constructor","environment","runtimeConfig","io","__tsplusTrace","fiberId","tsplus_module_2","tsplus_module_1","children","Set","supervisor","context","tsplus_module_4","tsplus_module_3","toBoolean","tsplus_module_9","tsplus_module_6","tsplus_module_8","tsplus_module_10","unsafeAdd","unsafeOnStart","tsplus_module_12","unsafeOnDone","exit","unsafeOnEnd","tsplus_module_13","nextIO","run","k","unsafeRunFiber","fileName_1","unsafeRunAsyncWith","interruptAs","unsafeRunWith","Promise","resolve","runtime","tsplus_module_15","tsplus_module_14","config","defaultRuntimeConfig","RuntimeConfig","reportFailure","undefined","tsplus_module_11","flags","yieldOpCount","logger","tsplus_module_19","s","console","log","level","tsplus_module_17","defaultRuntime","tsplus_module_20","unsafeRunAsync","unsafeRunPromiseExit"],"sourceRoot":"","sources":["../../_src/IO/runtime.ts"],"sourcesContent":[null]}
|
package/_mjs/demo.mjs
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
const fileName_1 = "(@fncts/io) src/demo.ts";
|
2
|
+
import * as tsplus_module_1 from "@fncts/io/IO/api";
|
3
|
+
import * as tsplus_module_2 from "@fncts/io/IO/runtime";
|
4
|
+
tsplus_module_2.unsafeRunWith(tsplus_module_1.catchAllCause_(tsplus_module_1.flatMap_(tsplus_module_1.succeed(() => console.log(1), fileName_1 + ":1:11"), () => tsplus_module_1.halt(() => "lmao", fileName_1 + ":2:25"), fileName_1 + ":2:11"), cause => tsplus_module_1.succeed(() => console.log("failed"), fileName_1 + ":3:31"), fileName_1 + ":3:17"), exit => {
|
5
|
+
console.log(exit);
|
6
|
+
}, fileName_1 + ":4:17");
|
7
|
+
//# sourceMappingURL=demo.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"demo.mjs","mappings":";;;AAAAA,oHAAWC,OAAO,CAACC,GAAR,CAAY,CAAZ,CAAX,EAAyBC,oBAAzB,GACW,MAAMC,2BAAQ,MAAR,EAAcD,oBAAd,CADjB,EACgCA,oBADhC,GAEkBE,KAAD,IAAWD,8BAAGH,OAAO,CAACC,GAAR,CAAY,QAAZ,CAAH,EAAwBC,oBAAxB,CAF5B,EAEqDA,oBAFrD,GAGkBG,IAAD,IAAS;EACtBL,OAAO,CAACC,GAAR,CAAYI,IAAZ;AACD,CALH,EAKGH,oBALH","names":["tsplus_module_2","console","log","fileName_1","tsplus_module_1","cause","exit"],"sourceRoot":"","sources":["../_src/demo.ts"],"sourcesContent":[null]}
|
package/_src/IO/runtime.ts
CHANGED
@@ -7,18 +7,11 @@ import { IOEnv } from "@fncts/io/IOEnv/definition";
|
|
7
7
|
export class Runtime<R> {
|
8
8
|
constructor(readonly environment: Environment<R>, readonly runtimeConfig: RuntimeConfig) {}
|
9
9
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
__tsplusTrace?: string,
|
14
|
-
): ((fiberId: FiberId) => (f: (exit: Exit<E, A>) => any) => void) => {
|
15
|
-
const fiberId = FiberId.unsafeMake(TraceElement.parse(__tsplusTrace));
|
16
|
-
|
17
|
-
const children = new Set<FiberContext<any, any>>();
|
18
|
-
|
10
|
+
unsafeRunFiber = <E, A>(io: IO<R, E, A>, __tsplusTrace?: string): FiberContext<E, A> => {
|
11
|
+
const fiberId = FiberId.unsafeMake(TraceElement.parse(__tsplusTrace));
|
12
|
+
const children = new Set<FiberContext<any, any>>();
|
19
13
|
const supervisor = this.runtimeConfig.supervisor;
|
20
|
-
|
21
|
-
const context = new FiberContext<E, A>(
|
14
|
+
const context = new FiberContext<E, A>(
|
22
15
|
fiberId,
|
23
16
|
this.runtimeConfig,
|
24
17
|
Stack.single(InterruptStatus.interruptible.toBoolean),
|
@@ -41,6 +34,15 @@ export class Runtime<R> {
|
|
41
34
|
|
42
35
|
context.nextIO = concrete(io);
|
43
36
|
context.run();
|
37
|
+
return context;
|
38
|
+
};
|
39
|
+
|
40
|
+
unsafeRunWith = <E, A>(
|
41
|
+
io: IO<R, E, A>,
|
42
|
+
k: (exit: Exit<E, A>) => any,
|
43
|
+
__tsplusTrace?: string,
|
44
|
+
): ((fiberId: FiberId) => (f: (exit: Exit<E, A>) => any) => void) => {
|
45
|
+
const context = this.unsafeRunFiber(io);
|
44
46
|
context.unsafeOnDone((exit) => k(exit.flatten));
|
45
47
|
return (fiberId) => (k) => this.unsafeRunAsyncWith(context.interruptAs(fiberId), (exit) => k(exit.flatten));
|
46
48
|
};
|
@@ -78,6 +80,11 @@ export const defaultRuntimeConfig = new RuntimeConfig({
|
|
78
80
|
|
79
81
|
export const defaultRuntime = new Runtime(Environment.empty, defaultRuntimeConfig);
|
80
82
|
|
83
|
+
/**
|
84
|
+
* @tsplus fluent fncts.io.IO unsafeRunFiber
|
85
|
+
*/
|
86
|
+
export const unsafeRunFiber = defaultRuntime.unsafeRunFiber;
|
87
|
+
|
81
88
|
/**
|
82
89
|
* @tsplus fluent fncts.io.IO unsafeRunAsync
|
83
90
|
*/
|
package/_src/demo.ts
ADDED
package/demo.d.ts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
package/package.json
CHANGED