@fncts/io 0.0.24 → 0.0.26
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/FiberRef/api.d.ts +0 -63
- package/FiberRef/operations.d.ts +64 -0
- package/FiberRef.d.ts +1 -0
- package/FiberRefs/api.d.ts +6 -1
- package/FiberRefs.d.ts +0 -1
- package/IO/api/daemonChildren.d.ts +6 -0
- package/IO/api/disconnect.d.ts +17 -0
- package/IO/api/fork.d.ts +4 -0
- package/IO/api/forkDaemon.d.ts +10 -0
- package/IO/api/interrupt.d.ts +1 -20
- package/IO/api/race.d.ts +7 -1
- package/IO/api/raceWith.d.ts +17 -0
- package/IO/api/transplant.d.ts +13 -0
- package/IO/api/whenFiberRef.d.ts +10 -0
- package/IO/api/whenRef.d.ts +10 -0
- package/IO/api/zipConcurrent.d.ts +5 -4
- package/IO/api.d.ts +12 -1
- package/IO.d.ts +7 -1
- package/RefSubject/Atomic.d.ts +1 -1
- package/_cjs/Cached/api.cjs +1 -1
- package/_cjs/Channel/api/mergeAllWith.cjs +1 -1
- package/_cjs/Channel/api/mergeWith.cjs +17 -16
- package/_cjs/Channel/api/mergeWith.cjs.map +1 -1
- package/_cjs/Channel/api.cjs +1 -3
- package/_cjs/Channel/api.cjs.map +1 -1
- package/_cjs/Fiber/FiberRuntime.cjs +16 -17
- package/_cjs/Fiber/FiberRuntime.cjs.map +1 -1
- package/_cjs/FiberRef/api/locallyScoped.cjs +1 -1
- package/_cjs/FiberRef/api/locallyScopedWith.cjs +1 -1
- package/_cjs/FiberRef/api.cjs +0 -124
- package/_cjs/FiberRef/api.cjs.map +1 -1
- package/_cjs/FiberRef/constructors.cjs +1 -1
- package/_cjs/FiberRef/operations.cjs +130 -0
- package/_cjs/FiberRef/operations.cjs.map +1 -0
- package/_cjs/FiberRef.cjs +11 -0
- package/_cjs/FiberRef.cjs.map +1 -1
- package/_cjs/FiberRefs/api.cjs +90 -0
- package/_cjs/FiberRefs/api.cjs.map +1 -1
- package/_cjs/FiberRefs.cjs +0 -11
- package/_cjs/FiberRefs.cjs.map +1 -1
- package/_cjs/Future/api.cjs +1 -3
- package/_cjs/Future/api.cjs.map +1 -1
- package/_cjs/IO/api/asyncIO.cjs +1 -3
- package/_cjs/IO/api/asyncIO.cjs.map +1 -1
- package/_cjs/IO/api/bracketExit.cjs +1 -3
- package/_cjs/IO/api/bracketExit.cjs.map +1 -1
- package/_cjs/IO/api/clockWith.cjs +1 -1
- package/_cjs/IO/api/concurrency.cjs +1 -1
- package/_cjs/IO/api/consoleWith.cjs +1 -1
- package/_cjs/IO/api/daemonChildren.cjs +19 -0
- package/_cjs/IO/api/daemonChildren.cjs.map +1 -0
- package/_cjs/IO/api/disconnect.cjs +31 -0
- package/_cjs/IO/api/disconnect.cjs.map +1 -0
- package/_cjs/IO/api/environment.cjs +1 -1
- package/_cjs/IO/api/foreachConcurrent.cjs +19 -20
- package/_cjs/IO/api/foreachConcurrent.cjs.map +1 -1
- package/_cjs/IO/api/fork.cjs +8 -3
- package/_cjs/IO/api/fork.cjs.map +1 -1
- package/_cjs/IO/api/forkDaemon.cjs +21 -0
- package/_cjs/IO/api/forkDaemon.cjs.map +1 -0
- package/_cjs/IO/api/forkIn.cjs +2 -4
- package/_cjs/IO/api/forkIn.cjs.map +1 -1
- package/_cjs/IO/api/forkScoped.cjs +2 -4
- package/_cjs/IO/api/forkScoped.cjs.map +1 -1
- package/_cjs/IO/api/fulfill.cjs +1 -3
- package/_cjs/IO/api/fulfill.cjs.map +1 -1
- package/_cjs/IO/api/interrupt.cjs +8 -59
- package/_cjs/IO/api/interrupt.cjs.map +1 -1
- package/_cjs/IO/api/race.cjs +24 -12
- package/_cjs/IO/api/race.cjs.map +1 -1
- package/_cjs/IO/api/{core-scope.cjs → raceWith.cjs} +15 -56
- package/_cjs/IO/api/raceWith.cjs.map +1 -0
- package/_cjs/IO/api/randomWith.cjs +1 -1
- package/_cjs/IO/api/supervised.cjs +1 -1
- package/_cjs/IO/api/transplant.cjs +31 -0
- package/_cjs/IO/api/transplant.cjs.map +1 -0
- package/_cjs/IO/api/whenFiberRef.cjs +20 -0
- package/_cjs/IO/api/whenFiberRef.cjs.map +1 -0
- package/_cjs/IO/api/whenRef.cjs +21 -0
- package/_cjs/IO/api/whenRef.cjs.map +1 -0
- package/_cjs/IO/api/zipConcurrent.cjs +25 -19
- package/_cjs/IO/api/zipConcurrent.cjs.map +1 -1
- package/_cjs/IO/api.cjs +21 -5
- package/_cjs/IO/api.cjs.map +1 -1
- package/_cjs/IO.cjs +70 -4
- package/_cjs/IO.cjs.map +1 -1
- package/_cjs/Layer/MemoMap.cjs +1 -3
- package/_cjs/Layer/MemoMap.cjs.map +1 -1
- package/_cjs/RefSubject/Atomic.cjs +2 -2
- package/_cjs/RefSubject/Atomic.cjs.map +1 -1
- package/_cjs/Reloadable/constructors.cjs +1 -1
- package/_cjs/Reloadable/definition.cjs +1 -1
- package/_cjs/STM/api/atomically.cjs +2 -4
- package/_cjs/STM/api/atomically.cjs.map +1 -1
- package/_cjs/ScopedRef/api.cjs +2 -6
- package/_cjs/ScopedRef/api.cjs.map +1 -1
- package/_cjs/State/api.cjs +1 -1
- package/_cjs/Stream/api.cjs +137 -135
- package/_cjs/Stream/api.cjs.map +1 -1
- package/_cjs/TReentrantLock/api.cjs +2 -6
- package/_cjs/TReentrantLock/api.cjs.map +1 -1
- package/_cjs/TSemaphore/api.cjs +1 -3
- package/_cjs/TSemaphore/api.cjs.map +1 -1
- package/_mjs/Cached/api.mjs +1 -1
- package/_mjs/Channel/api/mergeAllWith.mjs +1 -1
- package/_mjs/Channel/api/mergeWith.mjs +17 -16
- package/_mjs/Channel/api/mergeWith.mjs.map +1 -1
- package/_mjs/Channel/api.mjs +1 -3
- package/_mjs/Channel/api.mjs.map +1 -1
- package/_mjs/Fiber/FiberRuntime.mjs +16 -17
- package/_mjs/Fiber/FiberRuntime.mjs.map +1 -1
- package/_mjs/FiberRef/api/locallyScoped.mjs +1 -1
- package/_mjs/FiberRef/api/locallyScopedWith.mjs +1 -1
- package/_mjs/FiberRef/api.mjs +0 -107
- package/_mjs/FiberRef/api.mjs.map +1 -1
- package/_mjs/FiberRef/constructors.mjs +1 -1
- package/_mjs/FiberRef/operations.mjs +109 -0
- package/_mjs/FiberRef/operations.mjs.map +1 -0
- package/_mjs/FiberRef.mjs +1 -0
- package/_mjs/FiberRef.mjs.map +1 -1
- package/_mjs/FiberRefs/api.mjs +89 -0
- package/_mjs/FiberRefs/api.mjs.map +1 -1
- package/_mjs/FiberRefs.mjs +0 -1
- package/_mjs/FiberRefs.mjs.map +1 -1
- package/_mjs/Future/api.mjs +1 -3
- package/_mjs/Future/api.mjs.map +1 -1
- package/_mjs/IO/api/asyncIO.mjs +1 -3
- package/_mjs/IO/api/asyncIO.mjs.map +1 -1
- package/_mjs/IO/api/bracketExit.mjs +1 -3
- package/_mjs/IO/api/bracketExit.mjs.map +1 -1
- package/_mjs/IO/api/clockWith.mjs +1 -1
- package/_mjs/IO/api/concurrency.mjs +1 -1
- package/_mjs/IO/api/consoleWith.mjs +1 -1
- package/_mjs/IO/api/daemonChildren.mjs +11 -0
- package/_mjs/IO/api/daemonChildren.mjs.map +1 -0
- package/_mjs/IO/api/disconnect.mjs +23 -0
- package/_mjs/IO/api/disconnect.mjs.map +1 -0
- package/_mjs/IO/api/environment.mjs +1 -1
- package/_mjs/IO/api/foreachConcurrent.mjs +19 -20
- package/_mjs/IO/api/foreachConcurrent.mjs.map +1 -1
- package/_mjs/IO/api/fork.mjs +6 -2
- package/_mjs/IO/api/fork.mjs.map +1 -1
- package/_mjs/IO/api/forkDaemon.mjs +13 -0
- package/_mjs/IO/api/forkDaemon.mjs.map +1 -0
- package/_mjs/IO/api/forkIn.mjs +2 -4
- package/_mjs/IO/api/forkIn.mjs.map +1 -1
- package/_mjs/IO/api/forkScoped.mjs +2 -4
- package/_mjs/IO/api/forkScoped.mjs.map +1 -1
- package/_mjs/IO/api/fulfill.mjs +1 -3
- package/_mjs/IO/api/fulfill.mjs.map +1 -1
- package/_mjs/IO/api/interrupt.mjs +6 -55
- package/_mjs/IO/api/interrupt.mjs.map +1 -1
- package/_mjs/IO/api/race.mjs +22 -12
- package/_mjs/IO/api/race.mjs.map +1 -1
- package/_mjs/IO/api/raceWith.mjs +59 -0
- package/_mjs/IO/api/raceWith.mjs.map +1 -0
- package/_mjs/IO/api/randomWith.mjs +1 -1
- package/_mjs/IO/api/supervised.mjs +1 -1
- package/_mjs/IO/api/transplant.mjs +23 -0
- package/_mjs/IO/api/transplant.mjs.map +1 -0
- package/_mjs/IO/api/whenFiberRef.mjs +12 -0
- package/_mjs/IO/api/whenFiberRef.mjs.map +1 -0
- package/_mjs/IO/api/whenRef.mjs +13 -0
- package/_mjs/IO/api/whenRef.mjs.map +1 -0
- package/_mjs/IO/api/zipConcurrent.mjs +23 -17
- package/_mjs/IO/api/zipConcurrent.mjs.map +1 -1
- package/_mjs/IO/api.mjs +16 -3
- package/_mjs/IO/api.mjs.map +1 -1
- package/_mjs/IO.mjs +7 -1
- package/_mjs/IO.mjs.map +1 -1
- package/_mjs/Layer/MemoMap.mjs +1 -3
- package/_mjs/Layer/MemoMap.mjs.map +1 -1
- package/_mjs/RefSubject/Atomic.mjs +1 -1
- package/_mjs/RefSubject/Atomic.mjs.map +1 -1
- package/_mjs/Reloadable/constructors.mjs +1 -1
- package/_mjs/Reloadable/definition.mjs +1 -1
- package/_mjs/STM/api/atomically.mjs +2 -4
- package/_mjs/STM/api/atomically.mjs.map +1 -1
- package/_mjs/ScopedRef/api.mjs +2 -6
- package/_mjs/ScopedRef/api.mjs.map +1 -1
- package/_mjs/State/api.mjs +1 -1
- package/_mjs/Stream/api.mjs +137 -135
- package/_mjs/Stream/api.mjs.map +1 -1
- package/_mjs/TReentrantLock/api.mjs +2 -6
- package/_mjs/TReentrantLock/api.mjs.map +1 -1
- package/_mjs/TSemaphore/api.mjs +1 -3
- package/_mjs/TSemaphore/api.mjs.map +1 -1
- package/_src/Channel/api.ts +1 -1
- package/_src/FiberRef/api.ts +0 -114
- package/_src/FiberRef/operations.ts +115 -0
- package/_src/FiberRef.ts +1 -0
- package/_src/FiberRefs/api.ts +72 -0
- package/_src/FiberRefs.ts +0 -1
- package/_src/Future/api.ts +1 -1
- package/_src/IO/api/asyncIO.ts +1 -1
- package/_src/IO/api/bracketExit.ts +1 -1
- package/_src/IO/api/daemonChildren.ts +6 -0
- package/_src/IO/api/disconnect.ts +25 -0
- package/_src/IO/api/foreachConcurrent.ts +1 -1
- package/_src/IO/api/fork.ts +3 -0
- package/_src/IO/api/forkDaemon.ts +12 -0
- package/_src/IO/api/forkIn.ts +1 -1
- package/_src/IO/api/forkScoped.ts +1 -3
- package/_src/IO/api/fulfill.ts +1 -1
- package/_src/IO/api/interrupt.ts +5 -56
- package/_src/IO/api/race.ts +18 -8
- package/_src/IO/api/{core-scope.ts → raceWith.ts} +2 -44
- package/_src/IO/api/transplant.ts +19 -0
- package/_src/IO/api/whenFiberRef.ts +9 -0
- package/_src/IO/api/whenRef.ts +9 -0
- package/_src/IO/api/zipConcurrent.ts +41 -43
- package/_src/IO/api.ts +18 -2
- package/_src/IO.ts +7 -1
- package/_src/Layer/MemoMap.ts +1 -1
- package/_src/RefSubject/Atomic.ts +1 -1
- package/_src/STM/api/atomically.ts +1 -1
- package/_src/ScopedRef/api.ts +2 -2
- package/_src/TReentrantLock/api.ts +2 -2
- package/_src/TSemaphore/api.ts +1 -1
- package/package.json +2 -2
- package/FiberRefs/join.d.ts +0 -9
- package/IO/api/core-scope.d.ts +0 -43
- package/_cjs/FiberRefs/join.cjs +0 -104
- package/_cjs/FiberRefs/join.cjs.map +0 -1
- package/_cjs/IO/api/core-scope.cjs.map +0 -1
- package/_mjs/FiberRefs/join.mjs +0 -96
- package/_mjs/FiberRefs/join.mjs.map +0 -1
- package/_mjs/IO/api/core-scope.mjs +0 -97
- package/_mjs/IO/api/core-scope.mjs.map +0 -1
- package/_src/FiberRefs/join.ts +0 -71
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.forkScoped = forkScoped;
|
|
7
7
|
var tsplus_module_1 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Fiber/api/interrupt"));
|
|
8
8
|
var tsplus_module_2 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/addFinalizer"));
|
|
9
|
-
var tsplus_module_3 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/
|
|
9
|
+
var tsplus_module_3 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/forkDaemon"));
|
|
10
10
|
var tsplus_module_4 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api"));
|
|
11
11
|
var tsplus_module_5 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/interrupt"));
|
|
12
12
|
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); }
|
|
@@ -15,8 +15,6 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
15
15
|
* @tsplus getter fncts.io.IO forkScoped
|
|
16
16
|
*/
|
|
17
17
|
function forkScoped(self, __tsplusTrace) {
|
|
18
|
-
return tsplus_module_5.uninterruptibleMask((
|
|
19
|
-
restore
|
|
20
|
-
}) => tsplus_module_4.tap(fiber => tsplus_module_2.addFinalizer(() => tsplus_module_1.interrupt(fiber), __tsplusTrace), __tsplusTrace)(tsplus_module_3.forkDaemon(restore(self, __tsplusTrace), __tsplusTrace)));
|
|
18
|
+
return tsplus_module_5.uninterruptibleMask(restore => tsplus_module_4.tap(fiber => tsplus_module_2.addFinalizer(() => tsplus_module_1.interrupt(fiber), __tsplusTrace), __tsplusTrace)(tsplus_module_3.forkDaemon(restore(self, __tsplusTrace), __tsplusTrace)));
|
|
21
19
|
}
|
|
22
20
|
//# sourceMappingURL=forkScoped.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forkScoped.cjs","mappings":";;;;;;;;;;;;;AAAA;;;AAGM,SAAUA,UAAU,CACxBC,IAAiB,EACjBC,aAAsB;EAEtB,OAAOC,
|
|
1
|
+
{"version":3,"file":"forkScoped.cjs","mappings":";;;;;;;;;;;;;AAAA;;;AAGM,SAAUA,UAAU,CACxBC,IAAiB,EACjBC,aAAsB;EAEtB,OAAOC,oCAAwBC,OAAO,IAAKC,oBAA8BC,KAAK,IAAKC,6DAAgBD,KAAK,GAFxGJ,cAEmH,EAFnHA,0CAE2CE,OAAO,CAACH,IAAI,EAFvDC,cAEwD,EAFxDA,eAEoH,CAAC;AACvH","names":["forkScoped","self","__tsplusTrace","tsplus_module_5","restore","tsplus_module_4","fiber","tsplus_module_2"],"sourceRoot":"","sources":["../../../_src/IO/api/forkScoped.ts"],"sourcesContent":[null]}
|
package/_cjs/IO/api/fulfill.cjs
CHANGED
|
@@ -18,9 +18,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
18
18
|
*/
|
|
19
19
|
function fulfill(p, __tsplusTrace) {
|
|
20
20
|
return effect => {
|
|
21
|
-
return tsplus_module_3.uninterruptibleMask((
|
|
22
|
-
restore
|
|
23
|
-
}) => tsplus_module_2.flatMap(exit => tsplus_module_1.done(exit, __tsplusTrace)(p), __tsplusTrace)(tsplus_module_2.result(restore(effect, __tsplusTrace), __tsplusTrace)));
|
|
21
|
+
return tsplus_module_3.uninterruptibleMask(restore => tsplus_module_2.flatMap(exit => tsplus_module_1.done(exit, __tsplusTrace)(p), __tsplusTrace)(tsplus_module_2.result(restore(effect, __tsplusTrace), __tsplusTrace)));
|
|
24
22
|
};
|
|
25
23
|
}
|
|
26
24
|
//# sourceMappingURL=fulfill.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fulfill.cjs","mappings":";;;;;;;;;;;AAAA;;;;;;;AAOM,SAAUA,OAAO,CAAOC,CAAe,EAAEC,aAAsB;EACnE,OAAWC,MAAmB,IAA2B;IACvD,OAAOC,
|
|
1
|
+
{"version":3,"file":"fulfill.cjs","mappings":";;;;;;;;;;;AAAA;;;;;;;AAOM,SAAUA,OAAO,CAAOC,CAAe,EAAEC,aAAsB;EACnE,OAAWC,MAAmB,IAA2B;IACvD,OAAOC,oCAAwBC,OAAO,IAAKC,wBAAgCC,IAAI,IAAKC,qBAAOD,IAAI,EAFpDL,eAEyCD,CAAC,CAAW,EAFrDC,sCAEAG,OAAO,CAACF,MAAM,EAFdD,cAEe,EAFfA,eAEsD,CAAC;EACpG,CAAC;AACH","names":["fulfill","p","__tsplusTrace","effect","tsplus_module_3","restore","tsplus_module_2","exit","tsplus_module_1"],"sourceRoot":"","sources":["../../../_src/IO/api/fulfill.ts"],"sourcesContent":[null]}
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.disconnect = void 0;
|
|
7
6
|
exports.ensuring = ensuring;
|
|
8
7
|
exports.interruptible = exports.interruptAs = exports.interrupt = void 0;
|
|
9
8
|
exports.interruptibleMask = interruptibleMask;
|
|
10
|
-
exports.
|
|
9
|
+
exports.onExit = void 0;
|
|
10
|
+
exports.onInterrupt = onInterrupt;
|
|
11
11
|
exports.onInterruptWith = onInterruptWith;
|
|
12
12
|
exports.uninterruptibleMask = exports.uninterruptible = void 0;
|
|
13
13
|
var tsplus_module_1 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Cause/api"));
|
|
@@ -16,8 +16,6 @@ var tsplus_module_3 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require
|
|
|
16
16
|
var tsplus_module_4 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/RuntimeFlags/RuntimeFlags"));
|
|
17
17
|
var tsplus_module_5 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Exit/api"));
|
|
18
18
|
var tsplus_module_6 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Exit/constructors"));
|
|
19
|
-
var tsplus_module_7 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Fiber/api/join"));
|
|
20
|
-
var tsplus_module_8 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/core-scope"));
|
|
21
19
|
var _definition = /*#__PURE__*/require("@fncts/io/IO/definition");
|
|
22
20
|
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); }
|
|
23
21
|
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; }
|
|
@@ -30,20 +28,10 @@ const uninterruptible = uninterruptible_1;
|
|
|
30
28
|
exports.uninterruptible = uninterruptible;
|
|
31
29
|
const uninterruptibleMask = uninterruptibleMask_1;
|
|
32
30
|
exports.uninterruptibleMask = uninterruptibleMask;
|
|
33
|
-
const onInterrupt = onInterrupt_1;
|
|
34
|
-
exports.onInterrupt = onInterrupt;
|
|
35
31
|
const onExit = onExit_1;
|
|
36
32
|
exports.onExit = onExit;
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
const RestoreInterruptible = {
|
|
40
|
-
restore: (io, __tsplusTrace) => interruptible_1(io, fileName_1 + ":11:37"),
|
|
41
|
-
force: (io, __tsplusTrace) => interruptible_1(io, fileName_1 + ":12:35")
|
|
42
|
-
};
|
|
43
|
-
const RestoreUninterruptible = {
|
|
44
|
-
restore: (io, __tsplusTrace) => uninterruptible_1(io, fileName_1 + ":16:37"),
|
|
45
|
-
force: (io, __tsplusTrace) => interruptible_1(disconnect_1(uninterruptible_1(io, fileName_1 + ":17:35"), fileName_1 + ":17:51"), fileName_1 + ":17:62")
|
|
46
|
-
};
|
|
33
|
+
const RestoreInterruptible = (io, __tsplusTrace) => interruptible_1(io, fileName_1 + ":7:81");
|
|
34
|
+
const RestoreUninterruptible = (io, __tsplusTrace) => uninterruptible_1(io, fileName_1 + ":9:83");
|
|
47
35
|
/**
|
|
48
36
|
* Returns an effect that is interrupted as if by the specified fiber.
|
|
49
37
|
*
|
|
@@ -58,22 +46,7 @@ function interruptAs_1(fiberId, __tsplusTrace) {
|
|
|
58
46
|
*
|
|
59
47
|
* @tsplus static fncts.io.IOOps interrupt
|
|
60
48
|
*/
|
|
61
|
-
const interrupt = /*#__PURE__*/tsplus_module_2.flatMap(interruptAs_1, fileName_1 + ":
|
|
62
|
-
// /**
|
|
63
|
-
// * Switches the interrupt status for this effect. If `true` is used, then the
|
|
64
|
-
// * effect becomes interruptible (the default), while if `false` is used, then
|
|
65
|
-
// * the effect becomes uninterruptible. These changes are compositional, so
|
|
66
|
-
// * they only affect regions of the effect.
|
|
67
|
-
// *
|
|
68
|
-
// * @tsplus fluent fncts.io.IO setInterruptStatus
|
|
69
|
-
// */
|
|
70
|
-
// export function setInterruptStatus_<R, E, A>(
|
|
71
|
-
// self: IO<R, E, A>,
|
|
72
|
-
// flag: InterruptStatus,
|
|
73
|
-
// __tsplusTrace?: string,
|
|
74
|
-
// ): IO<R, E, A> {
|
|
75
|
-
// return new SetInterrupt(self, flag, __tsplusTrace);
|
|
76
|
-
// }
|
|
49
|
+
const interrupt = /*#__PURE__*/tsplus_module_2.flatMap(interruptAs_1, fileName_1 + ":26:69")(tsplus_module_2.fiberId);
|
|
77
50
|
/**
|
|
78
51
|
* Returns a new effect that performs the same operations as this effect, but
|
|
79
52
|
* interruptibly, even if composed inside of an uninterruptible region.
|
|
@@ -121,9 +94,7 @@ function uninterruptibleMask_1(f) {
|
|
|
121
94
|
*/
|
|
122
95
|
function ensuring(finalizer, __tsplusTrace) {
|
|
123
96
|
return self => {
|
|
124
|
-
return uninterruptibleMask_1((
|
|
125
|
-
restore
|
|
126
|
-
}) => tsplus_module_2.matchCauseIO(cause1 => tsplus_module_2.matchCauseIO(cause2 => tsplus_module_2.failCauseNow(tsplus_module_1.then(cause1, cause2), __tsplusTrace), () => tsplus_module_2.failCauseNow(cause1, __tsplusTrace), __tsplusTrace)(finalizer), a => tsplus_module_2.map(() => a, __tsplusTrace)(finalizer), __tsplusTrace)(restore(self, __tsplusTrace)));
|
|
97
|
+
return uninterruptibleMask_1(restore => tsplus_module_2.matchCauseIO(cause1 => tsplus_module_2.matchCauseIO(cause2 => tsplus_module_2.failCauseNow(tsplus_module_1.then(cause1, cause2), __tsplusTrace), () => tsplus_module_2.failCauseNow(cause1, __tsplusTrace), __tsplusTrace)(finalizer), a => tsplus_module_2.map(() => a, __tsplusTrace)(finalizer), __tsplusTrace)(restore(self, __tsplusTrace)));
|
|
127
98
|
};
|
|
128
99
|
}
|
|
129
100
|
/**
|
|
@@ -142,7 +113,7 @@ function interruptibleMask(k, __tsplusTrace) {
|
|
|
142
113
|
*
|
|
143
114
|
* @tsplus pipeable fncts.io.IO onInterrupt
|
|
144
115
|
*/
|
|
145
|
-
function
|
|
116
|
+
function onInterrupt(cleanup, __tsplusTrace) {
|
|
146
117
|
return ma => {
|
|
147
118
|
return onExit_1(exit => tsplus_module_5.match(cause => tsplus_module_1.isInterruptedOnly(cause) ? cleanup() : tsplus_module_2.unit, () => tsplus_module_2.unit)(exit), __tsplusTrace)(ma);
|
|
148
119
|
};
|
|
@@ -163,9 +134,7 @@ function onInterruptWith(cleanup, __tsplusTrace) {
|
|
|
163
134
|
*/
|
|
164
135
|
function onExit_1(cleanup, __tsplusTrace) {
|
|
165
136
|
return self => {
|
|
166
|
-
return uninterruptibleMask_1(({
|
|
167
|
-
restore
|
|
168
|
-
}) => tsplus_module_2.matchCauseIO(failure1 => {
|
|
137
|
+
return uninterruptibleMask_1(restore => tsplus_module_2.matchCauseIO(failure1 => {
|
|
169
138
|
const result = tsplus_module_6.failCause(failure1);
|
|
170
139
|
return tsplus_module_2.matchCauseIO(failure2 => tsplus_module_2.failCauseNow(tsplus_module_1.then(failure1, failure2), __tsplusTrace), () => tsplus_module_2.fromExitNow(result, __tsplusTrace), __tsplusTrace)(cleanup(result));
|
|
171
140
|
}, success => {
|
|
@@ -174,24 +143,4 @@ function onExit_1(cleanup, __tsplusTrace) {
|
|
|
174
143
|
}, __tsplusTrace)(restore(self, __tsplusTrace)));
|
|
175
144
|
};
|
|
176
145
|
}
|
|
177
|
-
/**
|
|
178
|
-
* Returns an IO whose interruption will be disconnected from the
|
|
179
|
-
* fiber's own interruption, being performed in the background without
|
|
180
|
-
* slowing down the fiber's interruption.
|
|
181
|
-
*
|
|
182
|
-
* This method is useful to create "fast interrupting" effects. For
|
|
183
|
-
* example, if you call this on a bracketed effect, then even if the
|
|
184
|
-
* effect is "stuck" in acquire or release, its interruption will return
|
|
185
|
-
* immediately, while the acquire / release are performed in the
|
|
186
|
-
* background.
|
|
187
|
-
*
|
|
188
|
-
* See timeout and race for other applications.
|
|
189
|
-
*
|
|
190
|
-
* @tsplus getter fncts.io.IO disconnect
|
|
191
|
-
*/
|
|
192
|
-
function disconnect_1(self, __tsplusTrace) {
|
|
193
|
-
return uninterruptibleMask_1(({
|
|
194
|
-
restore
|
|
195
|
-
}) => tsplus_module_2.flatMap(fiberId => tsplus_module_2.flatMap(fiber => onInterrupt_1(() => fiber.interruptAsFork(fiberId), __tsplusTrace)(restore(tsplus_module_7.join(fiber, __tsplusTrace), __tsplusTrace)), __tsplusTrace)(tsplus_module_8.forkDaemon(restore(self, __tsplusTrace), __tsplusTrace)), __tsplusTrace)(tsplus_module_2.fiberId));
|
|
196
|
-
}
|
|
197
146
|
//# sourceMappingURL=interrupt.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interrupt.cjs","mappings":"
|
|
1
|
+
{"version":3,"file":"interrupt.cjs","mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAkF;AAAA;;MAelEA,WAAW;AAAA;MA0BXC,aAAa;AAAA;MAebC,eAAe;AAAA;MAWfC,mBAAmB;AAAA;MAgFnBC,MAAM;AAAA;AA7ItB,MAAMC,oBAAoB,GAA6B,CAACC,EAAE,EAAEC,aAAa,KAAIC,gBAACF,EAAE,uBAAc;AAE9F,MAAMG,sBAAsB,GAA6B,CAACH,EAAE,EAAEC,aAAa,KAAIG,kBAACJ,EAAE,uBAAgB;AAElG;;;;;AAKA,uBAA4BK,OAAgB,EAAEJ,aAAsB;EAClE,OAAOK,6BAAgBC,0BAAgBF,OAAO,CAAC,EADHJ,cACI;AAClD;AAEA;;;;;;AAMO,MAAMO,SAAS,gBAA4BF,sFAAkC;AAEpF;;;;;;;;;;;;;;AAAA;AAcA,yBAAuCG,IAAiB,EAAER,aAAsB;EAC9E,OAAO,IAAIS,yBAAa,CAACD,IAAI,EAAER,aAAa,CAAC;AAC/C;AAEA;;;;;;;;;;;AAWA,2BAAyCQ,IAAiB,EAAER,aAAsB;EAChF,OAAO,IAAIU,2BAAe,CAACF,IAAI,EAAER,aAAa,CAAC;AACjD;AAEA;;;;;;;AAOA,+BAA6CW,CAAqD;EAChG,OAAO,IAAIC,mBAAO,CAACC,2DAA8C,EAAGC,QAAQ,IAC1EH,CAAC,CAACI,qCAAQ,IAAgBjB,oBAAoB,GAAGI,sBAAsB,CAAC,CACzE;AACH;AAEA;;;AAGM,SAAUc,QAAQ,CAAKC,SAA6B,EAAEjB,aAAsB;EAChF,OAAiBQ,IAAiB,IAAsB;IACtD,OAAOU,sBAAwBC,OAAO,IACpCd,6BACGe,MAAM,IACLf,6BACGgB,MAAM,IAAKhB,6BAAgBC,qBAAWc,MAAM,EAAEC,MAAM,CAAC,EANNrB,cAMO,EACvD,MAAMK,6BAAgBe,MAAM,EAPoBpB,cAOnB,EAPmBA,eAKlDiB,SAAS,CAGR,EACFK,CAAC,IAAKjB,oBAAc,MAAMiB,CAAC,EATwBtB,eAS7CiB,SAAS,CAAa,EATuBjB,eAGtDmB,OAAO,CAACX,IAAI,EAH0CR,cAGzC,CAOZ,CACF;EACH,CAAC;AACH;AAEA;;;;;;;AAOM,SAAUuB,iBAAiB,CAC/BC,CAAqD,EACrDxB,aAAsB;EAEtB,OAAOK,mCACJoB,IAAI,IAAIxB,gBAACuB,CAAC,CAACC,IAAI,CAACC,eAAe,GAAG5B,oBAAoB,GAAGI,sBAAsB,CAAC,EAHnFF,cAGiG,EAHjGA,cAIC;AACH;AAEA;;;;;;AAMM,SAAU2B,WAAW,CAASC,OAA8B,EAAE5B,aAAsB;EACxF,OAAiB6B,EAAe,IAA2B;IACzD,OAAOC,SAAWC,IAAI,IACpBC,sBACGC,KAAK,IAAM3B,uCAAK,IAAqBsB,OAAO,EAAE,GAAEvB,oBAAS,EAC1D,MAAKA,oBAAQ,EAFf0B,IAAI,CAGH,EAN6D/B,eAEzD6B,EAAE,CAKR;EACH,CAAC;AACH;AAEA;;;;;;AAMM,SAAUK,eAAe,CAC7BN,OAA4D,EAC5D5B,aAAsB;EAEtB,OAAiB6B,EAAe,IAA2B;IACzD,OAAOC,SAAWC,IAAI,IACpBC,sBACGC,KAAK,IAAM3B,uCAAK,IAAqBsB,OAAO,8BAACK,KAAK,EAAc,GAAE5B,oBAAS,EAC5E,MAAKA,oBAAQ,EAFf0B,IAAI,CAGH,EAPL/B,eAGS6B,EAAE,CAKR;EACH,CAAC;AACH;AAEA;;;AAGA,kBAAqCD,OAA8C,EAAE5B,aAAsB;EACzG,OAAWQ,IAAiB,IAA2B;IACrD,OAAOU,sBAAwBC,OAAO,IACpCd,6BACG8B,QAAQ,IAAI;MACX,MAAMC,MAAM,GAAGC,0BAAeF,QAAQ,CAAC;MACvC,OAAO9B,6BACJiC,QAAQ,IAAKjC,6BAAgBC,qBAAW6B,QAAQ,EAAEG,QAAQ,CAAC,EAPatC,cAOZ,EAC7D,MAAMK,4BAAe+B,MAAM,EAR8CpC,cAQ7C,EAR6CA,eAMpE4B,OAAO,CAACQ,MAAM,CAAC,CAGrB;IACH,CAAC,EACAG,OAAO,IAAI;MACV,MAAMH,MAAM,GAAGC,wBAAaE,OAAO,CAAC;MACpC,gCAAyBlC,4BAAe+B,MAAM,EAb6BpC,cAa5B,EAb4BA,eAapE4B,OAAO,CAACQ,MAAM,CAAC;IACxB,CAAC,EAd4EpC,eAG/EmB,OAAO,CAACX,IAAI,EAHmER,cAGlE,CAYZ,CACF;EACH,CAAC;AACH","names":["interruptAs","interruptible","uninterruptible","uninterruptibleMask","onExit","RestoreInterruptible","io","__tsplusTrace","interruptible_1","RestoreUninterruptible","uninterruptible_1","fiberId","tsplus_module_2","tsplus_module_1","interrupt","self","Interruptible","Uninterruptible","f","Dynamic","tsplus_module_3","oldFlags","tsplus_module_4","ensuring","finalizer","uninterruptibleMask_1","restore","cause1","cause2","a","interruptibleMask","k","flag","isInterruptible","onInterrupt","cleanup","ma","onExit_1","exit","tsplus_module_5","cause","onInterruptWith","failure1","result","tsplus_module_6","failure2","success"],"sourceRoot":"","sources":["../../../_src/IO/api/interrupt.ts"],"sourcesContent":[null]}
|
package/_cjs/IO/api/race.cjs
CHANGED
|
@@ -4,19 +4,19 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.race = race;
|
|
7
|
-
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var
|
|
7
|
+
exports.raceAwait = void 0;
|
|
8
|
+
var tsplus_module_1 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api"));
|
|
9
|
+
var tsplus_module_2 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/disconnect"));
|
|
10
|
+
var tsplus_module_3 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/interrupt"));
|
|
11
|
+
var tsplus_module_4 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Cause/api"));
|
|
12
|
+
var tsplus_module_5 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Fiber/api/join"));
|
|
13
|
+
var tsplus_module_6 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Fiber/api/interruptAs"));
|
|
14
|
+
var tsplus_module_7 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Exit/api"));
|
|
15
|
+
var tsplus_module_8 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/raceWith"));
|
|
14
16
|
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); }
|
|
15
17
|
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; }
|
|
16
18
|
const fileName_1 = "(@fncts/io) src/IO/api/race.ts";
|
|
17
|
-
|
|
18
|
-
return tsplus_module_1.uninterruptibleMask(restore => restore.force(io, __tsplusTrace));
|
|
19
|
-
}
|
|
19
|
+
const raceAwait = raceAwait_1;
|
|
20
20
|
/**
|
|
21
21
|
* Returns an IO that races this effect with the specified effect,
|
|
22
22
|
* returning the first successful `A` from the faster side. If one effect
|
|
@@ -28,9 +28,21 @@ function maybeDisconnect(io, __tsplusTrace) {
|
|
|
28
28
|
*
|
|
29
29
|
* @tsplus pipeable fncts.io.IO race
|
|
30
30
|
*/
|
|
31
|
+
exports.raceAwait = raceAwait;
|
|
31
32
|
function race(that) {
|
|
32
|
-
return
|
|
33
|
-
return
|
|
33
|
+
return self => {
|
|
34
|
+
return tsplus_module_1.checkInterruptible(status => raceAwait_1(disconnect(that, status, fileName_1 + ":14:91"))(disconnect(self, status, fileName_1 + ":14:56")), fileName_1 + ":14:33");
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
function disconnect(io, interruptStatus, __tsplusTrace) {
|
|
38
|
+
if (interruptStatus.isInterruptible) return tsplus_module_2.disconnect(io, __tsplusTrace);else return tsplus_module_3.interruptible(tsplus_module_2.disconnect(tsplus_module_3.uninterruptible(io, __tsplusTrace), __tsplusTrace), __tsplusTrace);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* @tsplus pipeable fncts.io.IO raceAwait
|
|
42
|
+
*/
|
|
43
|
+
function raceAwait_1(that) {
|
|
44
|
+
return self => {
|
|
45
|
+
return tsplus_module_1.fiberIdWith(id => tsplus_module_8.raceWith(() => that, (exit, right) => tsplus_module_7.match(cause => tsplus_module_1.mapErrorCause(c => tsplus_module_4.both(cause, c), fileName_1 + ":33:48")(tsplus_module_5.join(right, fileName_1 + ":33:29")), a => tsplus_module_1.as(() => a, fileName_1 + ":34:44")(tsplus_module_6.interruptAs(right, id)))(exit), (exit, left) => tsplus_module_7.match(cause => tsplus_module_1.mapErrorCause(c => tsplus_module_4.both(cause, c), fileName_1 + ":38:47")(tsplus_module_5.join(left, fileName_1 + ":38:28")), a1 => tsplus_module_1.as(() => a1, fileName_1 + ":39:44")(tsplus_module_6.interruptAs(left, id)))(exit), fileName_1 + ":29:20")(self));
|
|
34
46
|
};
|
|
35
47
|
}
|
|
36
48
|
//# sourceMappingURL=race.cjs.map
|
package/_cjs/IO/api/race.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"race.cjs","mappings":"
|
|
1
|
+
{"version":3,"file":"race.cjs","mappings":";;;;;;;;;;;;;;;;;;MAyBgBA,SAAS;AAzBzB;;;;;;;;;;;AAAA;AAWM,SAAUC,IAAI,CAAaC,IAAoB;EACnD,OAAiBC,IAAiB,IAAgC;IAChE,OAAOC,mCAAuBC,MAAM,IAAKC,YAAmCC,UAAU,CAACL,IAAI,EAAEG,MAAM,wBAAC,EAA3DE,UAAU,CAACJ,IAAI,EAAEE,MAAM,wBAAC,CAAoC,wBAAC;EACxG,CAAC;AACH;AAEA,SAASE,UAAU,CAAUC,EAAe,EAAEC,eAAgC,EAAEC,aAAsB;EACpG,IAAID,eAAe,CAACE,eAAe,EAAE,kCAAOH,EAAE,EADgCE,eACpB,KACrD,gGAAOF,EAAE,EAFgEE;AAGhF;AAEA;;;AAGA,qBAAsCR,IAAoB;EACxD,OAAiBC,IAAiB,IAAgC;IAChE,OAAOC,4BAAgBQ,EAAE,IACvBC,+BACEX,IAAI,EACJ,CAACY,IAAI,EAAEC,KAAK,KACVC,sBACGC,KAAK,IAAKb,8BAA0Bc,CAAC,IAAKC,qBAAWF,KAAK,EAAEC,CAAC,CAAC,8CAApDH,KAAK,yBAAgD,EAC/DK,CAAC,IAAKhB,yBAAyBgB,CAAC,yBAA1BC,iCAAK,EAAaT,EAAE,CAAC,CAAM,EAFpCE,IAAI,CAGH,EACH,CAACA,IAAI,EAAEQ,IAAI,KACTN,sBACGC,KAAK,IAAKb,8BAAyBc,CAAC,IAAKC,qBAAWF,KAAK,EAAEC,CAAC,CAAC,8CAAnDI,IAAI,yBAAgD,EAC9DC,EAAE,IAAKnB,yBAAwBmB,EAAE,yBAA1BF,gCAAI,EAAaT,EAAE,CAAC,CAAO,EAFrCE,IAAI,CAGH,yBAXLX,IAAI,CAYH,CACF;EACH,CAAC;AACH","names":["raceAwait","race","that","self","tsplus_module_1","status","raceAwait_1","disconnect","io","interruptStatus","__tsplusTrace","isInterruptible","id","tsplus_module_8","exit","right","tsplus_module_7","cause","c","tsplus_module_4","a","tsplus_module_6","left","a1"],"sourceRoot":"","sources":["../../../_src/IO/api/race.ts"],"sourcesContent":[null]}
|
|
@@ -3,37 +3,23 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.daemonChildren = void 0;
|
|
7
|
-
exports.forkDaemon = forkDaemon;
|
|
8
6
|
exports.raceFibersWith = void 0;
|
|
9
7
|
exports.raceWith = raceWith;
|
|
10
|
-
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var
|
|
14
|
-
var tsplus_module_4 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/FiberRef/api"));
|
|
15
|
-
var tsplus_module_5 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api"));
|
|
16
|
-
var tsplus_module_6 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Maybe/api"));
|
|
17
|
-
var tsplus_module_7 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/fork"));
|
|
8
|
+
var tsplus_module_1 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/fork"));
|
|
9
|
+
var tsplus_module_2 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/FiberRef/unsafe"));
|
|
10
|
+
var tsplus_module_3 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Maybe/constructors"));
|
|
11
|
+
var tsplus_module_4 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api"));
|
|
18
12
|
var _AtomicBoolean = /*#__PURE__*/require("@fncts/base/internal/AtomicBoolean");
|
|
19
13
|
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); }
|
|
20
14
|
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; }
|
|
21
|
-
const daemonChildren = daemonChildren_1;
|
|
22
|
-
exports.daemonChildren = daemonChildren;
|
|
23
15
|
const raceFibersWith = raceFibersWith_1;
|
|
24
16
|
exports.raceFibersWith = raceFibersWith;
|
|
25
|
-
/**
|
|
26
|
-
* @tsplus getter fncts.io.IO daemonChildren
|
|
27
|
-
*/
|
|
28
|
-
function daemonChildren_1(self, __tsplusTrace) {
|
|
29
|
-
return tsplus_module_4.locally(tsplus_module_3.forkScopeOverride, tsplus_module_2.just(tsplus_module_1.global), __tsplusTrace)(self);
|
|
30
|
-
}
|
|
31
17
|
/**
|
|
32
18
|
* @tsplus pipeable fncts.io.IO raceFibersWith
|
|
33
19
|
*/
|
|
34
20
|
function raceFibersWith_1(right, leftWins, rightWins, __tsplusTrace) {
|
|
35
21
|
return left => {
|
|
36
|
-
return
|
|
22
|
+
return tsplus_module_4.withFiberRuntime((parentState, parentStatus) => {
|
|
37
23
|
const right0 = right();
|
|
38
24
|
const parentRuntimeFlags = parentStatus.runtimeFlags;
|
|
39
25
|
function complete(winner, loser, cont, ab, cb) {
|
|
@@ -42,11 +28,11 @@ function raceFibersWith_1(right, leftWins, rightWins, __tsplusTrace) {
|
|
|
42
28
|
}
|
|
43
29
|
}
|
|
44
30
|
const raceIndicator = new _AtomicBoolean.AtomicBoolean(true);
|
|
45
|
-
const leftFiber =
|
|
46
|
-
const rightFiber =
|
|
47
|
-
leftFiber.setFiberRef(
|
|
48
|
-
rightFiber.setFiberRef(
|
|
49
|
-
return
|
|
31
|
+
const leftFiber = tsplus_module_1.unsafeMakeChildFiber(left, parentState, parentRuntimeFlags, null, __tsplusTrace);
|
|
32
|
+
const rightFiber = tsplus_module_1.unsafeMakeChildFiber(right0, parentState, parentRuntimeFlags, null, __tsplusTrace);
|
|
33
|
+
leftFiber.setFiberRef(tsplus_module_2.forkScopeOverride, tsplus_module_3.just(parentState.scope));
|
|
34
|
+
rightFiber.setFiberRef(tsplus_module_2.forkScopeOverride, tsplus_module_3.just(parentState.scope));
|
|
35
|
+
return tsplus_module_4.async(cb => {
|
|
50
36
|
leftFiber.addObserver(() => complete(leftFiber, rightFiber, leftWins, raceIndicator, cb));
|
|
51
37
|
rightFiber.addObserver(() => complete(rightFiber, leftFiber, rightWins, raceIndicator, cb));
|
|
52
38
|
leftFiber.startFork(left);
|
|
@@ -63,48 +49,21 @@ function raceFibersWith_1(right, leftWins, rightWins, __tsplusTrace) {
|
|
|
63
49
|
*/
|
|
64
50
|
function raceWith(right, leftWins, rightWins, __tsplusTrace) {
|
|
65
51
|
return left => {
|
|
66
|
-
return raceFibersWith_1(right, (winner, loser) =>
|
|
52
|
+
return raceFibersWith_1(right, (winner, loser) => tsplus_module_4.flatMap(exit => {
|
|
67
53
|
switch (exit._tag) {
|
|
68
54
|
case "Success" /* ExitTag.Success */:
|
|
69
|
-
return
|
|
55
|
+
return tsplus_module_4.flatMap(() => leftWins(exit, loser), __tsplusTrace)(winner.inheritAll);
|
|
70
56
|
case "Failure" /* ExitTag.Failure */:
|
|
71
57
|
return leftWins(exit, loser);
|
|
72
58
|
}
|
|
73
|
-
}, __tsplusTrace)(winner.await), (winner, loser) =>
|
|
59
|
+
}, __tsplusTrace)(winner.await), (winner, loser) => tsplus_module_4.flatMap(exit => {
|
|
74
60
|
switch (exit._tag) {
|
|
75
61
|
case "Success" /* ExitTag.Success */:
|
|
76
|
-
return
|
|
62
|
+
return tsplus_module_4.flatMap(() => rightWins(exit, loser), __tsplusTrace)(winner.inheritAll);
|
|
77
63
|
case "Failure" /* ExitTag.Failure */:
|
|
78
64
|
return rightWins(exit, loser);
|
|
79
65
|
}
|
|
80
66
|
}, __tsplusTrace)(winner.await), __tsplusTrace)(left);
|
|
81
67
|
};
|
|
82
68
|
}
|
|
83
|
-
|
|
84
|
-
* Transplants specified effects so that when those effects fork other
|
|
85
|
-
* effects, the forked effects will be governed by the scope of the
|
|
86
|
-
* fiber that executes this effect.
|
|
87
|
-
*
|
|
88
|
-
* This can be used to "graft" deep grandchildren onto a higher-level
|
|
89
|
-
* scope, effectively extending their lifespans into the parent scope.
|
|
90
|
-
*
|
|
91
|
-
* @tsplus static fncts.io.IOOps transplant
|
|
92
|
-
*/
|
|
93
|
-
function transplant(f, __tsplusTrace) {
|
|
94
|
-
return tsplus_module_5.withFiberRuntime(fiberState => {
|
|
95
|
-
const scopeOverride = fiberState.getFiberRef(tsplus_module_3.forkScopeOverride);
|
|
96
|
-
const scope = tsplus_module_6.getOrElse(() => fiberState.scope)(scopeOverride);
|
|
97
|
-
return f(tsplus_module_4.locally(tsplus_module_3.forkScopeOverride, tsplus_module_2.just(scope), __tsplusTrace));
|
|
98
|
-
}, __tsplusTrace);
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Forks the effect into a new fiber attached to the global scope. Because the
|
|
102
|
-
* new fiber is attached to the global scope, when the fiber executing the
|
|
103
|
-
* returned effect terminates, the forked fiber will continue running.
|
|
104
|
-
*
|
|
105
|
-
* @tsplus getter fncts.io.IO forkDaemon
|
|
106
|
-
*/
|
|
107
|
-
function forkDaemon(ma, __tsplusTrace) {
|
|
108
|
-
return daemonChildren_1(tsplus_module_7.fork(ma, __tsplusTrace), __tsplusTrace);
|
|
109
|
-
}
|
|
110
|
-
//# sourceMappingURL=core-scope.cjs.map
|
|
69
|
+
//# sourceMappingURL=raceWith.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raceWith.cjs","mappings":";;;;;;;;;;;AAGA;AAAmE;AAAA;MAKnDA,cAAc;AAAA;AAH9B;;;AAGA,0BACEC,KAA0B,EAC1BC,QAAmF,EACnFC,SAAoF,EACpFC,aAAsB;EAEtB,OAAQC,IAAiB,IAA0C;IACjE,OAAOC,iCAAoB,CAACC,WAAW,EAAEC,YAAY,KAAI;MACvD,MAAMC,MAAM,GAAeR,KAAK,EAAE;MAClC,MAAMS,kBAAkB,GAAGF,YAAY,CAACG,YAAY;MACpD,SAASC,QAAQ,CACfC,MAA2B,EAC3BC,KAA0B,EAC1BC,IAAgF,EAChFC,EAAiB,EACjBC,EAA6B;QAE7B,IAAID,EAAE,CAACE,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;UACjCD,EAAE,CAACF,IAAI,CAACF,MAAM,EAAEC,KAAK,CAAC,CAAC;;MAE3B;MAEA,MAAMK,aAAa,GAAG,IAAIC,4BAAa,CAAC,IAAI,CAAC;MAC7C,MAAMC,SAAS,GAAOC,qCAAwBjB,IAAI,EAAEE,WAAW,EAAEG,kBAAkB,EAAE,IAAI,EAAEN,aAAa,CAAC;MACzG,MAAMmB,UAAU,GAAMD,qCAAwBb,MAAM,EAAEF,WAAW,EAAEG,kBAAkB,EAAE,IAAI,EAAEN,aAAa,CAAC;MAC3GiB,SAAS,CAACG,WAAW,oCAA6BC,qBAAKlB,WAAW,CAACmB,KAAK,CAAC,CAAC;MAC1EH,UAAU,CAACC,WAAW,oCAA6BC,qBAAKlB,WAAW,CAACmB,KAAK,CAAC,CAAC;MAE3E,OAAOpB,sBAAUW,EAAE,IAAI;QACrBI,SAAS,CAACM,WAAW,CAAC,MAAMf,QAAQ,CAACS,SAAS,EAAEE,UAAU,EAAErB,QAAQ,EAAEiB,aAAa,EAAEF,EAAE,CAAC,CAAC;QACzFM,UAAU,CAACI,WAAW,CAAC,MAAMf,QAAQ,CAACW,UAAU,EAAEF,SAAS,EAAElB,SAAS,EAAEgB,aAAa,EAAEF,EAAE,CAAC,CAAC;QAC3FI,SAAS,CAACO,SAAS,CAACvB,IAAI,CAAC;QACzBkB,UAAU,CAACK,SAAS,CAACnB,MAAM,CAAC;MAC9B,CAAC,CAAC;IACJ,CAAC,EA9BHL,cA8BI;EACJ,CAAC;AACH;AAEA;;;;;;AAMM,SAAUyB,QAAQ,CACtB5B,KAA2B,EAC3BC,QAAoE,EACpEC,SAAqE,EACrEC,aAAsB;EAEtB,OAAQC,IAAiB,IAA4C;IACnE,OAAOyB,iBACL7B,KAAK,EACL,CAACY,MAAM,EAAEC,KAAK,KACZR,wBAAsByB,IAAI,IAAI;MAC5B,QAAQA,IAAI,CAACC,IAAI;QACf;UACE,OAAO1B,wBAA0B,MAAMJ,QAAQ,CAAC6B,IAAI,EAAEjB,KAAK,CAAC,EATxEV,eASmBS,MAAM,CAACoB,UAAU,CAAqC;QAC/D;UACE,OAAO/B,QAAQ,CAAC6B,IAAI,EAAEjB,KAAK,CAAC;MAAC;IAEnC,CAAC,EAbPV,eAMMS,MAAM,CAACqB,KAAK,CAOV,EACJ,CAACrB,MAAM,EAAEC,KAAK,KACZR,wBAAsByB,IAAI,IAAI;MAC5B,QAAQA,IAAI,CAACC,IAAI;QACf;UACE,OAAO1B,wBAA0B,MAAMH,SAAS,CAAC4B,IAAI,EAAEjB,KAAK,CAAC,EAlBzEV,eAkBmBS,MAAM,CAACoB,UAAU,CAAsC;QAChE;UACE,OAAO9B,SAAS,CAAC4B,IAAI,EAAEjB,KAAK,CAAC;MAAC;IAEpC,CAAC,EAtBPV,eAeMS,MAAM,CAACqB,KAAK,CAOV,EAtBR9B,eAGSC,IAAI,CAoBV;EACH,CAAC;AACH","names":["raceFibersWith","right","leftWins","rightWins","__tsplusTrace","left","tsplus_module_4","parentState","parentStatus","right0","parentRuntimeFlags","runtimeFlags","complete","winner","loser","cont","ab","cb","compareAndSet","raceIndicator","AtomicBoolean","leftFiber","tsplus_module_1","rightFiber","setFiberRef","tsplus_module_3","scope","addObserver","startFork","raceWith","raceFibersWith_1","exit","_tag","inheritAll","await"],"sourceRoot":"","sources":["../../../_src/IO/api/raceWith.ts"],"sourcesContent":[null]}
|
|
@@ -7,7 +7,7 @@ exports.randomWith = exports.random = void 0;
|
|
|
7
7
|
var tsplus_module_1 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Random/definition"));
|
|
8
8
|
var tsplus_module_2 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Environment/api"));
|
|
9
9
|
var tsplus_module_3 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IOEnv/services"));
|
|
10
|
-
var tsplus_module_4 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/FiberRef/
|
|
10
|
+
var tsplus_module_4 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/FiberRef/operations"));
|
|
11
11
|
var tsplus_module_5 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api"));
|
|
12
12
|
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); }
|
|
13
13
|
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; }
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.supervised = supervised;
|
|
7
7
|
var tsplus_module_1 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Supervisor/api"));
|
|
8
8
|
var tsplus_module_2 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/FiberRef/unsafe"));
|
|
9
|
-
var tsplus_module_3 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/FiberRef/
|
|
9
|
+
var tsplus_module_3 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/FiberRef/operations"));
|
|
10
10
|
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); }
|
|
11
11
|
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; }
|
|
12
12
|
/**
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.transplant = transplant;
|
|
7
|
+
var tsplus_module_1 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/FiberRef/unsafe"));
|
|
8
|
+
var tsplus_module_2 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Maybe/api"));
|
|
9
|
+
var tsplus_module_3 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Maybe/constructors"));
|
|
10
|
+
var tsplus_module_4 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/FiberRef/operations"));
|
|
11
|
+
var tsplus_module_5 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api"));
|
|
12
|
+
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); }
|
|
13
|
+
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; }
|
|
14
|
+
/**
|
|
15
|
+
* Transplants specified effects so that when those effects fork other
|
|
16
|
+
* effects, the forked effects will be governed by the scope of the
|
|
17
|
+
* fiber that executes this effect.
|
|
18
|
+
*
|
|
19
|
+
* This can be used to "graft" deep grandchildren onto a higher-level
|
|
20
|
+
* scope, effectively extending their lifespans into the parent scope.
|
|
21
|
+
*
|
|
22
|
+
* @tsplus static fncts.io.IOOps transplant
|
|
23
|
+
*/
|
|
24
|
+
function transplant(f, __tsplusTrace) {
|
|
25
|
+
return tsplus_module_5.withFiberRuntime(fiberState => {
|
|
26
|
+
const scopeOverride = fiberState.getFiberRef(tsplus_module_1.forkScopeOverride);
|
|
27
|
+
const scope = tsplus_module_2.getOrElse(() => fiberState.scope)(scopeOverride);
|
|
28
|
+
return f(tsplus_module_4.locally(tsplus_module_1.forkScopeOverride, tsplus_module_3.just(scope), __tsplusTrace));
|
|
29
|
+
}, __tsplusTrace);
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=transplant.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transplant.cjs","mappings":";;;;;;;;;;;;;AAEA;;;;;;;;;;AAUM,SAAUA,UAAU,CAAUC,CAA8B,EAAEC,aAAsB;EACxF,OAAOC,iCAAqBC,UAAU,IAAI;IACxC,MAAMC,aAAa,GAAGD,UAAU,CAACE,WAAW,mCAA4B;IACxE,MAAMC,KAAK,GAAWC,gCAAwBJ,UAAU,CAACG,KAAK,EAAxCF,aAAa,CAA4B;IAC/D,OAAOJ,CAAC,CAACQ,2DAAmCC,qBAAKH,KAAK,CAAC,EAJSL,cAIR,CAAC;EAC3D,CAAC,EALiEA,cAKhE;AACJ","names":["transplant","f","__tsplusTrace","tsplus_module_5","fiberState","scopeOverride","getFiberRef","scope","tsplus_module_2","tsplus_module_4","tsplus_module_3"],"sourceRoot":"","sources":["../../../_src/IO/api/transplant.ts"],"sourcesContent":[null]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.whenFiberRef = whenFiberRef;
|
|
7
|
+
var tsplus_module_1 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/FiberRef/operations"));
|
|
8
|
+
var tsplus_module_2 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api"));
|
|
9
|
+
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); }
|
|
10
|
+
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; }
|
|
11
|
+
/**
|
|
12
|
+
* @tsplus pipeable fncts.io.IO whenFiberRef
|
|
13
|
+
* @tsplus static fncts.io.IOOps whenFiberRef
|
|
14
|
+
*/
|
|
15
|
+
function whenFiberRef(ref, f, __tsplusTrace) {
|
|
16
|
+
return self => {
|
|
17
|
+
return tsplus_module_2.whenIO(tsplus_module_2.map(f, __tsplusTrace)(tsplus_module_1.get(ref, __tsplusTrace)), __tsplusTrace)(self);
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=whenFiberRef.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whenFiberRef.cjs","mappings":";;;;;;;;;;AAAA;;;;AAIM,SAAUA,YAAY,CAAIC,GAAgB,EAAEC,CAAe,EAAEC,aAAsB;EACvF,OAAiBC,IAAiB,IAAwB;IACxD,OAAOC,uBAAYA,oBAAYH,CAAC,EAF+BC,mCAE5CF,GAAG,EAFyCE,eAE9B,EAF8BA,eAExDC,IAAI,CAAuB;EACpC,CAAC;AACH","names":["whenFiberRef","ref","f","__tsplusTrace","self","tsplus_module_2"],"sourceRoot":"","sources":["../../../_src/IO/api/whenFiberRef.ts"],"sourcesContent":[null]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.whenRef = whenRef;
|
|
7
|
+
var tsplus_module_1 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Ref/api/get"));
|
|
8
|
+
var tsplus_module_2 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api"));
|
|
9
|
+
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); }
|
|
10
|
+
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; }
|
|
11
|
+
const fileName_1 = "(@fncts/io) src/IO/api/whenRef.ts";
|
|
12
|
+
/**
|
|
13
|
+
* @tsplus pipeable fncts.io.IO whenRef
|
|
14
|
+
* @tsplus static fncts.io.IOOps whenRef
|
|
15
|
+
*/
|
|
16
|
+
function whenRef(ref, f) {
|
|
17
|
+
return self => {
|
|
18
|
+
return tsplus_module_2.whenIO(tsplus_module_2.map(f, fileName_1 + ":7:35")(tsplus_module_1.get(ref, fileName_1 + ":7:27")), fileName_1 + ":7:23")(self);
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=whenRef.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whenRef.cjs","mappings":";;;;;;;;;;;AAAA;;;;AAIM,SAAUA,OAAO,CAAIC,GAAW,EAAEC,CAAe;EACrD,OAAiBC,IAAiB,IAAwB;IACxD,OAAOC,uBAAYA,oBAAYF,CAAC,4CAAbD,GAAG,wBAAW,wBAA1BE,IAAI,CAAuB;EACpC,CAAC;AACH","names":["whenRef","ref","f","self","tsplus_module_2"],"sourceRoot":"","sources":["../../../_src/IO/api/whenRef.ts"],"sourcesContent":[null]}
|
|
@@ -3,33 +3,31 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.zipConcurrent = zipConcurrent;
|
|
7
|
+
exports.zipWithConcurrent = void 0;
|
|
7
8
|
var tsplus_module_1 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/FiberId/constructors"));
|
|
8
9
|
var tsplus_module_2 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Future/constructors"));
|
|
9
|
-
var tsplus_module_3 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/
|
|
10
|
+
var tsplus_module_3 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Fiber/api/interruptFork"));
|
|
10
11
|
var tsplus_module_4 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api"));
|
|
11
12
|
var tsplus_module_5 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Cause/api"));
|
|
12
13
|
var tsplus_module_6 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Exit/api"));
|
|
13
|
-
var tsplus_module_7 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Fiber/api/
|
|
14
|
-
var tsplus_module_8 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Fiber/api/
|
|
14
|
+
var tsplus_module_7 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Fiber/api/await"));
|
|
15
|
+
var tsplus_module_8 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Fiber/api/join"));
|
|
15
16
|
var tsplus_module_9 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Future/api"));
|
|
16
|
-
var tsplus_module_10 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/
|
|
17
|
-
var tsplus_module_11 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/
|
|
18
|
-
var tsplus_module_12 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/
|
|
19
|
-
var tsplus_module_13 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/core-scope"));
|
|
20
|
-
var tsplus_module_14 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/interrupt"));
|
|
17
|
+
var tsplus_module_10 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/transplant"));
|
|
18
|
+
var tsplus_module_11 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/interrupt"));
|
|
19
|
+
var tsplus_module_12 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/forkDaemon"));
|
|
21
20
|
var _function = /*#__PURE__*/require("@fncts/base/data/function");
|
|
22
|
-
var
|
|
21
|
+
var _AtomicBoolean = /*#__PURE__*/require("@fncts/base/internal/AtomicBoolean");
|
|
23
22
|
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); }
|
|
24
23
|
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; }
|
|
25
|
-
const
|
|
26
|
-
exports.zipConcurrent = zipConcurrent;
|
|
24
|
+
const fileName_1 = "(@fncts/io) src/IO/api/zipConcurrent.ts";
|
|
27
25
|
const zipWithConcurrent = zipWithConcurrent_1;
|
|
28
26
|
exports.zipWithConcurrent = zipWithConcurrent;
|
|
29
27
|
/**
|
|
30
28
|
* @tsplus pipeable fncts.io.IO zipConcurrent
|
|
31
29
|
*/
|
|
32
|
-
function
|
|
30
|
+
function zipConcurrent(that, __tsplusTrace) {
|
|
33
31
|
return self => {
|
|
34
32
|
return zipWithConcurrent_1(that, _function.tuple, __tsplusTrace)(self);
|
|
35
33
|
};
|
|
@@ -39,13 +37,21 @@ function zipConcurrent_1(that, __tsplusTrace) {
|
|
|
39
37
|
*/
|
|
40
38
|
function zipWithConcurrent_1(that, f, __tsplusTrace) {
|
|
41
39
|
return self => {
|
|
42
|
-
return tsplus_module_4.flatMap(fiberId =>
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
40
|
+
return tsplus_module_4.flatMap(fiberId => tsplus_module_11.uninterruptibleMask(restore => {
|
|
41
|
+
return tsplus_module_10.transplant(graft => {
|
|
42
|
+
const future = tsplus_module_2.unsafeMake(tsplus_module_1.none);
|
|
43
|
+
const ref = new _AtomicBoolean.AtomicBoolean(false);
|
|
44
|
+
return tsplus_module_4.flatMap(([left, right]) => tsplus_module_4.matchCauseIO(cause => tsplus_module_4.zipRight(tsplus_module_4.flatMap(([left, right]) => tsplus_module_6.match(causes => tsplus_module_4.refailCause(tsplus_module_5.both(tsplus_module_5.stripFailures(cause), causes), __tsplusTrace), () => tsplus_module_4.refailCause(tsplus_module_5.stripFailures(cause), __tsplusTrace))(tsplus_module_6.zipWithCause(right, f, (a, b) => tsplus_module_5.both(a, b))(left)), __tsplusTrace)(tsplus_module_4.zip(tsplus_module_7.wait(right, __tsplusTrace), __tsplusTrace)(tsplus_module_7.wait(left, __tsplusTrace))), __tsplusTrace)(tsplus_module_4.zipRight(tsplus_module_3.interruptFork(right, __tsplusTrace), __tsplusTrace)(tsplus_module_3.interruptFork(left, __tsplusTrace))), () => tsplus_module_4.zipWith(tsplus_module_8.join(right, __tsplusTrace), f, __tsplusTrace)(tsplus_module_8.join(left, __tsplusTrace)), __tsplusTrace)(restore(tsplus_module_9.wait(future, __tsplusTrace), __tsplusTrace)), __tsplusTrace)(tsplus_module_4.zip(fork(() => that, restore, graft, future, ref), __tsplusTrace)(fork(() => self, restore, graft, future, ref)));
|
|
45
|
+
}, __tsplusTrace);
|
|
48
46
|
}), __tsplusTrace)(tsplus_module_4.fiberId);
|
|
49
47
|
};
|
|
50
48
|
}
|
|
49
|
+
function fork(io, restore, graft, future, ref) {
|
|
50
|
+
return tsplus_module_12.forkDaemon(tsplus_module_4.matchCauseIO(cause => tsplus_module_4.zipRight(tsplus_module_4.refailCause(cause, fileName_1 + ":59:55"), fileName_1 + ":59:40")(tsplus_module_9.fail(undefined, fileName_1 + ":59:27")(future)), a => {
|
|
51
|
+
if (ref.getAndSet(true)) {
|
|
52
|
+
tsplus_module_9.unsafeDone(tsplus_module_4.unit, fileName_1 + ":62:26")(future);
|
|
53
|
+
}
|
|
54
|
+
return tsplus_module_4.succeedNow(a, fileName_1 + ":64:27");
|
|
55
|
+
}, fileName_1 + ":58:43")(graft(restore(io(), fileName_1 + ":58:23"))), fileName_1 + ":66:4");
|
|
56
|
+
}
|
|
51
57
|
//# sourceMappingURL=zipConcurrent.cjs.map
|