@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 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"
@@ -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.unsafeRunWith = (io, k, __tsplusTrace) => {
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 + ":45:55");
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 + ":49:28");
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 + ":53:23");
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 + ":58:30");
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 unsafeRunAsync
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
@@ -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,qBAAgB,CACdC,EADc,EAEdC,CAFc,EAGdC,aAHc,KAIoD;MAClE,MAAMC,OAAO,GAAGC,2BAAmBC,sBAAmBH,aAAnB,CAAnB,CAAhB;MAEA,MAAMI,QAAQ,GAAG,IAAIC,GAAJ,EAAjB;MAEA,MAAMC,UAAU,GAAG,KAAKT,aAAL,CAAmBS,UAAtC;MAEA,MAAMC,OAAO,GAAG,IAAIC,mBAAJ,CACdP,OADc,EAEd,KAAKJ,aAFS,EAGdY,uBAAaC,8BAA8BC,SAA3C,CAHc,EAId,IAAIC,gCAAJ,CACEC,qBACE,qCAA8BC,qBAAK,CAACb,OAAD,EAAU,KAAKL,WAAf,CAAL,CAA9B,CADF,EAEE,2BAAiBkB,qBAAK,CAACb,OAAD,EAAQc,2BAAR,CAAL,CAAjB,CAFF,CADF,CAJc,EAUdX,QAVc,CAAhB;MAaAY,wBAAkBC,SAAlB,CAA4BV,OAA5B;;MAEA,IAAID,UAAU,0BAAd,EAAoC;QAClCA,UAAU,CAACY,aAAX,CAAyB,KAAKtB,WAA9B,EAA2CE,EAA3C,EAA+CqB,0BAA/C,EAA0DZ,OAA1D;QAEAA,OAAO,CAACa,YAAR,CAAsBC,IAAD,IAAUf,UAAU,CAACgB,WAAX,CAAsBC,yBAACF,IAAD,CAAtB,EAAqCd,OAArC,CAA/B;MACD;;MAEDA,OAAO,CAACiB,MAAR,GAA0B1B,EAA1B;MACAS,OAAO,CAACkB,GAAR;MACAlB,OAAO,CAACa,YAAR,CAAsBC,IAAD,IAAUtB,CAAC,0BAACsB,IAAD,EAAhC;MACA,OAAQpB,OAAD,IAAcF,CAAD,IAAO,KAAK2B,kBAAL,CAAwBnB,OAAO,CAACoB,WAAR,CAAoB1B,OAApB,CAAxB,EAAuDoB,IAAD,IAAUtB,CAAC,0BAACsB,IAAD,EAAjE,EAA+EO,qBAA/E,CAA3B;IACD,CApCD;;IAsCA,sBAAiB,CAAO9B,EAAP,EAAwBE,aAAxB,KAAkD;MACjE,KAAK0B,kBAAL,CAAwB5B,EAAxB,EAA4B,MAAM,KAAK,CAAvC,EAAwC8B,qBAAxC;IACD,CAFD;;IAIA,0BAAqB,CAAO9B,EAAP,EAAwBC,CAAxB,EAAsDC,aAAtD,KAAgF;MACnG,KAAK6B,aAAL,CAAmB/B,EAAnB,EAAuBC,CAAvB,EAAwB6B,qBAAxB;IACD,CAFD;;IAIA,4BAAuB,CAAO9B,EAAP,EAAwBE,aAAxB,KACrB,IAAI8B,OAAJ,CAAaC,OAAD,IAAY;MACtB,KAAKL,kBAAL,CAAwB5B,EAAxB,EAA4BiC,OAA5B,EAAmCH,qBAAnC;IACD,CAFD,CADF;EAhD2F;;AADzE;AAuDpB;;;;;;;AAGM,SAAUI,OAAV,CAAqBhC,aAArB,EAA2C;EAC/C,OAAOiC,mCAAsBrC,WAAD,IAC1BsC,sDAAsBC,MAAD,IAAY,IAAIzC,OAAJ,CAAYE,WAAZ,EAAyBuC,MAAzB,CAAjC,EAFuBnC,aAEvB,CADK,EADkBA,aAClB,CAAP;AAGD;;AAEM,MAAMoC,oBAAoB,gBAAG,qBAAIC,aAAJ,CAAkB;EACpDC,aAAa,EAAE,MAAMC,SAD+B;EAEpDjC,UAAU,eAAEkC,8BAFwC;EAGpDC,KAAK,wBAH+C;EAIpDC,YAAY,EAAE,IAJsC;EAKpDC,MAAM,eAAEC,qGAA0BC,CAAD,IAAOC,OAAO,CAACC,GAAR,CAAYF,CAAZ,CAAhC,GAAgEG,KAAD,IAAUC,qBAACD,KAAD,EAAMC,qBAAN,CAAzE;AAL4C,CAAlB,CAA7B;;AAQA,MAAMC,cAAc,gBAAG,IAAIxD,OAAJ,CAAWyD,sBAAX,EAA+Bf,oBAA/B,CAAvB;AAEP;;;;;AAGO,MAAMgB,cAAc,GAAGF,cAAc,CAACE,cAAtC;AAEP;;;;;AAGO,MAAM1B,kBAAkB,GAAGwB,cAAc,CAACxB,kBAA1C;AAEP;;;;;AAGO,MAAM2B,oBAAoB,GAAGH,cAAc,CAACG,oBAA5C;AAEP;;;;;AAGO,MAAMxB,aAAa,GAAGqB,cAAc,CAACrB,aAArC","names":["Runtime","constructor","environment","runtimeConfig","io","k","__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","unsafeRunAsyncWith","interruptAs","fileName_1","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]}
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]}
@@ -27,7 +27,7 @@ export class Runtime {
27
27
  this.environment = environment;
28
28
  this.runtimeConfig = runtimeConfig;
29
29
 
30
- this.unsafeRunWith = (io, k, __tsplusTrace) => {
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 + ":45:55");
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 + ":49:28");
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 + ":53:23");
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 + ":58:30");
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
  */
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.mjs","mappings":"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","names":["AtomicReference","FiberContext","concrete","Runtime","constructor","environment","runtimeConfig","io","k","__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","unsafeRunAsyncWith","interruptAs","fileName_1","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]}
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]}
@@ -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
- unsafeRunWith = <E, A>(
11
- io: IO<R, E, A>,
12
- k: (exit: Exit<E, A>) => any,
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
@@ -0,0 +1,6 @@
1
+ IO.succeed(console.log(1))
2
+ .flatMap(() => IO.halt("lmao"))
3
+ .catchAllCause((cause) => IO(console.log("failed")))
4
+ .unsafeRunWith((exit) => {
5
+ console.log(exit);
6
+ });
package/demo.d.ts ADDED
@@ -0,0 +1 @@
1
+ export {};
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@fncts/io",
3
- "version": "0.0.11",
3
+ "version": "0.0.12",
4
4
  "dependencies": {
5
- "@fncts/base": "0.0.11",
6
- "@fncts/typelevel": "0.0.9"
5
+ "@fncts/base": "0.0.12",
6
+ "@fncts/typelevel": "0.0.10"
7
7
  },
8
8
  "exports": {
9
9
  "./*": {