@effect/platform-bun 0.19.1 → 0.19.3
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/internal/worker.js +14 -9
- package/dist/cjs/internal/worker.js.map +1 -1
- package/dist/cjs/internal/workerRunner.js +10 -8
- package/dist/cjs/internal/workerRunner.js.map +1 -1
- package/dist/esm/internal/worker.js +14 -9
- package/dist/esm/internal/worker.js.map +1 -1
- package/dist/esm/internal/workerRunner.js +10 -8
- package/dist/esm/internal/workerRunner.js.map +1 -1
- package/package.json +3 -3
- package/src/internal/worker.ts +16 -7
- package/src/internal/workerRunner.ts +11 -5
|
@@ -55,19 +55,24 @@ const platformWorkerImpl = /*#__PURE__*/Worker.PlatformWorker.of({
|
|
|
55
55
|
onSome: _ => Effect.unit
|
|
56
56
|
})))));
|
|
57
57
|
const queue = yield* _(Queue.unbounded());
|
|
58
|
-
const fiber = yield* _(Effect.async(
|
|
59
|
-
|
|
58
|
+
const fiber = yield* _(Effect.async(resume => {
|
|
59
|
+
function onMessage(event) {
|
|
60
60
|
queue.unsafeOffer(event.data);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
});
|
|
64
|
-
port.addEventListener("error", function (event) {
|
|
61
|
+
}
|
|
62
|
+
function onError(event) {
|
|
65
63
|
resume(Effect.fail((0, _WorkerError.WorkerError)("unknown", event.message)));
|
|
66
|
-
}
|
|
67
|
-
|
|
64
|
+
}
|
|
65
|
+
port.addEventListener("message", onMessage);
|
|
66
|
+
port.addEventListener("error", onError);
|
|
67
|
+
return Effect.sync(() => {
|
|
68
|
+
port.removeEventListener("message", onMessage);
|
|
69
|
+
port.removeEventListener("error", onError);
|
|
68
70
|
});
|
|
69
71
|
}), Effect.interruptible, Effect.forkScoped);
|
|
70
|
-
const send = (message, transfers) => Effect.
|
|
72
|
+
const send = (message, transfers) => Effect.try({
|
|
73
|
+
try: () => port.postMessage([0, message], transfers),
|
|
74
|
+
catch: error => (0, _WorkerError.WorkerError)("send", error.message)
|
|
75
|
+
});
|
|
71
76
|
return {
|
|
72
77
|
fiber,
|
|
73
78
|
queue,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","names":["Worker","_interopRequireWildcard","require","_WorkerError","Effect","_Function","Layer","Option","Queue","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","platformWorkerImpl","PlatformWorker","of","PlatformWorkerTypeId","spawn","worker_","gen","_","port","addFinalizer","pipe","async","resume","signal","addEventListener","unit","once","postMessage","timeout","tap","match","onNone","sync","terminate","onSome","queue","unbounded","fiber","event","unsafeOffer","data","fail","WorkerError","message","interruptible","forkScoped","send","transfers","layerWorker","exports","succeed","layerManager","provide","makePool","makePoolLayer"],"sources":["../../../src/internal/worker.ts"],"sourcesContent":[null],"mappings":"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
|
|
1
|
+
{"version":3,"file":"worker.js","names":["Worker","_interopRequireWildcard","require","_WorkerError","Effect","_Function","Layer","Option","Queue","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","platformWorkerImpl","PlatformWorker","of","PlatformWorkerTypeId","spawn","worker_","gen","_","port","addFinalizer","pipe","async","resume","signal","addEventListener","unit","once","postMessage","timeout","tap","match","onNone","sync","terminate","onSome","queue","unbounded","fiber","onMessage","event","unsafeOffer","data","onError","fail","WorkerError","message","removeEventListener","interruptible","forkScoped","send","transfers","try","catch","error","layerWorker","exports","succeed","layerManager","provide","makePool","makePoolLayer"],"sources":["../../../src/internal/worker.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -43,21 +43,23 @@ const platformRunnerImpl = /*#__PURE__*/Runner.PlatformRunner.of({
|
|
|
43
43
|
}
|
|
44
44
|
const port = self;
|
|
45
45
|
const queue = yield* _(Queue.unbounded());
|
|
46
|
-
const fiber = yield* _(Effect.async(
|
|
47
|
-
|
|
46
|
+
const fiber = yield* _(Effect.async(resume => {
|
|
47
|
+
function onMessage(event) {
|
|
48
48
|
const message = event.data;
|
|
49
49
|
if (message[0] === 0) {
|
|
50
50
|
queue.unsafeOffer(message[1]);
|
|
51
51
|
} else {
|
|
52
52
|
Effect.runFork(Queue.shutdown(queue));
|
|
53
53
|
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
});
|
|
57
|
-
port.addEventListener("error", function (error) {
|
|
54
|
+
}
|
|
55
|
+
function onError(error) {
|
|
58
56
|
resume(Effect.fail((0, _WorkerError.WorkerError)("unknown", error.message)));
|
|
59
|
-
}
|
|
60
|
-
|
|
57
|
+
}
|
|
58
|
+
port.addEventListener("message", onMessage);
|
|
59
|
+
port.addEventListener("error", onError);
|
|
60
|
+
return Effect.sync(() => {
|
|
61
|
+
port.removeEventListener("message", onMessage);
|
|
62
|
+
port.removeEventListener("error", onError);
|
|
61
63
|
});
|
|
62
64
|
}), Effect.forkScoped);
|
|
63
65
|
const send = (message, transfer) => Effect.sync(() => port.postMessage([1, message], {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workerRunner.js","names":["_WorkerError","require","Runner","_interopRequireWildcard","Effect","Layer","Queue","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","platformRunnerImpl","PlatformRunner","of","PlatformRunnerTypeId","start","gen","_","self","die","port","queue","unbounded","fiber","async","resume","
|
|
1
|
+
{"version":3,"file":"workerRunner.js","names":["_WorkerError","require","Runner","_interopRequireWildcard","Effect","Layer","Queue","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","platformRunnerImpl","PlatformRunner","of","PlatformRunnerTypeId","start","gen","_","self","die","port","queue","unbounded","fiber","async","resume","onMessage","event","message","data","unsafeOffer","runFork","shutdown","onError","error","fail","WorkerError","addEventListener","sync","removeEventListener","forkScoped","send","transfer","postMessage","layer","exports","succeed","make","process","options","provide"],"sources":["../../../src/internal/workerRunner.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -24,19 +24,24 @@ const platformWorkerImpl = /*#__PURE__*/Worker.PlatformWorker.of({
|
|
|
24
24
|
onSome: _ => Effect.unit
|
|
25
25
|
})))));
|
|
26
26
|
const queue = yield* _(Queue.unbounded());
|
|
27
|
-
const fiber = yield* _(Effect.async(
|
|
28
|
-
|
|
27
|
+
const fiber = yield* _(Effect.async(resume => {
|
|
28
|
+
function onMessage(event) {
|
|
29
29
|
queue.unsafeOffer(event.data);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
});
|
|
33
|
-
port.addEventListener("error", function (event) {
|
|
30
|
+
}
|
|
31
|
+
function onError(event) {
|
|
34
32
|
resume(Effect.fail(WorkerError("unknown", event.message)));
|
|
35
|
-
}
|
|
36
|
-
|
|
33
|
+
}
|
|
34
|
+
port.addEventListener("message", onMessage);
|
|
35
|
+
port.addEventListener("error", onError);
|
|
36
|
+
return Effect.sync(() => {
|
|
37
|
+
port.removeEventListener("message", onMessage);
|
|
38
|
+
port.removeEventListener("error", onError);
|
|
37
39
|
});
|
|
38
40
|
}), Effect.interruptible, Effect.forkScoped);
|
|
39
|
-
const send = (message, transfers) => Effect.
|
|
41
|
+
const send = (message, transfers) => Effect.try({
|
|
42
|
+
try: () => port.postMessage([0, message], transfers),
|
|
43
|
+
catch: error => WorkerError("send", error.message)
|
|
44
|
+
});
|
|
40
45
|
return {
|
|
41
46
|
fiber,
|
|
42
47
|
queue,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","names":["Worker","WorkerError","Effect","pipe","Layer","Option","Queue","platformWorkerImpl","PlatformWorker","of","PlatformWorkerTypeId","spawn","worker_","gen","_","port","addFinalizer","async","resume","signal","addEventListener","unit","once","postMessage","timeout","tap","match","onNone","sync","terminate","onSome","queue","unbounded","fiber","event","unsafeOffer","data","fail","message","interruptible","forkScoped","send","transfers","layerWorker","succeed","layerManager","provide","makePool","makePoolLayer"],"sources":["../../../src/internal/worker.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,MAAM,MAAM,yBAAyB;AACjD,SAASC,WAAW,QAAQ,8BAA8B;AAC1D,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,SAASC,IAAI,QAAQ,iBAAiB;AACtC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AAErC,MAAMC,kBAAkB,gBAAGP,MAAM,CAACQ,cAAc,CAACC,EAAE,CAAC;EAClD,CAACT,MAAM,CAACU,oBAAoB,GAAGV,MAAM,CAACU,oBAAoB;EAC1DC,KAAKA,CAAOC,OAAgB;IAC1B,OAAOV,MAAM,CAACW,GAAG,CAAC,WAAUC,CAAC;MAC3B,MAAMC,IAAI,GAAGH,OAA4B;MAEzC,OAAOE,CAAC,CAACZ,MAAM,CAACc,YAAY,CAAC,MAC3Bb,IAAI,CACFD,MAAM,CAACe,KAAK,CAAqB,CAACC,MAAM,EAAEC,MAAM,KAAI;QAClDJ,IAAI,CAACK,gBAAgB,CAAC,OAAO,EAAE,MAAMF,MAAM,CAAChB,MAAM,CAACmB,IAAI,CAAC,EAAE;UAAEC,IAAI,EAAE,IAAI;UAAEH;QAAM,CAAE,CAAC;QACjFJ,IAAI,CAACQ,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;MACvB,CAAC,CAAC;MACF;MACA;MACArB,MAAM,CAACsB,OAAO,CAAC,IAAI,CAAC,EACpBtB,MAAM,CAACuB,GAAG,CAACpB,MAAM,CAACqB,KAAK,CAAC;QACtBC,MAAM,EAAEA,CAAA,KAAMzB,MAAM,CAAC0B,IAAI,CAAC,MAAMb,IAAI,CAACc,SAAS,EAAE,CAAC;QACjDC,MAAM,EAAGhB,CAAC,IAAKZ,MAAM,CAACmB;OACvB,CAAC,CAAC,CACJ,CACF,CAAC;MAEF,MAAMU,KAAK,GAAG,OAAOjB,CAAC,CAACR,KAAK,CAAC0B,SAAS,EAAmC,CAAC;MAE1E,MAAMC,KAAK,GAAG,OAAOnB,CAAC,CACpBZ,MAAM,CAACe,KAAK,
|
|
1
|
+
{"version":3,"file":"worker.js","names":["Worker","WorkerError","Effect","pipe","Layer","Option","Queue","platformWorkerImpl","PlatformWorker","of","PlatformWorkerTypeId","spawn","worker_","gen","_","port","addFinalizer","async","resume","signal","addEventListener","unit","once","postMessage","timeout","tap","match","onNone","sync","terminate","onSome","queue","unbounded","fiber","onMessage","event","unsafeOffer","data","onError","fail","message","removeEventListener","interruptible","forkScoped","send","transfers","try","catch","error","layerWorker","succeed","layerManager","provide","makePool","makePoolLayer"],"sources":["../../../src/internal/worker.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -12,21 +12,23 @@ const platformRunnerImpl = /*#__PURE__*/Runner.PlatformRunner.of({
|
|
|
12
12
|
}
|
|
13
13
|
const port = self;
|
|
14
14
|
const queue = yield* _(Queue.unbounded());
|
|
15
|
-
const fiber = yield* _(Effect.async(
|
|
16
|
-
|
|
15
|
+
const fiber = yield* _(Effect.async(resume => {
|
|
16
|
+
function onMessage(event) {
|
|
17
17
|
const message = event.data;
|
|
18
18
|
if (message[0] === 0) {
|
|
19
19
|
queue.unsafeOffer(message[1]);
|
|
20
20
|
} else {
|
|
21
21
|
Effect.runFork(Queue.shutdown(queue));
|
|
22
22
|
}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
});
|
|
26
|
-
port.addEventListener("error", function (error) {
|
|
23
|
+
}
|
|
24
|
+
function onError(error) {
|
|
27
25
|
resume(Effect.fail(WorkerError("unknown", error.message)));
|
|
28
|
-
}
|
|
29
|
-
|
|
26
|
+
}
|
|
27
|
+
port.addEventListener("message", onMessage);
|
|
28
|
+
port.addEventListener("error", onError);
|
|
29
|
+
return Effect.sync(() => {
|
|
30
|
+
port.removeEventListener("message", onMessage);
|
|
31
|
+
port.removeEventListener("error", onError);
|
|
30
32
|
});
|
|
31
33
|
}), Effect.forkScoped);
|
|
32
34
|
const send = (message, transfer) => Effect.sync(() => port.postMessage([1, message], {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workerRunner.js","names":["WorkerError","Runner","Effect","Layer","Queue","platformRunnerImpl","PlatformRunner","of","PlatformRunnerTypeId","start","gen","_","self","die","port","queue","unbounded","fiber","async","resume","
|
|
1
|
+
{"version":3,"file":"workerRunner.js","names":["WorkerError","Runner","Effect","Layer","Queue","platformRunnerImpl","PlatformRunner","of","PlatformRunnerTypeId","start","gen","_","self","die","port","queue","unbounded","fiber","async","resume","onMessage","event","message","data","unsafeOffer","runFork","shutdown","onError","error","fail","addEventListener","sync","removeEventListener","forkScoped","send","transfer","postMessage","layer","succeed","make","process","options","provide"],"sources":["../../../src/internal/workerRunner.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,WAAW,QAAQ,8BAA8B;AAC1D,OAAO,KAAKC,MAAM,MAAM,+BAA+B;AACvD,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,KAAK,MAAM,cAAc;AAMrC,MAAMC,kBAAkB,gBAAGJ,MAAM,CAACK,cAAc,CAACC,EAAE,CAAC;EAClD,CAACN,MAAM,CAACO,oBAAoB,GAAGP,MAAM,CAACO,oBAAoB;EAC1DC,KAAKA,CAAA;IACH,OAAOP,MAAM,CAACQ,GAAG,CAAC,WAAUC,CAAC;MAC3B,IAAI,EAAE,aAAa,IAAIC,IAAI,CAAC,EAAE;QAC5B,OAAO,OAAOD,CAAC,CAACT,MAAM,CAACW,GAAG,CAAC,iBAAiB,CAAC,CAAC;;MAEhD,MAAMC,IAAI,GAAGF,IAAI;MACjB,MAAMG,KAAK,GAAG,OAAOJ,CAAC,CAACP,KAAK,CAACY,SAAS,EAAK,CAAC;MAC5C,MAAMC,KAAK,GAAG,OAAON,CAAC,CACpBT,MAAM,CAACgB,KAAK,CAA6BC,MAAM,IAAI;QACjD,SAASC,SAASA,CAACC,KAAmB;UACpC,MAAMC,OAAO,GAAID,KAAsB,CAACE,IAAuC;UAC/E,IAAID,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;YACpBP,KAAK,CAACS,WAAW,CAACF,OAAO,CAAC,CAAC,CAAC,CAAC;WAC9B,MAAM;YACLpB,MAAM,CAACuB,OAAO,CAACrB,KAAK,CAACsB,QAAQ,CAACX,KAAK,CAAC,CAAC;;QAEzC;QACA,SAASY,OAAOA,CAACC,KAAiB;UAChCT,MAAM,CAACjB,MAAM,CAAC2B,IAAI,CAAC7B,WAAW,CAAC,SAAS,EAAE4B,KAAK,CAACN,OAAO,CAAC,CAAC,CAAC;QAC5D;QACAR,IAAI,CAACgB,gBAAgB,CAAC,SAAS,EAAEV,SAAS,CAAC;QAC3CN,IAAI,CAACgB,gBAAgB,CAAC,OAAO,EAAEH,OAAO,CAAC;QACvC,OAAOzB,MAAM,CAAC6B,IAAI,CAAC,MAAK;UACtBjB,IAAI,CAACkB,mBAAmB,CAAC,SAAS,EAAEZ,SAAS,CAAC;UAC9CN,IAAI,CAACkB,mBAAmB,CAAC,OAAO,EAAEL,OAAO,CAAC;QAC5C,CAAC,CAAC;MACJ,CAAC,CAAC,EACFzB,MAAM,CAAC+B,UAAU,CAClB;MACD,MAAMC,IAAI,GAAGA,CAACZ,OAAU,EAAEa,QAAiC,KACzDjC,MAAM,CAAC6B,IAAI,CAAC,MACVjB,IAAI,CAACsB,WAAW,CAAC,CAAC,CAAC,EAAEd,OAAO,CAAC,EAAE;QAC7Ba,QAAQ,EAAEA;OACX,CAAC,CACH;MACH;MACArB,IAAI,CAACsB,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;MACrB,OAAO;QAAEnB,KAAK;QAAEF,KAAK;QAAEmB;MAAI,CAAE;IAC/B,CAAC,CAAC;EACJ;CACD,CAAC;AAEF;AACA,OAAO,MAAMG,KAAK,gBAAGlC,KAAK,CAACmC,OAAO,CAACrC,MAAM,CAACK,cAAc,EAAED,kBAAkB,CAAC;AAE7E;AACA,OAAO,MAAMkC,IAAI,GAAGA,CAClBC,OAA+C,EAC/CC,OAAkC,KACqBvC,MAAM,CAACwC,OAAO,CAACzC,MAAM,CAACsC,IAAI,CAACC,OAAO,EAAEC,OAAO,CAAC,EAAEJ,KAAK,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/platform-bun",
|
|
3
|
-
"version": "0.19.
|
|
3
|
+
"version": "0.19.3",
|
|
4
4
|
"description": "Unified interfaces for common platform-specific services",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
"sideEffects": false,
|
|
11
11
|
"author": "Effect contributors",
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@effect/platform": "0.30.
|
|
14
|
-
"@effect/platform-node": "0.31.
|
|
13
|
+
"@effect/platform": "0.30.3",
|
|
14
|
+
"@effect/platform-node": "0.31.3"
|
|
15
15
|
},
|
|
16
16
|
"peerDependencies": {
|
|
17
17
|
"effect": "2.0.0-next.55"
|
package/src/internal/worker.ts
CHANGED
|
@@ -31,20 +31,29 @@ const platformWorkerImpl = Worker.PlatformWorker.of({
|
|
|
31
31
|
const queue = yield* _(Queue.unbounded<Worker.BackingWorker.Message<O>>())
|
|
32
32
|
|
|
33
33
|
const fiber = yield* _(
|
|
34
|
-
Effect.async<never, WorkerError, never>((resume
|
|
35
|
-
|
|
36
|
-
queue.unsafeOffer(event.data)
|
|
37
|
-
}
|
|
38
|
-
|
|
34
|
+
Effect.async<never, WorkerError, never>((resume) => {
|
|
35
|
+
function onMessage(event: MessageEvent) {
|
|
36
|
+
queue.unsafeOffer((event as MessageEvent).data)
|
|
37
|
+
}
|
|
38
|
+
function onError(event: ErrorEvent) {
|
|
39
39
|
resume(Effect.fail(WorkerError("unknown", event.message)))
|
|
40
|
-
}
|
|
40
|
+
}
|
|
41
|
+
port.addEventListener("message", onMessage)
|
|
42
|
+
port.addEventListener("error", onError)
|
|
43
|
+
return Effect.sync(() => {
|
|
44
|
+
port.removeEventListener("message", onMessage)
|
|
45
|
+
port.removeEventListener("error", onError)
|
|
46
|
+
})
|
|
41
47
|
}),
|
|
42
48
|
Effect.interruptible,
|
|
43
49
|
Effect.forkScoped
|
|
44
50
|
)
|
|
45
51
|
|
|
46
52
|
const send = (message: I, transfers?: ReadonlyArray<unknown>) =>
|
|
47
|
-
Effect.
|
|
53
|
+
Effect.try({
|
|
54
|
+
try: () => port.postMessage([0, message], transfers as any),
|
|
55
|
+
catch: (error) => WorkerError("send", (error as any).message)
|
|
56
|
+
})
|
|
48
57
|
|
|
49
58
|
return { fiber, queue, send }
|
|
50
59
|
})
|
|
@@ -18,18 +18,24 @@ const platformRunnerImpl = Runner.PlatformRunner.of({
|
|
|
18
18
|
const port = self
|
|
19
19
|
const queue = yield* _(Queue.unbounded<I>())
|
|
20
20
|
const fiber = yield* _(
|
|
21
|
-
Effect.async<never, WorkerError, never>((resume
|
|
22
|
-
|
|
21
|
+
Effect.async<never, WorkerError, never>((resume) => {
|
|
22
|
+
function onMessage(event: MessageEvent) {
|
|
23
23
|
const message = (event as MessageEvent).data as Runner.BackingRunner.Message<I>
|
|
24
24
|
if (message[0] === 0) {
|
|
25
25
|
queue.unsafeOffer(message[1])
|
|
26
26
|
} else {
|
|
27
27
|
Effect.runFork(Queue.shutdown(queue))
|
|
28
28
|
}
|
|
29
|
-
}
|
|
30
|
-
|
|
29
|
+
}
|
|
30
|
+
function onError(error: ErrorEvent) {
|
|
31
31
|
resume(Effect.fail(WorkerError("unknown", error.message)))
|
|
32
|
-
}
|
|
32
|
+
}
|
|
33
|
+
port.addEventListener("message", onMessage)
|
|
34
|
+
port.addEventListener("error", onError)
|
|
35
|
+
return Effect.sync(() => {
|
|
36
|
+
port.removeEventListener("message", onMessage)
|
|
37
|
+
port.removeEventListener("error", onError)
|
|
38
|
+
})
|
|
33
39
|
}),
|
|
34
40
|
Effect.forkScoped
|
|
35
41
|
)
|