@fncts/io 0.0.34 → 0.0.36
Sign up to get free protection for your applications and to get access to all the features.
- package/Fiber/FiberRuntime.d.ts +7 -7
- package/Fiber/constructors.d.ts +5 -0
- package/IO/api/all.d.ts +41 -0
- package/IO/api/concurrency.d.ts +11 -0
- package/IO/api/interrupt.d.ts +1 -1
- package/IO/api/raceWith.d.ts +2 -1
- package/IO/api.d.ts +7 -2
- package/IO/definition.d.ts +103 -127
- package/IO.d.ts +1 -0
- package/Push/api.d.ts +86 -36
- package/Push/definition.d.ts +28 -13
- package/Push/internal.d.ts +7 -11
- package/RefSubject/Atomic.d.ts +8 -11
- package/RefSubject/Synchronized/definition.d.ts +4 -6
- package/RefSubject/api.d.ts +0 -1
- package/RefSubject/definition.d.ts +6 -8
- package/STM/definition.d.ts +19 -2
- package/Sink/api.d.ts +24 -24
- package/Subject/Atomic.d.ts +4 -6
- package/Subject/definition.d.ts +2 -2
- package/_cjs/Channel/api/runScoped.cjs +1 -1
- package/_cjs/Channel/api/runScoped.cjs.map +1 -1
- package/_cjs/Channel/api.cjs +2 -2
- package/_cjs/Channel/api.cjs.map +1 -1
- package/_cjs/Fiber/FiberRuntime.cjs +110 -98
- package/_cjs/Fiber/FiberRuntime.cjs.map +1 -1
- package/_cjs/Fiber/constructors.cjs +10 -2
- package/_cjs/Fiber/constructors.cjs.map +1 -1
- package/_cjs/Future/api.cjs +1 -1
- package/_cjs/Future/api.cjs.map +1 -1
- package/_cjs/IO/api/all.cjs +33 -0
- package/_cjs/IO/api/all.cjs.map +1 -0
- package/_cjs/IO/api/asyncIO.cjs +1 -1
- package/_cjs/IO/api/asyncIO.cjs.map +1 -1
- package/_cjs/IO/api/bracketExit.cjs +1 -1
- package/_cjs/IO/api/bracketExit.cjs.map +1 -1
- package/_cjs/IO/api/concurrency.cjs +25 -4
- package/_cjs/IO/api/concurrency.cjs.map +1 -1
- package/_cjs/IO/api/disconnect.cjs +1 -1
- package/_cjs/IO/api/disconnect.cjs.map +1 -1
- package/_cjs/IO/api/foreachConcurrent.cjs +1 -1
- package/_cjs/IO/api/foreachConcurrent.cjs.map +1 -1
- package/_cjs/IO/api/foreachExec.cjs +1 -1
- package/_cjs/IO/api/foreachExec.cjs.map +1 -1
- package/_cjs/IO/api/forkIn.cjs +1 -1
- package/_cjs/IO/api/forkIn.cjs.map +1 -1
- package/_cjs/IO/api/forkScoped.cjs +1 -1
- package/_cjs/IO/api/forkScoped.cjs.map +1 -1
- package/_cjs/IO/api/fulfill.cjs +1 -1
- package/_cjs/IO/api/fulfill.cjs.map +1 -1
- package/_cjs/IO/api/interrupt.cjs +18 -6
- package/_cjs/IO/api/interrupt.cjs.map +1 -1
- package/_cjs/IO/api/raceWith.cjs +4 -4
- package/_cjs/IO/api/raceWith.cjs.map +1 -1
- package/_cjs/IO/api/timeout.cjs +8 -5
- package/_cjs/IO/api/timeout.cjs.map +1 -1
- package/_cjs/IO/api/zipConcurrent.cjs +1 -1
- package/_cjs/IO/api/zipConcurrent.cjs.map +1 -1
- package/_cjs/IO/api.cjs +78 -20
- package/_cjs/IO/api.cjs.map +1 -1
- package/_cjs/IO/definition.cjs +14 -191
- package/_cjs/IO/definition.cjs.map +1 -1
- package/_cjs/IO.cjs +11 -0
- package/_cjs/IO.cjs.map +1 -1
- package/_cjs/Layer/MemoMap.cjs +1 -1
- package/_cjs/Layer/MemoMap.cjs.map +1 -1
- package/_cjs/Layer/api.cjs.map +1 -1
- package/_cjs/Push/api.cjs +238 -168
- package/_cjs/Push/api.cjs.map +1 -1
- package/_cjs/Push/definition.cjs +12 -13
- package/_cjs/Push/definition.cjs.map +1 -1
- package/_cjs/Push/internal.cjs +37 -29
- package/_cjs/Push/internal.cjs.map +1 -1
- package/_cjs/RefSubject/Atomic.cjs +15 -19
- package/_cjs/RefSubject/Atomic.cjs.map +1 -1
- package/_cjs/RefSubject/Synchronized/definition.cjs +9 -10
- package/_cjs/RefSubject/Synchronized/definition.cjs.map +1 -1
- package/_cjs/RefSubject/api.cjs +5 -6
- package/_cjs/RefSubject/api.cjs.map +1 -1
- package/_cjs/RefSubject/definition.cjs.map +1 -1
- package/_cjs/STM/api/atomically.cjs +1 -1
- package/_cjs/STM/api/atomically.cjs.map +1 -1
- package/_cjs/STM/api.cjs +2 -2
- package/_cjs/STM/api.cjs.map +1 -1
- package/_cjs/STM/definition.cjs +1 -1
- package/_cjs/STM/definition.cjs.map +1 -1
- package/_cjs/ScopedRef/api.cjs +2 -2
- package/_cjs/ScopedRef/api.cjs.map +1 -1
- package/_cjs/Semaphore.cjs +1 -1
- package/_cjs/Semaphore.cjs.map +1 -1
- package/_cjs/Sink/api.cjs +13 -13
- package/_cjs/Sink/api.cjs.map +1 -1
- package/_cjs/Subject/Atomic.cjs +4 -5
- package/_cjs/Subject/Atomic.cjs.map +1 -1
- package/_cjs/TReentrantLock/api.cjs +2 -2
- package/_cjs/TReentrantLock/api.cjs.map +1 -1
- package/_cjs/TSemaphore/api.cjs +1 -1
- package/_cjs/TSemaphore/api.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/dropUntilIO.cjs +12 -17
- package/_cjs/collection/immutable/Conc/dropUntilIO.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/dropWhileIO.cjs +12 -17
- package/_cjs/collection/immutable/Conc/dropWhileIO.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/filterIO.cjs +2 -12
- package/_cjs/collection/immutable/Conc/filterIO.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/mapIO.cjs +3 -9
- package/_cjs/collection/immutable/Conc/mapIO.cjs.map +1 -1
- package/_cjs/collection/immutable/Conc/takeWhileIO.cjs +11 -27
- package/_cjs/collection/immutable/Conc/takeWhileIO.cjs.map +1 -1
- package/_mjs/Channel/api/runScoped.mjs +1 -1
- package/_mjs/Channel/api/runScoped.mjs.map +1 -1
- package/_mjs/Channel/api.mjs +2 -2
- package/_mjs/Channel/api.mjs.map +1 -1
- package/_mjs/Fiber/FiberRuntime.mjs +111 -100
- package/_mjs/Fiber/FiberRuntime.mjs.map +1 -1
- package/_mjs/Fiber/constructors.mjs +7 -1
- package/_mjs/Fiber/constructors.mjs.map +1 -1
- package/_mjs/Future/api.mjs +1 -1
- package/_mjs/Future/api.mjs.map +1 -1
- package/_mjs/IO/api/all.mjs +24 -0
- package/_mjs/IO/api/all.mjs.map +1 -0
- package/_mjs/IO/api/asyncIO.mjs +1 -1
- package/_mjs/IO/api/asyncIO.mjs.map +1 -1
- package/_mjs/IO/api/bracketExit.mjs +1 -1
- package/_mjs/IO/api/bracketExit.mjs.map +1 -1
- package/_mjs/IO/api/concurrency.mjs +19 -2
- package/_mjs/IO/api/concurrency.mjs.map +1 -1
- package/_mjs/IO/api/disconnect.mjs +1 -1
- package/_mjs/IO/api/disconnect.mjs.map +1 -1
- package/_mjs/IO/api/foreachConcurrent.mjs +1 -1
- package/_mjs/IO/api/foreachConcurrent.mjs.map +1 -1
- package/_mjs/IO/api/foreachExec.mjs +1 -1
- package/_mjs/IO/api/foreachExec.mjs.map +1 -1
- package/_mjs/IO/api/forkIn.mjs +1 -1
- package/_mjs/IO/api/forkIn.mjs.map +1 -1
- package/_mjs/IO/api/forkScoped.mjs +1 -1
- package/_mjs/IO/api/forkScoped.mjs.map +1 -1
- package/_mjs/IO/api/fulfill.mjs +1 -1
- package/_mjs/IO/api/fulfill.mjs.map +1 -1
- package/_mjs/IO/api/interrupt.mjs +19 -7
- package/_mjs/IO/api/interrupt.mjs.map +1 -1
- package/_mjs/IO/api/raceWith.mjs +4 -4
- package/_mjs/IO/api/raceWith.mjs.map +1 -1
- package/_mjs/IO/api/timeout.mjs +8 -5
- package/_mjs/IO/api/timeout.mjs.map +1 -1
- package/_mjs/IO/api/zipConcurrent.mjs +1 -1
- package/_mjs/IO/api/zipConcurrent.mjs.map +1 -1
- package/_mjs/IO/api.mjs +78 -23
- package/_mjs/IO/api.mjs.map +1 -1
- package/_mjs/IO/definition.mjs +12 -181
- package/_mjs/IO/definition.mjs.map +1 -1
- package/_mjs/IO.mjs +1 -0
- package/_mjs/IO.mjs.map +1 -1
- package/_mjs/Layer/MemoMap.mjs +1 -1
- package/_mjs/Layer/MemoMap.mjs.map +1 -1
- package/_mjs/Layer/api.mjs.map +1 -1
- package/_mjs/Push/api.mjs +223 -166
- package/_mjs/Push/api.mjs.map +1 -1
- package/_mjs/Push/definition.mjs +9 -10
- package/_mjs/Push/definition.mjs.map +1 -1
- package/_mjs/Push/internal.mjs +33 -22
- package/_mjs/Push/internal.mjs.map +1 -1
- package/_mjs/RefSubject/Atomic.mjs +15 -19
- package/_mjs/RefSubject/Atomic.mjs.map +1 -1
- package/_mjs/RefSubject/Synchronized/definition.mjs +9 -10
- package/_mjs/RefSubject/Synchronized/definition.mjs.map +1 -1
- package/_mjs/RefSubject/api.mjs +6 -7
- package/_mjs/RefSubject/api.mjs.map +1 -1
- package/_mjs/RefSubject/definition.mjs.map +1 -1
- package/_mjs/STM/api/atomically.mjs +1 -1
- package/_mjs/STM/api/atomically.mjs.map +1 -1
- package/_mjs/STM/api.mjs +2 -2
- package/_mjs/STM/api.mjs.map +1 -1
- package/_mjs/STM/definition.mjs +1 -1
- package/_mjs/STM/definition.mjs.map +1 -1
- package/_mjs/ScopedRef/api.mjs +2 -2
- package/_mjs/ScopedRef/api.mjs.map +1 -1
- package/_mjs/Semaphore.mjs +1 -1
- package/_mjs/Semaphore.mjs.map +1 -1
- package/_mjs/Sink/api.mjs +10 -10
- package/_mjs/Sink/api.mjs.map +1 -1
- package/_mjs/Subject/Atomic.mjs +4 -5
- package/_mjs/Subject/Atomic.mjs.map +1 -1
- package/_mjs/TReentrantLock/api.mjs +2 -2
- package/_mjs/TReentrantLock/api.mjs.map +1 -1
- package/_mjs/TSemaphore/api.mjs +1 -1
- package/_mjs/TSemaphore/api.mjs.map +1 -1
- package/_mjs/collection/immutable/Conc/dropUntilIO.mjs +12 -17
- package/_mjs/collection/immutable/Conc/dropUntilIO.mjs.map +1 -1
- package/_mjs/collection/immutable/Conc/dropWhileIO.mjs +12 -17
- package/_mjs/collection/immutable/Conc/dropWhileIO.mjs.map +1 -1
- package/_mjs/collection/immutable/Conc/filterIO.mjs +2 -12
- package/_mjs/collection/immutable/Conc/filterIO.mjs.map +1 -1
- package/_mjs/collection/immutable/Conc/mapIO.mjs +3 -9
- package/_mjs/collection/immutable/Conc/mapIO.mjs.map +1 -1
- package/_mjs/collection/immutable/Conc/takeWhileIO.mjs +11 -27
- package/_mjs/collection/immutable/Conc/takeWhileIO.mjs.map +1 -1
- package/_src/Channel/api.ts +3 -3
- package/_src/Fiber/FiberRuntime.ts +76 -75
- package/_src/Fiber/constructors.ts +5 -0
- package/_src/IO/api/all.ts +64 -0
- package/_src/IO/api/concurrency.ts +33 -0
- package/_src/IO/api/foreachExec.ts +2 -2
- package/_src/IO/api/interrupt.ts +20 -7
- package/_src/IO/api/raceWith.ts +4 -2
- package/_src/IO/api/timeout.ts +21 -1
- package/_src/IO/api.ts +79 -27
- package/_src/IO/definition.ts +155 -200
- package/_src/IO.ts +1 -0
- package/_src/Layer/api.ts +0 -1
- package/_src/Push/api.ts +305 -304
- package/_src/Push/definition.ts +19 -17
- package/_src/Push/internal.ts +63 -31
- package/_src/RefSubject/Atomic.ts +16 -22
- package/_src/RefSubject/Synchronized/definition.ts +6 -9
- package/_src/RefSubject/api.ts +9 -12
- package/_src/RefSubject/definition.ts +6 -8
- package/_src/STM/api.ts +0 -5
- package/_src/STM/definition.ts +8 -2
- package/_src/Sink/api.ts +9 -9
- package/_src/Subject/Atomic.ts +6 -8
- package/_src/Subject/definition.ts +2 -2
- package/_src/collection/immutable/Conc/dropUntilIO.ts +18 -15
- package/_src/collection/immutable/Conc/dropWhileIO.ts +18 -17
- package/_src/collection/immutable/Conc/filterIO.ts +1 -11
- package/_src/collection/immutable/Conc/mapIO.ts +2 -9
- package/_src/collection/immutable/Conc/takeWhileIO.ts +19 -28
- package/collection/immutable/Conc/filterIO.d.ts +1 -1
- package/collection/immutable/Conc/mapIO.d.ts +1 -1
- package/collection/immutable/Conc/takeWhileIO.d.ts +1 -1
- package/package.json +2 -2
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"api.mjs","names":["acquireN","acquireN_1","releaseN","releaseN_1","withPermits","withPermits_1","assert","Effect","RetryException","acquire","self","__tsplusTrace","n","journal","value","tsplus_module_2","unsafeGet","tsplus_module_1","TSemaphore","reverseGet","unsafeSet","available","get","release","current","io","tsplus_module_4","uninterruptibleMask","restore","tsplus_module_5","zipRight","ensuring","tsplus_module_3","atomically","withPermit"],"sources":["../../_src/TSemaphore/api.ts"],"sourcesContent":[null],"mappings":";;;;;aAcgBA,QAAQ,GAAAC,UAAA;aA4BRC,QAAQ,GAAAC,UAAA;aAaRC,WAAW,GAAAC,aAAA;AAvD3B,SAASC,MAAM,QAAQ,yBAAyB;AAEhD,SAASC,MAAM,EAAEC,cAAc,QAAQ,uBAAsB;AAE7D;;;AAGA,OAAM,SAAUC,OAAOA,CAACC,IAAgB,EAAEC,aAAsB;EAC9D,OAAOV,UAAA,CAAc,CAAC,EADkBU,aAAA,EACjCD,IAAI,CAAY;AACzB;AAEA;;;AAGA,SAAAT,WAAyBW,CAAS,EAAED,aAAsB;EACxD,OAAQD,IAAgB,IAAgB;IACtC,OAAO,IAAIH,MAAM,CAAEM,OAAO,IAAI;MAC5BP,MAAM,CAACM,CAAC,IAAI,CAAC,EAAE,+CAA+C,CAAC;MAC/D,MAAME,KAAK,GAAGC,eAAA,CAAAC,SAAA,CAAsCH,OAAO,EAJ7BF,aAAA,EAIhBM,eAAA,CAAAC,UAAU,CAACC,UAAU,CAACT,IAAI,CAAC,CAAmB;MAC5D,IAAII,KAAK,GAAGF,CAAC,EAAE,MAAM,IAAIJ,cAAc,EAAE,CAAC,KACrC,OAAOO,eAAA,CAAAK,SAAA,CAAsCP,OAAO,EAAEC,KAAK,GAAGF,CAAC,EANtCD,aAAA,EAMlBM,eAAA,CAAAC,UAAU,CAACC,UAAU,CAACT,IAAI,CAAC,CAA8B;IACvE,CAAC,CAAC;EACJ,CAAC;AACH;AAEA;;;AAGA,OAAM,SAAUW,SAASA,CAACX,IAAgB,EAAEC,aAAsB;EAChE,OAAAI,eAAA,CAAAO,GAAA,CAAOL,eAAA,CAAAC,UAAU,CAACC,UAAU,CAACT,IAAI,CAAC,EADQC,aAAA;AAE5C;AAEA;;;AAGA,OAAM,SAAUY,OAAOA,CAACb,IAAgB,EAAEC,aAAsB;EAC9D,OAAOR,UAAA,CAAc,CAAC,EADkBQ,aAAA,EACjCD,IAAI,CAAY;AACzB;AAEA;;;AAGA,SAAAP,WAAyBS,CAAS,EAAED,aAAsB;EACxD,OAAQD,IAAgB,IAAgB;IACtC,OAAO,IAAIH,MAAM,CAAEM,OAAO,IAAI;MAC5BP,MAAM,CAACM,CAAC,IAAI,CAAC,EAAE,+CAA+C,CAAC;MAC/D,MAAMY,OAAO,GAAGT,eAAA,CAAAC,SAAA,CAAsCH,OAAO,EAJ/BF,aAAA,EAIdM,eAAA,CAAAC,UAAU,CAACC,UAAU,CAACT,IAAI,CAAC,CAAmB;MAC9DK,eAAA,CAAAK,SAAA,CAAsCP,OAAO,EAAEW,OAAO,GAAGZ,CAAC,EAL5BD,aAAA,EAK9BM,eAAA,CAAAC,UAAU,CAACC,UAAU,CAACT,IAAI,CAAC,CAAgC;IAC7D,CAAC,CAAC;EACJ,CAAC;AACH;AAEA;;;AAGA,SAAAL,cAA4BK,IAAgB,EAAEC,aAAsB;EAClE,OAAQC,CAAS,IACLa,EAAe,IACvBC,eAAA,CAAAC,mBAAA,CAAwBC,OAAO,IAC7BC,eAAA,CAAAC,QAAA,CAA0CJ,eAAA,CAAAK,QAAA,CAAAC,eAAA,CAAAC,UAAA,CAAqB9B,UAAA,CAAcS,CAAC,EAJxCD,aAAA,EAIyBD,IAAI,CAAY,EAJzCC,aAAA,GAAAA,aAAA,EAIIiB,OAAO,CAACH,EAAE,EAJdd,aAAA,CAIe,CAAkC,EAJjDA,aAAA,EAItCiB,OAAO,CAAAI,eAAA,CAAAC,UAAA,CAAChC,UAAA,CAAcW,CAAC,EAJeD,aAAA,EAI9BD,IAAI,CAAY,EAJcC,aAAA,GAAAA,aAAA,CAIN,CAAwD,
|
1
|
+
{"version":3,"file":"api.mjs","names":["acquireN","acquireN_1","releaseN","releaseN_1","withPermits","withPermits_1","assert","Effect","RetryException","acquire","self","__tsplusTrace","n","journal","value","tsplus_module_2","unsafeGet","tsplus_module_1","TSemaphore","reverseGet","unsafeSet","available","get","release","current","io","tsplus_module_4","uninterruptibleMask","restore","tsplus_module_5","zipRight","ensuring","tsplus_module_3","atomically","withPermit"],"sources":["../../_src/TSemaphore/api.ts"],"sourcesContent":[null],"mappings":"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"}
|
@@ -1,25 +1,20 @@
|
|
1
|
-
import * as tsplus_module_1 from "@fncts/
|
2
|
-
import * as tsplus_module_2 from "@fncts/
|
1
|
+
import * as tsplus_module_1 from "@fncts/io/IO/api";
|
2
|
+
import * as tsplus_module_2 from "@fncts/base/collection/immutable/Conc/api";
|
3
|
+
import * as tsplus_module_3 from "@fncts/base/collection/immutable/Conc/api/empty";
|
3
4
|
/**
|
4
5
|
* @tsplus pipeable fncts.Conc dropUntilIO
|
5
6
|
*/
|
6
7
|
export function dropUntilIO(p, __tsplusTrace) {
|
7
8
|
return self => {
|
8
|
-
return
|
9
|
-
const builder = new tsplus_module_1.ConcBuilder();
|
10
|
-
let dropping = tsplus_module_2.succeedNow(false, __tsplusTrace);
|
11
|
-
for (const elem of self) {
|
12
|
-
dropping = tsplus_module_2.flatMap(b => {
|
13
|
-
if (b) {
|
14
|
-
builder.append(elem);
|
15
|
-
return tsplus_module_2.succeedNow(true, __tsplusTrace);
|
16
|
-
} else {
|
17
|
-
return p(elem);
|
18
|
-
}
|
19
|
-
}, __tsplusTrace)(dropping);
|
20
|
-
}
|
21
|
-
return tsplus_module_2.as(() => builder.result(), __tsplusTrace)(dropping);
|
22
|
-
}, __tsplusTrace);
|
9
|
+
return tsplus_module_1.defer(() => dropUntilIOLoop(self, self[Symbol.iterator](), p, 0, __tsplusTrace), __tsplusTrace);
|
23
10
|
};
|
24
11
|
}
|
12
|
+
function dropUntilIOLoop(self, iterator, p, index, __tsplusTrace) {
|
13
|
+
let result;
|
14
|
+
if (!(result = iterator.next()).done) {
|
15
|
+
return tsplus_module_1.flatMap(b => b ? tsplus_module_1.succeed(() => tsplus_module_2.drop(index + 1)(self), __tsplusTrace) : dropUntilIOLoop(self, iterator, p, index + 1, __tsplusTrace), __tsplusTrace)(p(result.value));
|
16
|
+
} else {
|
17
|
+
return tsplus_module_1.succeed(() => tsplus_module_3.empty(), __tsplusTrace);
|
18
|
+
}
|
19
|
+
}
|
25
20
|
//# sourceMappingURL=dropUntilIO.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"dropUntilIO.mjs","names":["dropUntilIO","p","__tsplusTrace","self","
|
1
|
+
{"version":3,"file":"dropUntilIO.mjs","names":["dropUntilIO","p","__tsplusTrace","self","tsplus_module_1","defer","dropUntilIOLoop","Symbol","iterator","index","result","next","done","flatMap","b","succeed","tsplus_module_2","drop","value","tsplus_module_3","empty"],"sources":["../../../../_src/collection/immutable/Conc/dropUntilIO.ts"],"sourcesContent":[null],"mappings":";;;AAAA;;;AAGA,OAAM,SAAUA,WAAWA,CAAUC,CAA8B,EAAEC,aAAsB;EACzF,OAAQC,IAAa,IAAuB;IAC1C,OAAOC,eAAA,CAAAC,KAAA,OAASC,eAAe,CAACH,IAAI,EAAEA,IAAI,CAACI,MAAM,CAACC,QAAQ,CAAC,EAAE,EAAEP,CAAC,EAAE,CAAC,EAFFC,aAAA,CAEG,EAFHA,aAAA,CAEI;EACvE,CAAC;AACH;AAEA,SAASI,eAAeA,CACtBH,IAAa,EACbK,QAAqB,EACrBP,CAA8B,EAC9BQ,KAAa,EACbP,aAAsB;EAEtB,IAAIQ,MAAyB;EAC7B,IAAI,CAAC,CAACA,MAAM,GAAGF,QAAQ,CAACG,IAAI,EAAE,EAAEC,IAAI,EAAE;IACpC,OAAOR,eAAA,CAAAS,OAAA,CAAyBC,CAAC,IAC/BA,CAAC,GAAGV,eAAA,CAAAW,OAAA,OAAWC,eAAA,CAAAC,IAAA,CAAUR,KAAK,GAAG,CAAC,EAAnBN,IAAI,CAAgB,EALvCD,aAAA,CAKwC,GAAGI,eAAe,CAACH,IAAI,EAAEK,QAAQ,EAAEP,CAAC,EAAEQ,KAAK,GAAG,CAAC,EALvFP,aAAA,CAKwF,EALxFA,aAAA,EAISD,CAAC,CAACS,MAAM,CAACQ,KAAK,CAAC,CAErB;GACF,MAAM;IACL,OAAOd,eAAA,CAAAW,OAAA,OAAWI,eAAA,CAAAC,KAAA,EAAY,EARhClB,aAAA,CAQiC;;AAEnC"}
|
@@ -1,25 +1,20 @@
|
|
1
|
-
import * as tsplus_module_1 from "@fncts/
|
2
|
-
import * as tsplus_module_2 from "@fncts/
|
1
|
+
import * as tsplus_module_1 from "@fncts/io/IO/api";
|
2
|
+
import * as tsplus_module_2 from "@fncts/base/collection/immutable/Conc/api";
|
3
|
+
import * as tsplus_module_3 from "@fncts/base/collection/immutable/Conc/api/empty";
|
3
4
|
/**
|
4
5
|
* @tsplus pipeable fncts.Conc dropWhileIO
|
5
6
|
*/
|
6
7
|
export function dropWhileIO(p, __tsplusTrace) {
|
7
8
|
return self => {
|
8
|
-
return
|
9
|
-
const builder = new tsplus_module_1.ConcBuilder();
|
10
|
-
let dropping = tsplus_module_2.succeedNow(true, __tsplusTrace);
|
11
|
-
for (const elem of self) {
|
12
|
-
dropping = tsplus_module_2.flatMap(d => tsplus_module_2.map(b => {
|
13
|
-
if (b) {
|
14
|
-
return true;
|
15
|
-
} else {
|
16
|
-
builder.append(elem);
|
17
|
-
return false;
|
18
|
-
}
|
19
|
-
}, __tsplusTrace)(d ? p(elem) : tsplus_module_2.succeedNow(false, __tsplusTrace)), __tsplusTrace)(dropping);
|
20
|
-
}
|
21
|
-
return tsplus_module_2.as(() => builder.result(), __tsplusTrace)(dropping);
|
22
|
-
}, __tsplusTrace);
|
9
|
+
return tsplus_module_1.defer(() => dropWhileIOLoop(self, self[Symbol.iterator](), p, 0, __tsplusTrace), __tsplusTrace);
|
23
10
|
};
|
24
11
|
}
|
12
|
+
function dropWhileIOLoop(self, iterator, p, index, __tsplusTrace) {
|
13
|
+
let result;
|
14
|
+
if (!(result = iterator.next()).done) {
|
15
|
+
return tsplus_module_1.flatMap(b => b ? dropWhileIOLoop(self, iterator, p, index + 1, __tsplusTrace) : tsplus_module_1.succeed(() => tsplus_module_2.drop(index)(self), __tsplusTrace), __tsplusTrace)(p(result.value));
|
16
|
+
} else {
|
17
|
+
return tsplus_module_1.succeed(() => tsplus_module_3.empty(), __tsplusTrace);
|
18
|
+
}
|
19
|
+
}
|
25
20
|
//# sourceMappingURL=dropWhileIO.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"dropWhileIO.mjs","names":["dropWhileIO","p","__tsplusTrace","self","
|
1
|
+
{"version":3,"file":"dropWhileIO.mjs","names":["dropWhileIO","p","__tsplusTrace","self","tsplus_module_1","defer","dropWhileIOLoop","Symbol","iterator","index","result","next","done","flatMap","b","succeed","tsplus_module_2","drop","value","tsplus_module_3","empty"],"sources":["../../../../_src/collection/immutable/Conc/dropWhileIO.ts"],"sourcesContent":[null],"mappings":";;;AAAA;;;AAGA,OAAM,SAAUA,WAAWA,CAAUC,CAA8B,EAAEC,aAAsB;EACzF,OAAQC,IAAa,IAAuB;IAC1C,OAAOC,eAAA,CAAAC,KAAA,OAASC,eAAe,CAACH,IAAI,EAAEA,IAAI,CAACI,MAAM,CAACC,QAAQ,CAAC,EAAE,EAAEP,CAAC,EAAE,CAAC,EAFFC,aAAA,CAEG,EAFHA,aAAA,CAEI;EACvE,CAAC;AACH;AAEA,SAASI,eAAeA,CACtBH,IAAa,EACbK,QAAqB,EACrBP,CAA8B,EAC9BQ,KAAa,EACbP,aAAsB;EAEtB,IAAIQ,MAAyB;EAC7B,IAAI,CAAC,CAACA,MAAM,GAAGF,QAAQ,CAACG,IAAI,EAAE,EAAEC,IAAI,EAAE;IACpC,OAAOR,eAAA,CAAAS,OAAA,CAAyBC,CAAC,IAC/BA,CAAC,GAAGR,eAAe,CAACH,IAAI,EAAEK,QAAQ,EAAEP,CAAC,EAAEQ,KAAK,GAAG,CAAC,EALpDP,aAAA,CAKqD,GAAGE,eAAA,CAAAW,OAAA,OAAWC,eAAA,CAAAC,IAAA,CAAUR,KAAK,EAAfN,IAAI,CAAY,EALnFD,aAAA,CAKoF,EALpFA,aAAA,EAISD,CAAC,CAACS,MAAM,CAACQ,KAAK,CAAC,CAErB;GACF,MAAM;IACL,OAAOd,eAAA,CAAAW,OAAA,OAAWI,eAAA,CAAAC,KAAA,EAAY,EARhClB,aAAA,CAQiC;;AAEnC"}
|
@@ -1,20 +1,10 @@
|
|
1
|
-
import * as tsplus_module_1 from "@fncts/
|
2
|
-
import * as tsplus_module_2 from "@fncts/io/IO/api";
|
1
|
+
import * as tsplus_module_1 from "@fncts/io/IO/api";
|
3
2
|
/**
|
4
3
|
* @tsplus pipeable fncts.Conc filterIO
|
5
4
|
*/
|
6
5
|
export function filterIO(p, __tsplusTrace) {
|
7
6
|
return self => {
|
8
|
-
return
|
9
|
-
const builder = new tsplus_module_1.ConcBuilder();
|
10
|
-
let dest = tsplus_module_2.succeedNow(builder, __tsplusTrace);
|
11
|
-
for (const a of self) {
|
12
|
-
dest = tsplus_module_2.zipWith(p(a), (builder, res) => {
|
13
|
-
if (res) return builder.append(a);else return builder;
|
14
|
-
}, __tsplusTrace)(dest);
|
15
|
-
}
|
16
|
-
return tsplus_module_2.map(builder => builder.result(), __tsplusTrace)(dest);
|
17
|
-
}, __tsplusTrace);
|
7
|
+
return tsplus_module_1.filter(self, p, __tsplusTrace);
|
18
8
|
};
|
19
9
|
}
|
20
10
|
//# sourceMappingURL=filterIO.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"filterIO.mjs","names":["filterIO","p","__tsplusTrace","self","
|
1
|
+
{"version":3,"file":"filterIO.mjs","names":["filterIO","p","__tsplusTrace","self","tsplus_module_1","filter"],"sources":["../../../../_src/collection/immutable/Conc/filterIO.ts"],"sourcesContent":[null],"mappings":";AAAA;;;AAGA,OAAM,SAAUA,QAAQA,CAAUC,CAA8B,EAAEC,aAAsB;EACtF,OAAQC,IAAa,IAAuB;IAC1C,OAAOC,eAAA,CAAAC,MAAA,CAAUF,IAAI,EAAEF,CAAC,EAFsCC,aAAA,CAErC;EAC3B,CAAC;AACH"}
|
@@ -1,16 +1,10 @@
|
|
1
|
-
import * as tsplus_module_1 from "@fncts/
|
2
|
-
import * as tsplus_module_2 from "@fncts/io/IO/api";
|
1
|
+
import * as tsplus_module_1 from "@fncts/io/IO/api";
|
3
2
|
/**
|
4
3
|
* @tsplus pipeable fncts.Conc mapIO
|
5
4
|
*/
|
6
5
|
export function mapIO(f, __tsplusTrace) {
|
7
|
-
return
|
8
|
-
return
|
9
|
-
const out = tsplus_module_1.builder();
|
10
|
-
return tsplus_module_2.as(() => out.result(), __tsplusTrace)(tsplus_module_2.foreachDiscard(as, a => tsplus_module_2.map(b => {
|
11
|
-
out.append(b);
|
12
|
-
}, __tsplusTrace)(f(a)), __tsplusTrace));
|
13
|
-
}, __tsplusTrace);
|
6
|
+
return self => {
|
7
|
+
return tsplus_module_1.foreach(self, f, __tsplusTrace);
|
14
8
|
};
|
15
9
|
}
|
16
10
|
//# sourceMappingURL=mapIO.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"mapIO.mjs","names":["mapIO","f","__tsplusTrace","
|
1
|
+
{"version":3,"file":"mapIO.mjs","names":["mapIO","f","__tsplusTrace","self","tsplus_module_1","foreach"],"sources":["../../../../_src/collection/immutable/Conc/mapIO.ts"],"sourcesContent":[null],"mappings":";AAAA;;;AAGA,OAAM,SAAUA,KAAKA,CAAaC,CAAwB,EAAEC,aAAsB;EAChF,OAAQC,IAAa,IAAuB;IAC1C,OAAOC,eAAA,CAAAC,OAAA,CAAWF,IAAI,EAAEF,CAAC,EAF+BC,aAAA,CAE9B;EAC5B,CAAC;AACH"}
|
@@ -1,36 +1,20 @@
|
|
1
1
|
import * as tsplus_module_1 from "@fncts/io/IO/api";
|
2
2
|
import * as tsplus_module_2 from "@fncts/base/collection/immutable/Conc/api";
|
3
|
-
import
|
3
|
+
import * as tsplus_module_3 from "@fncts/base/collection/immutable/Conc/api/empty";
|
4
4
|
/**
|
5
5
|
* @tsplus pipeable fncts.Conc takeWhileIO
|
6
6
|
*/
|
7
7
|
export function takeWhileIO(p, __tsplusTrace) {
|
8
|
-
return
|
9
|
-
return tsplus_module_1.defer(() =>
|
10
|
-
void 0;
|
11
|
-
let taking = tsplus_module_1.succeedNow(true, __tsplusTrace);
|
12
|
-
const out = tsplus_module_2.builder();
|
13
|
-
const iterator = as.arrayIterator();
|
14
|
-
let result;
|
15
|
-
while (!(result = iterator.next()).done) {
|
16
|
-
const array = result.value;
|
17
|
-
for (let i = 0; i < array.length; i++) {
|
18
|
-
const j = i;
|
19
|
-
taking = tsplus_module_1.flatMap(b => {
|
20
|
-
const a = array[j];
|
21
|
-
return tsplus_module_1.map(b1 => {
|
22
|
-
if (b1) {
|
23
|
-
out.append(a);
|
24
|
-
return true;
|
25
|
-
} else {
|
26
|
-
return false;
|
27
|
-
}
|
28
|
-
}, __tsplusTrace)(b ? p(a) : tsplus_module_1.succeedNow(false, __tsplusTrace));
|
29
|
-
}, __tsplusTrace)(taking);
|
30
|
-
}
|
31
|
-
}
|
32
|
-
return tsplus_module_1.as(() => out.result(), __tsplusTrace)(taking);
|
33
|
-
}, __tsplusTrace);
|
8
|
+
return self => {
|
9
|
+
return tsplus_module_1.defer(() => takeWhileIOLoop(self, self[Symbol.iterator](), p, 0, __tsplusTrace), __tsplusTrace);
|
34
10
|
};
|
35
11
|
}
|
12
|
+
function takeWhileIOLoop(self, iterator, p, index, __tsplusTrace) {
|
13
|
+
let result;
|
14
|
+
if (!(result = iterator.next()).done) {
|
15
|
+
return tsplus_module_1.flatMap(b => b ? takeWhileIOLoop(self, iterator, p, index + 1, __tsplusTrace) : tsplus_module_1.succeed(() => tsplus_module_2.take(index)(self), __tsplusTrace), __tsplusTrace)(p(result.value));
|
16
|
+
} else {
|
17
|
+
return tsplus_module_1.succeed(() => tsplus_module_3.empty(), __tsplusTrace);
|
18
|
+
}
|
19
|
+
}
|
36
20
|
//# sourceMappingURL=takeWhileIO.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"takeWhileIO.mjs","names":["
|
1
|
+
{"version":3,"file":"takeWhileIO.mjs","names":["takeWhileIO","p","__tsplusTrace","self","tsplus_module_1","defer","takeWhileIOLoop","Symbol","iterator","index","result","next","done","flatMap","b","succeed","tsplus_module_2","take","value","tsplus_module_3","empty"],"sources":["../../../../_src/collection/immutable/Conc/takeWhileIO.ts"],"sourcesContent":[null],"mappings":";;;AAAA;;;AAGA,OAAM,SAAUA,WAAWA,CAAUC,CAA8B,EAAEC,aAAsB;EACzF,OAAQC,IAAa,IAAuB;IAC1C,OAAOC,eAAA,CAAAC,KAAA,OAASC,eAAe,CAACH,IAAI,EAAEA,IAAI,CAACI,MAAM,CAACC,QAAQ,CAAC,EAAE,EAAEP,CAAC,EAAE,CAAC,EAFFC,aAAA,CAEG,EAFHA,aAAA,CAEI;EACvE,CAAC;AACH;AAEA,SAASI,eAAeA,CACtBH,IAAa,EACbK,QAAqB,EACrBP,CAA8B,EAC9BQ,KAAa,EACbP,aAAsB;EAEtB,IAAIQ,MAAyB;EAC7B,IAAI,CAAC,CAACA,MAAM,GAAGF,QAAQ,CAACG,IAAI,EAAE,EAAEC,IAAI,EAAE;IACpC,OAAOR,eAAA,CAAAS,OAAA,CAAyBC,CAAC,IAC/BA,CAAC,GAAGR,eAAe,CAACH,IAAI,EAAEK,QAAQ,EAAEP,CAAC,EAAEQ,KAAK,GAAG,CAAC,EALpDP,aAAA,CAKqD,GAAGE,eAAA,CAAAW,OAAA,OAAWC,eAAA,CAAAC,IAAA,CAAUR,KAAK,EAAfN,IAAI,CAAY,EALnFD,aAAA,CAKoF,EALpFA,aAAA,EAISD,CAAC,CAACS,MAAM,CAACQ,KAAK,CAAC,CAErB;GACF,MAAM;IACL,OAAOd,eAAA,CAAAW,OAAA,OAAWI,eAAA,CAAAC,KAAA,EAAY,EARhClB,aAAA,CAQiC;;AAEnC"}
|
package/_src/Channel/api.ts
CHANGED
@@ -827,10 +827,10 @@ export function mapOut<OutElem, OutElem2>(f: (o: OutElem) => OutElem2) {
|
|
827
827
|
const mapOutIOReader = <Env, Env1, OutErr, OutErr1, OutElem, OutElem1, OutDone>(
|
828
828
|
f: (o: OutElem) => IO<Env1, OutErr1, OutElem1>,
|
829
829
|
): Channel<Env | Env1, OutErr, OutElem, OutDone, OutErr | OutErr1, OutElem1, OutDone> =>
|
830
|
-
Channel.
|
830
|
+
Channel.readWithCause(
|
831
831
|
(out) => Channel.fromIO(f(out)).flatMap(Channel.writeNow).zipRight(mapOutIOReader(f)),
|
832
|
-
Channel.
|
833
|
-
Channel.
|
832
|
+
Channel.failCauseNow,
|
833
|
+
Channel.succeedNow,
|
834
834
|
);
|
835
835
|
|
836
836
|
/**
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import type { FiberStatus } from "../FiberStatus.js";
|
2
2
|
import type { OnFailure, OnSuccess, OnSuccessAndFailure, UIO } from "../IO/definition.js";
|
3
|
+
import type { WhileLoop } from "../IO/definition.js";
|
3
4
|
import type { RuntimeFlags } from "../RuntimeFlags.js";
|
4
5
|
|
5
6
|
import { isIOError } from "@fncts/base/data/exceptions";
|
@@ -12,29 +13,22 @@ import { Done, Suspended } from "../FiberStatus.js";
|
|
12
13
|
import { Running } from "../FiberStatus.js";
|
13
14
|
import { FiberStatusTag } from "../FiberStatus.js";
|
14
15
|
import { LinkedQueue } from "../internal/MutableQueue.js";
|
15
|
-
import { isIO } from "../IO/definition.js";
|
16
|
-
import {
|
17
|
-
import { IOOpCode } from "../IO/definition.js";
|
16
|
+
import { IOPrimitive, isIO } from "../IO/definition.js";
|
17
|
+
import { IOTag } from "../IO/definition.js";
|
18
18
|
import { RuntimeFlag } from "../RuntimeFlag.js";
|
19
19
|
import { FiberMessage, FiberMessageTag } from "./FiberMessage.js";
|
20
20
|
|
21
21
|
export class RevertFlags {
|
22
|
-
readonly _tag =
|
22
|
+
readonly _tag = IOTag.RevertFlags;
|
23
23
|
constructor(readonly patch: RuntimeFlags.Patch, readonly trace?: string) {}
|
24
24
|
}
|
25
25
|
|
26
26
|
export class UpdateTrace {
|
27
|
-
readonly _tag =
|
27
|
+
readonly _tag = IOTag.UpdateTrace;
|
28
28
|
constructor(readonly trace?: string) {}
|
29
29
|
}
|
30
30
|
|
31
|
-
export type Continuation =
|
32
|
-
| OnSuccess<any, any, any, any, any, any>
|
33
|
-
| OnSuccessAndFailure<any, any, any, any, any, any, any, any, any>
|
34
|
-
| OnFailure<any, any, any, any, any, any>
|
35
|
-
| WhileLoop<any, any, any>
|
36
|
-
| UpdateTrace
|
37
|
-
| RevertFlags;
|
31
|
+
export type Continuation = OnSuccess | OnSuccessAndFailure | OnFailure | WhileLoop | UpdateTrace | RevertFlags;
|
38
32
|
|
39
33
|
/**
|
40
34
|
* @tsplus type fncts.io.Fiber
|
@@ -268,7 +262,7 @@ export class FiberRuntime<E, A> implements Fiber.Runtime<E, A> {
|
|
268
262
|
}
|
269
263
|
} catch (e) {
|
270
264
|
if (isIO(e)) {
|
271
|
-
if (IO.concrete(e)._tag ===
|
265
|
+
if (IO.concrete(e)._tag === IOTag.YieldNow) {
|
272
266
|
if (this._runtimeFlags.cooperativeYielding) {
|
273
267
|
this.tell(FiberMessage.YieldNow);
|
274
268
|
this.tell(FiberMessage.Resume(IO.unit));
|
@@ -276,7 +270,7 @@ export class FiberRuntime<E, A> implements Fiber.Runtime<E, A> {
|
|
276
270
|
} else {
|
277
271
|
effect = IO.unit;
|
278
272
|
}
|
279
|
-
} else if (IO.concrete(e)._tag ===
|
273
|
+
} else if (IO.concrete(e)._tag === IOTag.Async) {
|
280
274
|
effect = null!;
|
281
275
|
} else {
|
282
276
|
throw new Error(`Unhandled op ${IO.concrete(e)._tag}`);
|
@@ -302,6 +296,7 @@ export class FiberRuntime<E, A> implements Fiber.Runtime<E, A> {
|
|
302
296
|
if (this._runtimeFlags.opSupervision) {
|
303
297
|
this.getSupervisor().unsafeOnEffect(this, cur);
|
304
298
|
}
|
299
|
+
|
305
300
|
const nextTrace = IO.concrete(cur).trace;
|
306
301
|
if (nextTrace !== undefined) lastTrace = nextTrace;
|
307
302
|
|
@@ -317,27 +312,30 @@ export class FiberRuntime<E, A> implements Fiber.Runtime<E, A> {
|
|
317
312
|
}
|
318
313
|
try {
|
319
314
|
switch (cur._tag) {
|
320
|
-
case
|
321
|
-
const value = cur.
|
315
|
+
case IOTag.Sync: {
|
316
|
+
const value = cur.i0();
|
322
317
|
const cont = this.getNextSuccessCont();
|
323
318
|
if (cont) {
|
324
319
|
switch (cont._tag) {
|
325
|
-
case
|
326
|
-
|
327
|
-
|
320
|
+
case IOTag.OnSuccess: {
|
321
|
+
cur = IO.concrete(cont.i1(value));
|
322
|
+
break;
|
323
|
+
}
|
324
|
+
case IOTag.OnSuccessAndFailure: {
|
325
|
+
cur = IO.concrete(cont.i2(value));
|
328
326
|
break;
|
329
327
|
}
|
330
|
-
case
|
331
|
-
cont.
|
332
|
-
if (cont.
|
328
|
+
case IOTag.WhileLoop: {
|
329
|
+
cont.i2(value);
|
330
|
+
if (cont.i0()) {
|
333
331
|
this.stack.push(cont);
|
334
|
-
cur = IO.concrete(cont.
|
332
|
+
cur = IO.concrete(cont.i1());
|
335
333
|
} else {
|
336
334
|
cur = IO.concrete(IO.unit);
|
337
335
|
}
|
338
336
|
break;
|
339
337
|
}
|
340
|
-
case
|
338
|
+
case IOTag.RevertFlags: {
|
341
339
|
this.patchRuntimeFlags(this._runtimeFlags, cont.patch);
|
342
340
|
if (this._runtimeFlags.interruptible && this.isInterrupted()) {
|
343
341
|
cur = IO.concrete(IO.failCauseNow(this.getInterruptedCause()));
|
@@ -346,7 +344,7 @@ export class FiberRuntime<E, A> implements Fiber.Runtime<E, A> {
|
|
346
344
|
}
|
347
345
|
break;
|
348
346
|
}
|
349
|
-
case
|
347
|
+
case IOTag.UpdateTrace: {
|
350
348
|
if (cont.trace !== undefined) lastTrace = cont.trace;
|
351
349
|
cur = IO.concrete(IO.unit);
|
352
350
|
break;
|
@@ -357,26 +355,26 @@ export class FiberRuntime<E, A> implements Fiber.Runtime<E, A> {
|
|
357
355
|
}
|
358
356
|
break;
|
359
357
|
}
|
360
|
-
case
|
361
|
-
case
|
362
|
-
case
|
358
|
+
case IOTag.OnSuccessAndFailure:
|
359
|
+
case IOTag.OnFailure:
|
360
|
+
case IOTag.OnSuccess: {
|
363
361
|
this.stack.push(cur);
|
364
|
-
cur = IO.concrete(cur.
|
362
|
+
cur = IO.concrete(cur.i0);
|
365
363
|
break;
|
366
364
|
}
|
367
|
-
case
|
365
|
+
case IOTag.Async: {
|
368
366
|
this.asyncTrace = lastTrace;
|
369
|
-
this.asyncBlockinOn = cur.
|
370
|
-
this.initiateAsync(this._runtimeFlags, cur.
|
367
|
+
this.asyncBlockinOn = cur.i1();
|
368
|
+
this.initiateAsync(this._runtimeFlags, cur.i0);
|
371
369
|
throw cur;
|
372
370
|
}
|
373
|
-
case
|
374
|
-
const updateFlags = cur.
|
371
|
+
case IOTag.UpdateRuntimeFlagsWithin: {
|
372
|
+
const updateFlags = cur.i0;
|
375
373
|
const oldRuntimeFlags = this._runtimeFlags;
|
376
374
|
const newRuntimeFlags = updateFlags.patch(oldRuntimeFlags);
|
377
375
|
|
378
376
|
if (newRuntimeFlags === oldRuntimeFlags) {
|
379
|
-
cur = IO.concrete(cur.
|
377
|
+
cur = IO.concrete(cur.i1(oldRuntimeFlags));
|
380
378
|
} else {
|
381
379
|
if (newRuntimeFlags.interruptible && this.isInterrupted()) {
|
382
380
|
cur = IO.concrete(IO.failCauseNow(this.getInterruptedCause()));
|
@@ -384,72 +382,75 @@ export class FiberRuntime<E, A> implements Fiber.Runtime<E, A> {
|
|
384
382
|
this.patchRuntimeFlags(this._runtimeFlags, updateFlags);
|
385
383
|
const revertFlags = newRuntimeFlags.diff(oldRuntimeFlags);
|
386
384
|
this.stack.push(new RevertFlags(revertFlags));
|
387
|
-
cur = IO.concrete(cur.
|
385
|
+
cur = IO.concrete(cur.i1(oldRuntimeFlags));
|
388
386
|
}
|
389
387
|
}
|
390
388
|
break;
|
391
389
|
}
|
392
|
-
case
|
390
|
+
case IOTag.GenerateStackTrace: {
|
393
391
|
cur = IO.concrete(IO.succeedNow(this.generateStackTrace()));
|
394
392
|
break;
|
395
393
|
}
|
396
|
-
case
|
397
|
-
cur = IO.concrete(cur.
|
394
|
+
case IOTag.Stateful: {
|
395
|
+
cur = IO.concrete(cur.i0(this, new Running(this._runtimeFlags, lastTrace)));
|
398
396
|
break;
|
399
397
|
}
|
400
|
-
case
|
398
|
+
case IOTag.SucceedNow: {
|
401
399
|
const oldCur = cur;
|
402
400
|
const cont = this.getNextSuccessCont();
|
403
401
|
if (cont) {
|
404
402
|
switch (cont._tag) {
|
405
|
-
case
|
406
|
-
|
407
|
-
|
403
|
+
case IOTag.OnSuccess: {
|
404
|
+
cur = IO.concrete(cont.i1(oldCur.i0));
|
405
|
+
break;
|
406
|
+
}
|
407
|
+
case IOTag.OnSuccessAndFailure: {
|
408
|
+
cur = IO.concrete(cont.i2(oldCur.i0));
|
408
409
|
break;
|
409
410
|
}
|
410
|
-
case
|
411
|
-
cont.
|
412
|
-
if (cont.
|
411
|
+
case IOTag.WhileLoop: {
|
412
|
+
cont.i2(oldCur.i0);
|
413
|
+
if (cont.i0()) {
|
413
414
|
this.stack.push(cont);
|
414
|
-
cur = IO.concrete(cont.
|
415
|
+
cur = IO.concrete(cont.i1());
|
415
416
|
} else {
|
416
417
|
cur = IO.concrete(IO.unit);
|
417
418
|
}
|
418
419
|
break;
|
419
420
|
}
|
420
|
-
case
|
421
|
+
case IOTag.RevertFlags: {
|
421
422
|
this.patchRuntimeFlags(this._runtimeFlags, cont.patch);
|
422
423
|
if (this._runtimeFlags.interruptible && this.isInterrupted()) {
|
423
424
|
cur = IO.concrete(IO.failCauseNow(this.getInterruptedCause()));
|
424
425
|
}
|
425
426
|
break;
|
426
427
|
}
|
427
|
-
case
|
428
|
+
case IOTag.UpdateTrace: {
|
428
429
|
if (cont.trace !== undefined) lastTrace = cont.trace;
|
429
430
|
cur = IO.concrete(IO.unit);
|
430
431
|
break;
|
431
432
|
}
|
432
433
|
}
|
433
434
|
} else {
|
434
|
-
return Exit.succeed(oldCur.
|
435
|
+
return Exit.succeed(oldCur.i0);
|
435
436
|
}
|
436
437
|
break;
|
437
438
|
}
|
438
|
-
case
|
439
|
-
const cause = cur.
|
439
|
+
case IOTag.Fail: {
|
440
|
+
const cause = cur.i0();
|
440
441
|
const cont = this.getNextFailCont();
|
441
442
|
if (cont) {
|
442
443
|
switch (cont._tag) {
|
443
|
-
case
|
444
|
-
case
|
444
|
+
case IOTag.OnFailure:
|
445
|
+
case IOTag.OnSuccessAndFailure: {
|
445
446
|
if (!(this._runtimeFlags.interruptible && this.isInterrupted())) {
|
446
|
-
cur = IO.concrete(cont.
|
447
|
+
cur = IO.concrete(cont.i1(cause));
|
447
448
|
} else {
|
448
449
|
cur = IO.concrete(IO.failCauseNow(cause.stripFailures));
|
449
450
|
}
|
450
451
|
break;
|
451
452
|
}
|
452
|
-
case
|
453
|
+
case IOTag.RevertFlags: {
|
453
454
|
this.patchRuntimeFlags(this._runtimeFlags, cont.patch);
|
454
455
|
if (this._runtimeFlags.interruptible && this.isInterrupted()) {
|
455
456
|
const interruptedCause = this.getInterruptedCause();
|
@@ -461,7 +462,7 @@ export class FiberRuntime<E, A> implements Fiber.Runtime<E, A> {
|
|
461
462
|
}
|
462
463
|
break;
|
463
464
|
}
|
464
|
-
case
|
465
|
+
case IOTag.UpdateTrace: {
|
465
466
|
if (cont.trace !== undefined) lastTrace = cont.trace;
|
466
467
|
cur = IO.concrete(IO.unit);
|
467
468
|
break;
|
@@ -472,15 +473,15 @@ export class FiberRuntime<E, A> implements Fiber.Runtime<E, A> {
|
|
472
473
|
}
|
473
474
|
break;
|
474
475
|
}
|
475
|
-
case
|
476
|
-
this.patchRuntimeFlags(this._runtimeFlags, cur.
|
476
|
+
case IOTag.UpdateRuntimeFlags: {
|
477
|
+
this.patchRuntimeFlags(this._runtimeFlags, cur.i0);
|
477
478
|
cur = IO.concrete(IO.unit);
|
478
479
|
break;
|
479
480
|
}
|
480
|
-
case
|
481
|
+
case IOTag.WhileLoop: {
|
481
482
|
const iterate = cur;
|
482
|
-
const check = iterate.
|
483
|
-
const body = iterate.
|
483
|
+
const check = iterate.i0;
|
484
|
+
const body = iterate.i1;
|
484
485
|
if (check()) {
|
485
486
|
cur = IO.concrete(body());
|
486
487
|
this.stack.push(iterate);
|
@@ -489,10 +490,10 @@ export class FiberRuntime<E, A> implements Fiber.Runtime<E, A> {
|
|
489
490
|
}
|
490
491
|
break;
|
491
492
|
}
|
492
|
-
case
|
493
|
+
case IOTag.YieldNow: {
|
493
494
|
throw cur;
|
494
495
|
}
|
495
|
-
case
|
496
|
+
case IOTag.Commit: {
|
496
497
|
cur = IO.concrete(cur.commit);
|
497
498
|
break;
|
498
499
|
}
|
@@ -524,7 +525,7 @@ export class FiberRuntime<E, A> implements Fiber.Runtime<E, A> {
|
|
524
525
|
} catch (e) {
|
525
526
|
if (isIOError(e)) {
|
526
527
|
cur = IO.concrete(IO.failCauseNow(e.cause));
|
527
|
-
} else if (isIO(e) && (IO.concrete(e)._tag ===
|
528
|
+
} else if (isIO(e) && (IO.concrete(e)._tag === IOTag.Async || IO.concrete(e)._tag === IOTag.YieldNow)) {
|
528
529
|
throw e;
|
529
530
|
} else if (isInterruptedException(e)) {
|
530
531
|
cur = IO.concrete(IO.failCauseNow(Cause.parallel(Cause.halt(e), Cause.interrupt(FiberId.none))));
|
@@ -622,14 +623,14 @@ export class FiberRuntime<E, A> implements Fiber.Runtime<E, A> {
|
|
622
623
|
}
|
623
624
|
};
|
624
625
|
|
625
|
-
|
626
|
-
|
627
|
-
|
628
|
-
|
629
|
-
|
630
|
-
|
631
|
-
|
632
|
-
|
626
|
+
const io = new IOPrimitive(IOTag.WhileLoop) as any;
|
627
|
+
io.i0 = check;
|
628
|
+
io.i1 = body;
|
629
|
+
io.i2 = () => {
|
630
|
+
//
|
631
|
+
};
|
632
|
+
|
633
|
+
return io;
|
633
634
|
} else {
|
634
635
|
return null!;
|
635
636
|
}
|
@@ -822,7 +823,7 @@ export class FiberRuntime<E, A> implements Fiber.Runtime<E, A> {
|
|
822
823
|
getNextSuccessCont() {
|
823
824
|
while (this.stack.hasNext) {
|
824
825
|
const frame = this.stack.pop()!;
|
825
|
-
if (frame._tag !==
|
826
|
+
if (frame._tag !== IOTag.OnFailure) {
|
826
827
|
return frame;
|
827
828
|
}
|
828
829
|
}
|
@@ -831,7 +832,7 @@ export class FiberRuntime<E, A> implements Fiber.Runtime<E, A> {
|
|
831
832
|
getNextFailCont() {
|
832
833
|
while (this.stack.hasNext) {
|
833
834
|
const frame = this.stack.pop()!;
|
834
|
-
if (frame._tag !==
|
835
|
+
if (frame._tag !== IOTag.OnSuccess && frame._tag !== IOTag.WhileLoop) {
|
835
836
|
return frame;
|
836
837
|
}
|
837
838
|
}
|
@@ -41,3 +41,8 @@ export function interrupted(id: FiberId, __tsplusTrace?: string): Fiber<never, n
|
|
41
41
|
export function succeed<A>(a: A, __tsplusTrace?: string): Fiber<never, A> {
|
42
42
|
return done(Exit.succeed(a));
|
43
43
|
}
|
44
|
+
|
45
|
+
/**
|
46
|
+
* @tsplus static fncts.io.FiberOps unit
|
47
|
+
*/
|
48
|
+
export const unit: Fiber<never, void> = succeed(undefined);
|