@fncts/io 0.0.11 → 0.0.12
Sign up to get free protection for your applications and to get access to all the features.
- 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