effect 2.1.2 → 2.2.0
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/dist/cjs/FiberMap.js +59 -3
- package/dist/cjs/FiberMap.js.map +1 -1
- package/dist/cjs/FiberSet.js +55 -3
- package/dist/cjs/FiberSet.js.map +1 -1
- package/dist/cjs/internal/fiberId.js +11 -3
- package/dist/cjs/internal/fiberId.js.map +1 -1
- package/dist/cjs/internal/schedule.js +11 -1
- package/dist/cjs/internal/schedule.js.map +1 -1
- package/dist/cjs/internal/version.js +1 -1
- package/dist/dts/FiberMap.d.ts +42 -5
- package/dist/dts/FiberMap.d.ts.map +1 -1
- package/dist/dts/FiberSet.d.ts +36 -1
- package/dist/dts/FiberSet.d.ts.map +1 -1
- package/dist/dts/internal/version.d.ts +1 -1
- package/dist/esm/FiberMap.js +54 -1
- package/dist/esm/FiberMap.js.map +1 -1
- package/dist/esm/FiberSet.js +50 -1
- package/dist/esm/FiberSet.js.map +1 -1
- package/dist/esm/internal/fiberId.js +11 -3
- package/dist/esm/internal/fiberId.js.map +1 -1
- package/dist/esm/internal/schedule.js +11 -1
- package/dist/esm/internal/schedule.js.map +1 -1
- package/dist/esm/internal/version.js +1 -1
- package/package.json +1 -1
- package/src/FiberMap.ts +97 -16
- package/src/FiberSet.ts +86 -13
- package/src/internal/fiberId.ts +18 -17
- package/src/internal/schedule.ts +15 -12
- package/src/internal/version.ts +1 -1
package/dist/cjs/FiberMap.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.unsafeSet = exports.unsafeGet = exports.size = exports.set = exports.run = exports.remove = exports.make = exports.isFiberMap = exports.get = exports.clear = exports.TypeId = void 0;
|
|
6
|
+
exports.unsafeSet = exports.unsafeGet = exports.size = exports.set = exports.runtime = exports.run = exports.remove = exports.makeRuntime = exports.make = exports.isFiberMap = exports.get = exports.clear = exports.TypeId = void 0;
|
|
7
7
|
var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Effect"));
|
|
8
8
|
var Fiber = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Fiber.js"));
|
|
9
9
|
var FiberId = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./FiberId.js"));
|
|
@@ -13,6 +13,7 @@ var MutableHashMap = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require(
|
|
|
13
13
|
var Option = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Option.js"));
|
|
14
14
|
var _Pipeable = /*#__PURE__*/require("./Pipeable.js");
|
|
15
15
|
var Predicate = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Predicate.js"));
|
|
16
|
+
var Runtime = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Runtime.js"));
|
|
16
17
|
function _getRequireWildcardCache(e) {
|
|
17
18
|
if ("function" != typeof WeakMap) return null;
|
|
18
19
|
var r = new WeakMap(),
|
|
@@ -105,6 +106,14 @@ const unsafeMake = () => {
|
|
|
105
106
|
* @categories constructors
|
|
106
107
|
*/
|
|
107
108
|
const make = () => Effect.acquireRelease(Effect.sync(() => unsafeMake()), clear);
|
|
109
|
+
/**
|
|
110
|
+
* Create an Effect run function that is backed by a FiberMap.
|
|
111
|
+
*
|
|
112
|
+
* @since 2.0.0
|
|
113
|
+
* @categories constructors
|
|
114
|
+
*/
|
|
115
|
+
exports.make = make;
|
|
116
|
+
const makeRuntime = () => Effect.flatMap(make(), self => runtime(self)());
|
|
108
117
|
/**
|
|
109
118
|
* Add a fiber to the FiberMap. When the fiber completes, it will be removed from the FiberMap.
|
|
110
119
|
* If the key already exists in the FiberMap, the previous fiber will be interrupted.
|
|
@@ -112,7 +121,7 @@ const make = () => Effect.acquireRelease(Effect.sync(() => unsafeMake()), clear)
|
|
|
112
121
|
* @since 2.0.0
|
|
113
122
|
* @categories combinators
|
|
114
123
|
*/
|
|
115
|
-
exports.
|
|
124
|
+
exports.makeRuntime = makeRuntime;
|
|
116
125
|
const unsafeSet = exports.unsafeSet = /*#__PURE__*/(0, _Function.dual)(args => isFiberMap(args[0]), (self, key, fiber, interruptAs) => {
|
|
117
126
|
const previous = MutableHashMap.get(self.backing, key);
|
|
118
127
|
if (previous._tag === "Some") {
|
|
@@ -180,11 +189,58 @@ const clear = self => Effect.zipRight(Effect.forEach(self.backing, ([_, fiber])
|
|
|
180
189
|
* @categories combinators
|
|
181
190
|
*/
|
|
182
191
|
exports.clear = clear;
|
|
183
|
-
const run =
|
|
192
|
+
const run = function () {
|
|
193
|
+
if (arguments.length === 2) {
|
|
194
|
+
const self = arguments[0];
|
|
195
|
+
const key = arguments[1];
|
|
196
|
+
return effect => Effect.tap(Effect.forkDaemon(effect), fiber => set(self, key, fiber));
|
|
197
|
+
}
|
|
198
|
+
const self = arguments[0];
|
|
199
|
+
const key = arguments[1];
|
|
200
|
+
const effect = arguments[2];
|
|
201
|
+
return Effect.tap(Effect.forkDaemon(effect), fiber => set(self, key, fiber));
|
|
202
|
+
};
|
|
203
|
+
/**
|
|
204
|
+
* Capture a Runtime and use it to fork Effect's, adding the forked fibers to the FiberMap.
|
|
205
|
+
*
|
|
206
|
+
* @example
|
|
207
|
+
* import { Context, Effect, FiberMap } from "effect"
|
|
208
|
+
*
|
|
209
|
+
* interface Users {
|
|
210
|
+
* readonly _: unique symbol
|
|
211
|
+
* }
|
|
212
|
+
* const Users = Context.Tag<Users, {
|
|
213
|
+
* getAll: Effect.Effect<never, never, Array<unknown>>
|
|
214
|
+
* }>()
|
|
215
|
+
*
|
|
216
|
+
* Effect.gen(function*(_) {
|
|
217
|
+
* const map = yield* _(FiberMap.make<string>())
|
|
218
|
+
* const run = yield* _(FiberMap.runtime(map)<Users>())
|
|
219
|
+
*
|
|
220
|
+
* // run some effects and add the fibers to the map
|
|
221
|
+
* run("effect-a", Effect.andThen(Users, _ => _.getAll))
|
|
222
|
+
* run("effect-b", Effect.andThen(Users, _ => _.getAll))
|
|
223
|
+
* }).pipe(
|
|
224
|
+
* Effect.scoped // The fibers will be interrupted when the scope is closed
|
|
225
|
+
* )
|
|
226
|
+
*
|
|
227
|
+
* @since 2.0.0
|
|
228
|
+
* @categories combinators
|
|
229
|
+
*/
|
|
230
|
+
exports.run = run;
|
|
231
|
+
const runtime = self => () => Effect.map(Effect.runtime(), runtime => {
|
|
232
|
+
const runFork = Runtime.runFork(runtime);
|
|
233
|
+
return (key, effect, options) => {
|
|
234
|
+
const fiber = runFork(effect, options);
|
|
235
|
+
unsafeSet(self, key, fiber);
|
|
236
|
+
return fiber;
|
|
237
|
+
};
|
|
238
|
+
});
|
|
184
239
|
/**
|
|
185
240
|
* @since 2.0.0
|
|
186
241
|
* @categories combinators
|
|
187
242
|
*/
|
|
243
|
+
exports.runtime = runtime;
|
|
188
244
|
const size = self => Effect.sync(() => MutableHashMap.size(self.backing));
|
|
189
245
|
exports.size = size;
|
|
190
246
|
//# sourceMappingURL=FiberMap.js.map
|
package/dist/cjs/FiberMap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FiberMap.js","names":["Effect","_interopRequireWildcard","require","Fiber","FiberId","_Function","Inspectable","MutableHashMap","Option","_Pipeable","Predicate","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","TypeId","exports","Symbol","for","isFiberMap","hasProperty","Proto","iterator","backing","toString","format","toJSON","_id","NodeInspectSymbol","pipe","pipeArguments","arguments","unsafeMake","self","create","empty","make","acquireRelease","sync","clear","unsafeSet","dual","args","key","fiber","interruptAs","previous","_tag","value","unsafeInterruptAsFork","none","addObserver","_","current","isSome","remove","fiberIdWith","fiberId","unsafeGet","suspend","unit","interrupt","zipRight","forEach","run","effect","tap","forkDaemon","size"],"sources":["../../src/FiberMap.ts"],"sourcesContent":[null],"mappings":";;;;;;AAGA,IAAAA,MAAA,gBAAAC,uBAAA,eAAAC,OAAA;AAGA,IAAAC,KAAA,gBAAAF,uBAAA,eAAAC,OAAA;AACA,IAAAE,OAAA,gBAAAH,uBAAA,eAAAC,OAAA;AACA,IAAAG,SAAA,gBAAAH,OAAA;
|
|
1
|
+
{"version":3,"file":"FiberMap.js","names":["Effect","_interopRequireWildcard","require","Fiber","FiberId","_Function","Inspectable","MutableHashMap","Option","_Pipeable","Predicate","Runtime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","TypeId","exports","Symbol","for","isFiberMap","hasProperty","Proto","iterator","backing","toString","format","toJSON","_id","NodeInspectSymbol","pipe","pipeArguments","arguments","unsafeMake","self","create","empty","make","acquireRelease","sync","clear","makeRuntime","flatMap","runtime","unsafeSet","dual","args","key","fiber","interruptAs","previous","_tag","value","unsafeInterruptAsFork","none","addObserver","_","current","isSome","remove","fiberIdWith","fiberId","unsafeGet","suspend","unit","interrupt","zipRight","forEach","run","length","effect","tap","forkDaemon","map","runFork","options","size"],"sources":["../../src/FiberMap.ts"],"sourcesContent":[null],"mappings":"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"}
|
package/dist/cjs/FiberSet.js
CHANGED
|
@@ -3,13 +3,14 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.unsafeAdd = exports.size = exports.run = exports.make = exports.isFiberSet = exports.clear = exports.add = exports.TypeId = void 0;
|
|
6
|
+
exports.unsafeAdd = exports.size = exports.runtime = exports.run = exports.makeRuntime = exports.make = exports.isFiberSet = exports.clear = exports.add = exports.TypeId = void 0;
|
|
7
7
|
var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Effect"));
|
|
8
8
|
var Fiber = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Fiber.js"));
|
|
9
9
|
var _Function = /*#__PURE__*/require("./Function.js");
|
|
10
10
|
var Inspectable = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Inspectable.js"));
|
|
11
11
|
var _Pipeable = /*#__PURE__*/require("./Pipeable.js");
|
|
12
12
|
var Predicate = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Predicate.js"));
|
|
13
|
+
var Runtime = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Runtime.js"));
|
|
13
14
|
function _getRequireWildcardCache(e) {
|
|
14
15
|
if ("function" != typeof WeakMap) return null;
|
|
15
16
|
var r = new WeakMap(),
|
|
@@ -102,13 +103,21 @@ const unsafeMake = () => {
|
|
|
102
103
|
* @categories constructors
|
|
103
104
|
*/
|
|
104
105
|
const make = () => Effect.acquireRelease(Effect.sync(() => unsafeMake()), clear);
|
|
106
|
+
/**
|
|
107
|
+
* Create an Effect run function that is backed by a FiberSet.
|
|
108
|
+
*
|
|
109
|
+
* @since 2.0.0
|
|
110
|
+
* @categories constructors
|
|
111
|
+
*/
|
|
112
|
+
exports.make = make;
|
|
113
|
+
const makeRuntime = () => Effect.flatMap(make(), self => runtime(self)());
|
|
105
114
|
/**
|
|
106
115
|
* Add a fiber to the FiberSet. When the fiber completes, it will be removed.
|
|
107
116
|
*
|
|
108
117
|
* @since 2.0.0
|
|
109
118
|
* @categories combinators
|
|
110
119
|
*/
|
|
111
|
-
exports.
|
|
120
|
+
exports.makeRuntime = makeRuntime;
|
|
112
121
|
const unsafeAdd = exports.unsafeAdd = /*#__PURE__*/(0, _Function.dual)(2, (self, fiber) => {
|
|
113
122
|
if (self.backing.has(fiber)) {
|
|
114
123
|
return;
|
|
@@ -140,11 +149,54 @@ const clear = self => Effect.zipRight(Effect.forEach(self.backing, fiber => Fibe
|
|
|
140
149
|
* @categories combinators
|
|
141
150
|
*/
|
|
142
151
|
exports.clear = clear;
|
|
143
|
-
const run =
|
|
152
|
+
const run = function () {
|
|
153
|
+
const self = arguments[0];
|
|
154
|
+
if (arguments.length === 1) {
|
|
155
|
+
return effect => Effect.tap(Effect.forkDaemon(effect), fiber => add(self, fiber));
|
|
156
|
+
}
|
|
157
|
+
const effect = arguments[1];
|
|
158
|
+
return Effect.tap(Effect.forkDaemon(effect), fiber => add(self, fiber));
|
|
159
|
+
};
|
|
160
|
+
/**
|
|
161
|
+
* Capture a Runtime and use it to fork Effect's, adding the forked fibers to the FiberSet.
|
|
162
|
+
*
|
|
163
|
+
* @example
|
|
164
|
+
* import { Context, Effect, FiberSet } from "effect"
|
|
165
|
+
*
|
|
166
|
+
* interface Users {
|
|
167
|
+
* readonly _: unique symbol
|
|
168
|
+
* }
|
|
169
|
+
* const Users = Context.Tag<Users, {
|
|
170
|
+
* getAll: Effect.Effect<never, never, Array<unknown>>
|
|
171
|
+
* }>()
|
|
172
|
+
*
|
|
173
|
+
* Effect.gen(function*(_) {
|
|
174
|
+
* const set = yield* _(FiberSet.make())
|
|
175
|
+
* const run = yield* _(FiberSet.runtime(set)<Users>())
|
|
176
|
+
*
|
|
177
|
+
* // run some effects and add the fibers to the set
|
|
178
|
+
* run(Effect.andThen(Users, _ => _.getAll))
|
|
179
|
+
* }).pipe(
|
|
180
|
+
* Effect.scoped // The fibers will be interrupted when the scope is closed
|
|
181
|
+
* )
|
|
182
|
+
*
|
|
183
|
+
* @since 2.0.0
|
|
184
|
+
* @categories combinators
|
|
185
|
+
*/
|
|
186
|
+
exports.run = run;
|
|
187
|
+
const runtime = self => () => Effect.map(Effect.runtime(), runtime => {
|
|
188
|
+
const runFork = Runtime.runFork(runtime);
|
|
189
|
+
return (effect, options) => {
|
|
190
|
+
const fiber = runFork(effect, options);
|
|
191
|
+
unsafeAdd(self, fiber);
|
|
192
|
+
return fiber;
|
|
193
|
+
};
|
|
194
|
+
});
|
|
144
195
|
/**
|
|
145
196
|
* @since 2.0.0
|
|
146
197
|
* @categories combinators
|
|
147
198
|
*/
|
|
199
|
+
exports.runtime = runtime;
|
|
148
200
|
const size = self => Effect.sync(() => self.backing.size);
|
|
149
201
|
exports.size = size;
|
|
150
202
|
//# sourceMappingURL=FiberSet.js.map
|
package/dist/cjs/FiberSet.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FiberSet.js","names":["Effect","_interopRequireWildcard","require","Fiber","_Function","Inspectable","_Pipeable","Predicate","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","TypeId","exports","Symbol","for","isFiberSet","hasProperty","Proto","iterator","backing","toString","format","toJSON","_id","Array","from","NodeInspectSymbol","pipe","pipeArguments","arguments","unsafeMake","self","create","Set","make","acquireRelease","sync","clear","unsafeAdd","dual","fiber","add","addObserver","_","delete","zipRight","forEach","interrupt","run","effect","tap","forkDaemon","size"],"sources":["../../src/FiberSet.ts"],"sourcesContent":[null],"mappings":";;;;;;AAGA,IAAAA,MAAA,gBAAAC,uBAAA,eAAAC,OAAA;AAEA,IAAAC,KAAA,gBAAAF,uBAAA,eAAAC,OAAA;AACA,IAAAE,SAAA,gBAAAF,OAAA;AACA,IAAAG,WAAA,gBAAAJ,uBAAA,eAAAC,OAAA;AACA,IAAAI,SAAA,gBAAAJ,OAAA;AACA,IAAAK,SAAA,gBAAAN,uBAAA,eAAAC,OAAA;
|
|
1
|
+
{"version":3,"file":"FiberSet.js","names":["Effect","_interopRequireWildcard","require","Fiber","_Function","Inspectable","_Pipeable","Predicate","Runtime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","TypeId","exports","Symbol","for","isFiberSet","hasProperty","Proto","iterator","backing","toString","format","toJSON","_id","Array","from","NodeInspectSymbol","pipe","pipeArguments","arguments","unsafeMake","self","create","Set","make","acquireRelease","sync","clear","makeRuntime","flatMap","runtime","unsafeAdd","dual","fiber","add","addObserver","_","delete","zipRight","forEach","interrupt","run","length","effect","tap","forkDaemon","map","runFork","options","size"],"sources":["../../src/FiberSet.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -52,8 +52,12 @@ const OP_COMPOSITE = "Composite";
|
|
|
52
52
|
class None {
|
|
53
53
|
[FiberIdTypeId] = FiberIdTypeId;
|
|
54
54
|
_tag = OP_NONE;
|
|
55
|
+
_hash;
|
|
56
|
+
constructor() {
|
|
57
|
+
this._hash = Hash.string(`${FiberIdSymbolKey}-${this._tag}`);
|
|
58
|
+
}
|
|
55
59
|
[Hash.symbol]() {
|
|
56
|
-
return
|
|
60
|
+
return this._hash;
|
|
57
61
|
}
|
|
58
62
|
[Equal.symbol](that) {
|
|
59
63
|
return isFiberId(that) && that._tag === OP_NONE;
|
|
@@ -77,12 +81,14 @@ class Runtime {
|
|
|
77
81
|
startTimeMillis;
|
|
78
82
|
[FiberIdTypeId] = FiberIdTypeId;
|
|
79
83
|
_tag = OP_RUNTIME;
|
|
84
|
+
_hash;
|
|
80
85
|
constructor(id, startTimeMillis) {
|
|
81
86
|
this.id = id;
|
|
82
87
|
this.startTimeMillis = startTimeMillis;
|
|
88
|
+
this._hash = Hash.string(`${FiberIdSymbolKey}-${this._tag}-${this.id}-${this.startTimeMillis}`);
|
|
83
89
|
}
|
|
84
90
|
[Hash.symbol]() {
|
|
85
|
-
return
|
|
91
|
+
return this._hash;
|
|
86
92
|
}
|
|
87
93
|
[Equal.symbol](that) {
|
|
88
94
|
return isFiberId(that) && that._tag === OP_RUNTIME && this.id === that.id && this.startTimeMillis === that.startTimeMillis;
|
|
@@ -108,12 +114,14 @@ class Composite {
|
|
|
108
114
|
right;
|
|
109
115
|
[FiberIdTypeId] = FiberIdTypeId;
|
|
110
116
|
_tag = OP_COMPOSITE;
|
|
117
|
+
_hash;
|
|
111
118
|
constructor(left, right) {
|
|
112
119
|
this.left = left;
|
|
113
120
|
this.right = right;
|
|
121
|
+
this._hash = (0, _Function.pipe)(Hash.string(`${FiberIdSymbolKey}-${this._tag}`), Hash.combine(Hash.hash(this.left)), Hash.combine(Hash.hash(this.right)));
|
|
114
122
|
}
|
|
115
123
|
[Hash.symbol]() {
|
|
116
|
-
return
|
|
124
|
+
return this._hash;
|
|
117
125
|
}
|
|
118
126
|
[Equal.symbol](that) {
|
|
119
127
|
return isFiberId(that) && that._tag === OP_COMPOSITE && Equal.equals(this.left, that.left) && Equal.equals(this.right, that.right);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fiberId.js","names":["Equal","_interopRequireWildcard","require","_Function","_GlobalValue","Hash","HashSet","_Inspectable","MutableRef","Option","_Predicate","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","FiberIdSymbolKey","FiberIdTypeId","exports","Symbol","for","OP_NONE","OP_RUNTIME","OP_COMPOSITE","None","_tag","
|
|
1
|
+
{"version":3,"file":"fiberId.js","names":["Equal","_interopRequireWildcard","require","_Function","_GlobalValue","Hash","HashSet","_Inspectable","MutableRef","Option","_Predicate","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","FiberIdSymbolKey","FiberIdTypeId","exports","Symbol","for","OP_NONE","OP_RUNTIME","OP_COMPOSITE","None","_tag","_hash","constructor","string","symbol","that","isFiberId","toString","format","toJSON","_id","NodeInspectSymbol","Runtime","id","startTimeMillis","Composite","left","right","pipe","combine","hash","equals","none","runtime","composite","self","hasProperty","isNone","toSet","every","isRuntime","isComposite","dual","combineAll","fiberIds","reduce","b","getOrElse","ids","empty","make","union","_fiberCounter","globalValue","startTimeSeconds","threadName","identifiers","Array","from","map","join","toOption","size","first","acc","fiberId","some","unsafeMake","Date","now"],"sources":["../../../src/internal/fiberId.ts"],"sourcesContent":[null],"mappings":";;;;;;AAAA,IAAAA,KAAA,gBAAAC,uBAAA,eAAAC,OAAA;AAEA,IAAAC,SAAA,gBAAAD,OAAA;AACA,IAAAE,YAAA,gBAAAF,OAAA;AACA,IAAAG,IAAA,gBAAAJ,uBAAA,eAAAC,OAAA;AACA,IAAAI,OAAA,gBAAAL,uBAAA,eAAAC,OAAA;AACA,IAAAK,YAAA,gBAAAL,OAAA;AACA,IAAAM,UAAA,gBAAAP,uBAAA,eAAAC,OAAA;AACA,IAAAO,MAAA,gBAAAR,uBAAA,eAAAC,OAAA;AACA,IAAAQ,UAAA,gBAAAR,OAAA;AAA6C,SAAAS,yBAAAC,CAAA;EAAA,yBAAAC,OAAA;EAAA,IAAAC,CAAA,OAAAD,OAAA;IAAAE,CAAA,OAAAF,OAAA;EAAA,QAAAF,wBAAA,YAAAA,CAAAC,CAAA;IAAA,OAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA;EAAA,GAAAF,CAAA;AAAA;AAAA,SAAAX,wBAAAW,CAAA,EAAAE,CAAA;EAAA,KAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA;EAAA,aAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA;IAAAK,OAAA,EAAAL;EAAA;EAAA,IAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA;EAAA,IAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA;EAAA,IAAAQ,CAAA;MAAAC,SAAA;IAAA;IAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA;EAAA,SAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA;IAAA,IAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA;IAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA;EAAA;EAAA,OAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA;AAE7C;AACA,MAAMY,gBAAgB,GAAG,gBAAgB;AAEzC;AACO,MAAMC,aAAa,GAAAC,OAAA,CAAAD,aAAA,gBAA0BE,MAAM,CAACC,GAAG,CAC5DJ,gBAAgB,CACQ;AAE1B;AACA,MAAMK,OAAO,GAAG,MAAe;AAK/B;AACA,MAAMC,UAAU,GAAG,SAAkB;AAKrC;AACA,MAAMC,YAAY,GAAG,WAAoB;AAKzC;AACA,MAAMC,IAAI;EACC,CAACP,aAAa,IAA2BA,aAAa;EACtDQ,IAAI,GAAGJ,OAAO;EACdK,KAAK;EACdC,YAAA;IACE,IAAI,CAACD,KAAK,GAAGrC,IAAI,CAACuC,MAAM,CAAC,GAAGZ,gBAAgB,IAAI,IAAI,CAACS,IAAI,EAAE,CAAC;EAC9D;EACA,CAACpC,IAAI,CAACwC,MAAM,IAAC;IACX,OAAO,IAAI,CAACH,KAAK;EACnB;EACA,CAAC1C,KAAK,CAAC6C,MAAM,EAAEC,IAAa;IAC1B,OAAOC,SAAS,CAACD,IAAI,CAAC,IAAIA,IAAI,CAACL,IAAI,KAAKJ,OAAO;EACjD;EACAW,QAAQA,CAAA;IACN,OAAO,IAAAzC,YAAA,CAAA0C,MAAM,EAAC,IAAI,CAACC,MAAM,EAAE,CAAC;EAC9B;EACAA,MAAMA,CAAA;IACJ,OAAO;MACLC,GAAG,EAAE,SAAS;MACdV,IAAI,EAAE,IAAI,CAACA;KACZ;EACH;EACA,CAAClC,YAAA,CAAA6C,iBAAiB,IAAC;IACjB,OAAO,IAAI,CAACF,MAAM,EAAE;EACtB;;AAGF;AACA,MAAMG,OAAO;EAKAC,EAAA;EACAC,eAAA;EALF,CAACtB,aAAa,IAA2BA,aAAa;EACtDQ,IAAI,GAAGH,UAAU;EACjBI,KAAK;EACdC,YACWW,EAAU,EACVC,eAAuB;IADvB,KAAAD,EAAE,GAAFA,EAAE;IACF,KAAAC,eAAe,GAAfA,eAAe;IAExB,IAAI,CAACb,KAAK,GAAGrC,IAAI,CAACuC,MAAM,CAAC,GAAGZ,gBAAgB,IAAI,IAAI,CAACS,IAAI,IAAI,IAAI,CAACa,EAAE,IAAI,IAAI,CAACC,eAAe,EAAE,CAAC;EACjG;EACA,CAAClD,IAAI,CAACwC,MAAM,IAAC;IACX,OAAO,IAAI,CAACH,KAAK;EACnB;EACA,CAAC1C,KAAK,CAAC6C,MAAM,EAAEC,IAAa;IAC1B,OAAOC,SAAS,CAACD,IAAI,CAAC,IACpBA,IAAI,CAACL,IAAI,KAAKH,UAAU,IACxB,IAAI,CAACgB,EAAE,KAAKR,IAAI,CAACQ,EAAE,IACnB,IAAI,CAACC,eAAe,KAAKT,IAAI,CAACS,eAAe;EACjD;EACAP,QAAQA,CAAA;IACN,OAAO,IAAAzC,YAAA,CAAA0C,MAAM,EAAC,IAAI,CAACC,MAAM,EAAE,CAAC;EAC9B;EACAA,MAAMA,CAAA;IACJ,OAAO;MACLC,GAAG,EAAE,SAAS;MACdV,IAAI,EAAE,IAAI,CAACA,IAAI;MACfa,EAAE,EAAE,IAAI,CAACA,EAAE;MACXC,eAAe,EAAE,IAAI,CAACA;KACvB;EACH;EACA,CAAChD,YAAA,CAAA6C,iBAAiB,IAAC;IACjB,OAAO,IAAI,CAACF,MAAM,EAAE;EACtB;;AAGF;AACA,MAAMM,SAAS;EAKFC,IAAA;EACAC,KAAA;EALF,CAACzB,aAAa,IAA2BA,aAAa;EACtDQ,IAAI,GAAGF,YAAY;EACnBG,KAAK;EACdC,YACWc,IAAqB,EACrBC,KAAsB;IADtB,KAAAD,IAAI,GAAJA,IAAI;IACJ,KAAAC,KAAK,GAALA,KAAK;IAEd,IAAI,CAAChB,KAAK,GAAG,IAAAvC,SAAA,CAAAwD,IAAI,EACftD,IAAI,CAACuC,MAAM,CAAC,GAAGZ,gBAAgB,IAAI,IAAI,CAACS,IAAI,EAAE,CAAC,EAC/CpC,IAAI,CAACuD,OAAO,CAACvD,IAAI,CAACwD,IAAI,CAAC,IAAI,CAACJ,IAAI,CAAC,CAAC,EAClCpD,IAAI,CAACuD,OAAO,CAACvD,IAAI,CAACwD,IAAI,CAAC,IAAI,CAACH,KAAK,CAAC,CAAC,CACpC;EACH;EACA,CAACrD,IAAI,CAACwC,MAAM,IAAC;IACX,OAAO,IAAI,CAACH,KAAK;EACnB;EACA,CAAC1C,KAAK,CAAC6C,MAAM,EAAEC,IAAa;IAC1B,OAAOC,SAAS,CAACD,IAAI,CAAC,IACpBA,IAAI,CAACL,IAAI,KAAKF,YAAY,IAC1BvC,KAAK,CAAC8D,MAAM,CAAC,IAAI,CAACL,IAAI,EAAEX,IAAI,CAACW,IAAI,CAAC,IAClCzD,KAAK,CAAC8D,MAAM,CAAC,IAAI,CAACJ,KAAK,EAAEZ,IAAI,CAACY,KAAK,CAAC;EACxC;EACAV,QAAQA,CAAA;IACN,OAAO,IAAAzC,YAAA,CAAA0C,MAAM,EAAC,IAAI,CAACC,MAAM,EAAE,CAAC;EAC9B;EACAA,MAAMA,CAAA;IACJ,OAAO;MACLC,GAAG,EAAE,SAAS;MACdV,IAAI,EAAE,IAAI,CAACA,IAAI;MACfgB,IAAI,EAAE,IAAAlD,YAAA,CAAA2C,MAAM,EAAC,IAAI,CAACO,IAAI,CAAC;MACvBC,KAAK,EAAE,IAAAnD,YAAA,CAAA2C,MAAM,EAAC,IAAI,CAACQ,KAAK;KACzB;EACH;EACA,CAACnD,YAAA,CAAA6C,iBAAiB,IAAC;IACjB,OAAO,IAAI,CAACF,MAAM,EAAE;EACtB;;AAGF;AACO,MAAMa,IAAI,GAAA7B,OAAA,CAAA6B,IAAA,gBAAoB,IAAIvB,IAAI,EAAE;AAE/C;AACO,MAAMwB,OAAO,GAAGA,CAACV,EAAU,EAAEC,eAAuB,KAAqB;EAC9E,OAAO,IAAIF,OAAO,CAACC,EAAE,EAAEC,eAAe,CAAC;AACzC,CAAC;AAED;AAAArB,OAAA,CAAA8B,OAAA,GAAAA,OAAA;AACO,MAAMC,SAAS,GAAGA,CAACR,IAAqB,EAAEC,KAAsB,KAAqB;EAC1F,OAAO,IAAIF,SAAS,CAACC,IAAI,EAAEC,KAAK,CAAC;AACnC,CAAC;AAED;AAAAxB,OAAA,CAAA+B,SAAA,GAAAA,SAAA;AACO,MAAMlB,SAAS,GAAImB,IAAa,IAA8B,IAAAxD,UAAA,CAAAyD,WAAW,EAACD,IAAI,EAAEjC,aAAa,CAAC;AAErG;AAAAC,OAAA,CAAAa,SAAA,GAAAA,SAAA;AACO,MAAMqB,MAAM,GAAIF,IAAqB,IAA0B;EACpE,OAAOA,IAAI,CAACzB,IAAI,KAAKJ,OAAO,IAAI,IAAAlC,SAAA,CAAAwD,IAAI,EAACU,KAAK,CAACH,IAAI,CAAC,EAAE5D,OAAO,CAACgE,KAAK,CAAEhB,EAAE,IAAKc,MAAM,CAACd,EAAE,CAAC,CAAC,CAAC;AACtF,CAAC;AAED;AAAApB,OAAA,CAAAkC,MAAA,GAAAA,MAAA;AACO,MAAMG,SAAS,GAAIL,IAAqB,IAA6B;EAC1E,OAAOA,IAAI,CAACzB,IAAI,KAAKH,UAAU;AACjC,CAAC;AAED;AAAAJ,OAAA,CAAAqC,SAAA,GAAAA,SAAA;AACO,MAAMC,WAAW,GAAIN,IAAqB,IAA+B;EAC9E,OAAOA,IAAI,CAACzB,IAAI,KAAKF,YAAY;AACnC,CAAC;AAED;AAAAL,OAAA,CAAAsC,WAAA,GAAAA,WAAA;AACO,MAAMZ,OAAO,GAAA1B,OAAA,CAAA0B,OAAA,gBAAG,IAAAzD,SAAA,CAAAsE,IAAI,EAGzB,CAAC,EAAE,CAACP,IAAI,EAAEpB,IAAI,KAAI;EAClB,IAAIoB,IAAI,CAACzB,IAAI,KAAKJ,OAAO,EAAE;IACzB,OAAOS,IAAI;EACb;EACA,IAAIA,IAAI,CAACL,IAAI,KAAKJ,OAAO,EAAE;IACzB,OAAO6B,IAAI;EACb;EACA,OAAO,IAAIV,SAAS,CAACU,IAAI,EAAEpB,IAAI,CAAC;AAClC,CAAC,CAAC;AAEF;AACO,MAAM4B,UAAU,GAAIC,QAA0C,IAAqB;EACxF,OAAO,IAAAxE,SAAA,CAAAwD,IAAI,EAACgB,QAAQ,EAAErE,OAAO,CAACsE,MAAM,CAACb,IAAuB,EAAE,CAACzC,CAAC,EAAEuD,CAAC,KAAKjB,OAAO,CAACiB,CAAC,CAAC,CAACvD,CAAC,CAAC,CAAC,CAAC;AACzF,CAAC;AAED;AAAAY,OAAA,CAAAwC,UAAA,GAAAA,UAAA;AACO,MAAMI,SAAS,GAAA5C,OAAA,CAAA4C,SAAA,gBAAG,IAAA3E,SAAA,CAAAsE,IAAI,EAG3B,CAAC,EAAE,CAACP,IAAI,EAAEpB,IAAI,KAAKsB,MAAM,CAACF,IAAI,CAAC,GAAGpB,IAAI,GAAGoB,IAAI,CAAC;AAEhD;AACO,MAAMa,GAAG,GAAIb,IAAqB,IAA6B;EACpE,QAAQA,IAAI,CAACzB,IAAI;IACf,KAAKJ,OAAO;MAAE;QACZ,OAAO/B,OAAO,CAAC0E,KAAK,EAAE;MACxB;IACA,KAAK1C,UAAU;MAAE;QACf,OAAOhC,OAAO,CAAC2E,IAAI,CAACf,IAAI,CAACZ,EAAE,CAAC;MAC9B;IACA,KAAKf,YAAY;MAAE;QACjB,OAAO,IAAApC,SAAA,CAAAwD,IAAI,EAACoB,GAAG,CAACb,IAAI,CAACT,IAAI,CAAC,EAAEnD,OAAO,CAAC4E,KAAK,CAACH,GAAG,CAACb,IAAI,CAACR,KAAK,CAAC,CAAC,CAAC;MAC7D;EACF;AACF,CAAC;AAAAxB,OAAA,CAAA6C,GAAA,GAAAA,GAAA;AAED,MAAMI,aAAa,gBAAG,IAAA/E,YAAA,CAAAgF,WAAW,gBAC/BjD,MAAM,CAACC,GAAG,CAAC,+BAA+B,CAAC,EAC3C,MAAM5B,UAAU,CAACyE,IAAI,CAAC,CAAC,CAAC,CACzB;AAED;AACO,MAAMA,IAAI,GAAGA,CAAC3B,EAAU,EAAE+B,gBAAwB,KAAqB;EAC5E,OAAO,IAAIhC,OAAO,CAACC,EAAE,EAAE+B,gBAAgB,CAAC;AAC1C,CAAC;AAED;AAAAnD,OAAA,CAAA+C,IAAA,GAAAA,IAAA;AACO,MAAMK,UAAU,GAAIpB,IAAqB,IAAY;EAC1D,MAAMqB,WAAW,GAAGC,KAAK,CAACC,IAAI,CAACV,GAAG,CAACb,IAAI,CAAC,CAAC,CAACwB,GAAG,CAAEtE,CAAC,IAAK,IAAIA,CAAC,EAAE,CAAC,CAACuE,IAAI,CAAC,GAAG,CAAC;EACvE,OAAOJ,WAAW;AACpB,CAAC;AAED;AAAArD,OAAA,CAAAoD,UAAA,GAAAA,UAAA;AACO,MAAMM,QAAQ,GAAI1B,IAAqB,IAAoC;EAChF,MAAMS,QAAQ,GAAGN,KAAK,CAACH,IAAI,CAAC;EAC5B,IAAI5D,OAAO,CAACuF,IAAI,CAAClB,QAAQ,CAAC,KAAK,CAAC,EAAE;IAChC,OAAOlE,MAAM,CAACsD,IAAI,EAAE;EACtB;EACA,IAAI+B,KAAK,GAAG,IAAI;EAChB,IAAIC,GAAoB;EACxB,KAAK,MAAMC,OAAO,IAAIrB,QAAQ,EAAE;IAC9B,IAAImB,KAAK,EAAE;MACTC,GAAG,GAAGC,OAAO;MACbF,KAAK,GAAG,KAAK;IACf,CAAC,MAAM;MACL;MACAC,GAAG,GAAG,IAAA5F,SAAA,CAAAwD,IAAI,EAACoC,GAAG,EAAEnC,OAAO,CAACoC,OAAO,CAAC,CAAC;IACnC;EACF;EACA;EACA,OAAOvF,MAAM,CAACwF,IAAI,CAACF,GAAG,CAAC;AACzB,CAAC;AAED;AAAA7D,OAAA,CAAA0D,QAAA,GAAAA,QAAA;AACO,MAAMvB,KAAK,GAAIH,IAAqB,IAAsC;EAC/E,QAAQA,IAAI,CAACzB,IAAI;IACf,KAAKJ,OAAO;MAAE;QACZ,OAAO/B,OAAO,CAAC0E,KAAK,EAAE;MACxB;IACA,KAAK1C,UAAU;MAAE;QACf,OAAOhC,OAAO,CAAC2E,IAAI,CAACf,IAAI,CAAC;MAC3B;IACA,KAAK3B,YAAY;MAAE;QACjB,OAAO,IAAApC,SAAA,CAAAwD,IAAI,EAACU,KAAK,CAACH,IAAI,CAACT,IAAI,CAAC,EAAEnD,OAAO,CAAC4E,KAAK,CAACb,KAAK,CAACH,IAAI,CAACR,KAAK,CAAC,CAAC,CAAC;MACjE;EACF;AACF,CAAC;AAED;AAAAxB,OAAA,CAAAmC,KAAA,GAAAA,KAAA;AACO,MAAM6B,UAAU,GAAGA,CAAA,KAAsB;EAC9C,MAAM5C,EAAE,GAAG9C,UAAU,CAACW,GAAG,CAACgE,aAAa,CAAC;EACxC,IAAAhF,SAAA,CAAAwD,IAAI,EAACwB,aAAa,EAAE3E,UAAU,CAACuB,GAAG,CAACuB,EAAE,GAAG,CAAC,CAAC,CAAC;EAC3C,OAAO,IAAID,OAAO,CAACC,EAAE,EAAE6C,IAAI,CAACC,GAAG,EAAE,CAAC;AACpC,CAAC;AAAAlE,OAAA,CAAAgE,UAAA,GAAAA,UAAA"}
|
|
@@ -119,7 +119,17 @@ class ScheduleDriverImpl {
|
|
|
119
119
|
return ref.set(this.ref, [Option.none(), this.schedule.initial]);
|
|
120
120
|
}
|
|
121
121
|
next(input) {
|
|
122
|
-
return (0, _Function.pipe)(core.map(ref.get(this.ref), tuple => tuple[1]), core.flatMap(state => (0, _Function.pipe)(Clock.currentTimeMillis, core.flatMap(now => (0, _Function.pipe)(core.suspend(() => this.schedule.step(now, input, state)), core.flatMap(([state, out, decision]) =>
|
|
122
|
+
return (0, _Function.pipe)(core.map(ref.get(this.ref), tuple => tuple[1]), core.flatMap(state => (0, _Function.pipe)(Clock.currentTimeMillis, core.flatMap(now => (0, _Function.pipe)(core.suspend(() => this.schedule.step(now, input, state)), core.flatMap(([state, out, decision]) => {
|
|
123
|
+
const setState = ref.set(this.ref, [Option.some(out), state]);
|
|
124
|
+
if (ScheduleDecision.isDone(decision)) {
|
|
125
|
+
return core.zipRight(setState, core.fail(Option.none()));
|
|
126
|
+
}
|
|
127
|
+
const millis = Intervals.start(decision.intervals) - now;
|
|
128
|
+
if (millis <= 0) {
|
|
129
|
+
return core.as(setState, out);
|
|
130
|
+
}
|
|
131
|
+
return (0, _Function.pipe)(setState, core.zipRight(effect.sleep(Duration.millis(millis))), core.as(out));
|
|
132
|
+
}))))));
|
|
123
133
|
}
|
|
124
134
|
}
|
|
125
135
|
/** @internal */
|