@effect/platform-browser 0.38.0 → 0.38.2

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.
@@ -3,13 +3,23 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.layer = void 0;
6
+ exports.make = exports.layerMessagePort = exports.layer = void 0;
7
7
  var internal = _interopRequireWildcard(require("./internal/workerRunner.js"));
8
8
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
9
9
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
10
+ /**
11
+ * @since 1.0.0
12
+ * @category constructors
13
+ */
14
+ const make = exports.make = internal.make;
10
15
  /**
11
16
  * @since 1.0.0
12
17
  * @category layers
13
18
  */
14
19
  const layer = exports.layer = internal.layer;
20
+ /**
21
+ * @since 1.0.0
22
+ * @category layers
23
+ */
24
+ const layerMessagePort = exports.layerMessagePort = internal.layerMessagePort;
15
25
  //# sourceMappingURL=BrowserWorkerRunner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserWorkerRunner.js","names":["internal","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","layer","exports"],"sources":["../../src/BrowserWorkerRunner.ts"],"sourcesContent":[null],"mappings":";;;;;;AAKA,IAAAA,QAAA,GAAAC,uBAAA,CAAAC,OAAA;AAAsD,SAAAC,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAEtD;;;;AAIO,MAAMW,KAAK,GAAAC,OAAA,CAAAD,KAAA,GAAuCvB,QAAQ,CAACuB,KAAK","ignoreList":[]}
1
+ {"version":3,"file":"BrowserWorkerRunner.js","names":["internal","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","make","exports","layer","layerMessagePort"],"sources":["../../src/BrowserWorkerRunner.ts"],"sourcesContent":[null],"mappings":";;;;;;AAKA,IAAAA,QAAA,GAAAC,uBAAA,CAAAC,OAAA;AAAsD,SAAAC,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAEtD;;;;AAIO,MAAMW,IAAI,GAAAC,OAAA,CAAAD,IAAA,GAA0DvB,QAAQ,CAACuB,IAAI;AAExF;;;;AAIO,MAAME,KAAK,GAAAD,OAAA,CAAAC,KAAA,GAAuCzB,QAAQ,CAACyB,KAAK;AAEvE;;;;AAIO,MAAMC,gBAAgB,GAAAF,OAAA,CAAAE,gBAAA,GAC3B1B,QAAQ,CAAC0B,gBAAgB","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.layer = void 0;
6
+ exports.make = exports.layerMessagePort = exports.layer = void 0;
7
7
  var _WorkerError = require("@effect/platform/WorkerError");
8
8
  var Runner = _interopRequireWildcard(require("@effect/platform/WorkerRunner"));
9
9
  var Deferred = _interopRequireWildcard(require("effect/Deferred"));
@@ -24,7 +24,8 @@ function globalHandleConnect(event) {
24
24
  if (typeof self !== "undefined" && "onconnect" in self) {
25
25
  self.onconnect = globalHandleConnect;
26
26
  }
27
- const platformRunnerImpl = /*#__PURE__*/Runner.PlatformRunner.of({
27
+ /** @internal */
28
+ const make = self => Runner.PlatformRunner.of({
28
29
  [Runner.PlatformRunnerTypeId]: Runner.PlatformRunnerTypeId,
29
30
  start() {
30
31
  return Effect.sync(() => {
@@ -92,7 +93,9 @@ const platformRunnerImpl = /*#__PURE__*/Runner.PlatformRunner.of({
92
93
  }), runFork);
93
94
  }
94
95
  self.addEventListener("error", onError);
96
+ let prevOnConnect;
95
97
  if ("onconnect" in self) {
98
+ prevOnConnect = self.onconnect;
96
99
  self.onconnect = function (event) {
97
100
  const port = event.ports[0];
98
101
  handlePort(port);
@@ -107,7 +110,7 @@ const platformRunnerImpl = /*#__PURE__*/Runner.PlatformRunner.of({
107
110
  return Scope.addFinalizer(scope, Effect.sync(() => {
108
111
  self.removeEventListener("error", onError);
109
112
  if ("onconnect" in self) {
110
- self.onconnect = globalHandleConnect;
113
+ self.onconnect = prevOnConnect;
111
114
  }
112
115
  self.close();
113
116
  }));
@@ -123,5 +126,9 @@ const platformRunnerImpl = /*#__PURE__*/Runner.PlatformRunner.of({
123
126
  }
124
127
  });
125
128
  /** @internal */
126
- const layer = exports.layer = /*#__PURE__*/Layer.succeed(Runner.PlatformRunner, platformRunnerImpl);
129
+ exports.make = make;
130
+ const layerMessagePort = port => Layer.succeed(Runner.PlatformRunner, make(port));
131
+ /** @internal */
132
+ exports.layerMessagePort = layerMessagePort;
133
+ const layer = exports.layer = /*#__PURE__*/Layer.succeed(Runner.PlatformRunner, /*#__PURE__*/make(self));
127
134
  //# sourceMappingURL=workerRunner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workerRunner.js","names":["_WorkerError","require","Runner","_interopRequireWildcard","Deferred","Effect","ExecStrategy","Exit","FiberId","FiberSet","_GlobalValue","Layer","Scope","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","cachedPorts","globalValue","Set","globalHandleConnect","event","add","ports","self","onconnect","platformRunnerImpl","PlatformRunner","of","PlatformRunnerTypeId","start","sync","currentPortId","Map","send","portId","message","transfer","postMessage","run","handler","uninterruptibleMask","restore","make","pipe","bindTo","bind","scope","extend","fiberSet","runtime","tap","runFork","onMessage","data","port","close","void","delete","size","unsafeDone","deferred","interrupt","none","onMessageError","error","WorkerError","reason","cause","onError","handlePort","fork","sequential","flatMap","onMsg","addEventListener","addFinalizer","removeEventListener","clear","join","ensuring","layer","exports","succeed"],"sources":["../../../src/internal/workerRunner.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"workerRunner.js","names":["_WorkerError","require","Runner","_interopRequireWildcard","Deferred","Effect","ExecStrategy","Exit","FiberId","FiberSet","_GlobalValue","Layer","Scope","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","cachedPorts","globalValue","Set","globalHandleConnect","event","add","ports","self","onconnect","make","PlatformRunner","of","PlatformRunnerTypeId","start","sync","currentPortId","Map","send","portId","message","transfer","postMessage","run","handler","uninterruptibleMask","restore","pipe","bindTo","bind","scope","extend","fiberSet","runtime","tap","runFork","onMessage","data","port","close","void","delete","size","unsafeDone","deferred","interrupt","none","onMessageError","error","WorkerError","reason","cause","onError","handlePort","fork","sequential","flatMap","onMsg","addEventListener","addFinalizer","removeEventListener","prevOnConnect","clear","join","ensuring","exports","layerMessagePort","succeed","layer"],"sources":["../../../src/internal/workerRunner.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -3,9 +3,19 @@
3
3
  */
4
4
  import type * as Runner from "@effect/platform/WorkerRunner";
5
5
  import type * as Layer from "effect/Layer";
6
+ /**
7
+ * @since 1.0.0
8
+ * @category constructors
9
+ */
10
+ export declare const make: (self: MessagePort | Window) => Runner.PlatformRunner;
6
11
  /**
7
12
  * @since 1.0.0
8
13
  * @category layers
9
14
  */
10
15
  export declare const layer: Layer.Layer<Runner.PlatformRunner>;
16
+ /**
17
+ * @since 1.0.0
18
+ * @category layers
19
+ */
20
+ export declare const layerMessagePort: (port: MessagePort | Window) => Layer.Layer<Runner.PlatformRunner>;
11
21
  //# sourceMappingURL=BrowserWorkerRunner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserWorkerRunner.d.ts","sourceRoot":"","sources":["../../src/BrowserWorkerRunner.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,+BAA+B,CAAA;AAC5D,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAG1C;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAkB,CAAA"}
1
+ {"version":3,"file":"BrowserWorkerRunner.d.ts","sourceRoot":"","sources":["../../src/BrowserWorkerRunner.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,+BAA+B,CAAA;AAC5D,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAG1C;;;GAGG;AACH,eAAO,MAAM,IAAI,EAAE,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,KAAK,MAAM,CAAC,cAA8B,CAAA;AAExF;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAkB,CAAA;AAEvE;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CACrE,CAAA"}
@@ -1,7 +1,17 @@
1
1
  import * as internal from "./internal/workerRunner.js";
2
+ /**
3
+ * @since 1.0.0
4
+ * @category constructors
5
+ */
6
+ export const make = internal.make;
2
7
  /**
3
8
  * @since 1.0.0
4
9
  * @category layers
5
10
  */
6
11
  export const layer = internal.layer;
12
+ /**
13
+ * @since 1.0.0
14
+ * @category layers
15
+ */
16
+ export const layerMessagePort = internal.layerMessagePort;
7
17
  //# sourceMappingURL=BrowserWorkerRunner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserWorkerRunner.js","names":["internal","layer"],"sources":["../../src/BrowserWorkerRunner.ts"],"sourcesContent":[null],"mappings":"AAKA,OAAO,KAAKA,QAAQ,MAAM,4BAA4B;AAEtD;;;;AAIA,OAAO,MAAMC,KAAK,GAAuCD,QAAQ,CAACC,KAAK","ignoreList":[]}
1
+ {"version":3,"file":"BrowserWorkerRunner.js","names":["internal","make","layer","layerMessagePort"],"sources":["../../src/BrowserWorkerRunner.ts"],"sourcesContent":[null],"mappings":"AAKA,OAAO,KAAKA,QAAQ,MAAM,4BAA4B;AAEtD;;;;AAIA,OAAO,MAAMC,IAAI,GAA0DD,QAAQ,CAACC,IAAI;AAExF;;;;AAIA,OAAO,MAAMC,KAAK,GAAuCF,QAAQ,CAACE,KAAK;AAEvE;;;;AAIA,OAAO,MAAMC,gBAAgB,GAC3BH,QAAQ,CAACG,gBAAgB","ignoreList":[]}
@@ -16,7 +16,8 @@ function globalHandleConnect(event) {
16
16
  if (typeof self !== "undefined" && "onconnect" in self) {
17
17
  self.onconnect = globalHandleConnect;
18
18
  }
19
- const platformRunnerImpl = /*#__PURE__*/Runner.PlatformRunner.of({
19
+ /** @internal */
20
+ export const make = self => Runner.PlatformRunner.of({
20
21
  [Runner.PlatformRunnerTypeId]: Runner.PlatformRunnerTypeId,
21
22
  start() {
22
23
  return Effect.sync(() => {
@@ -84,7 +85,9 @@ const platformRunnerImpl = /*#__PURE__*/Runner.PlatformRunner.of({
84
85
  }), runFork);
85
86
  }
86
87
  self.addEventListener("error", onError);
88
+ let prevOnConnect;
87
89
  if ("onconnect" in self) {
90
+ prevOnConnect = self.onconnect;
88
91
  self.onconnect = function (event) {
89
92
  const port = event.ports[0];
90
93
  handlePort(port);
@@ -99,7 +102,7 @@ const platformRunnerImpl = /*#__PURE__*/Runner.PlatformRunner.of({
99
102
  return Scope.addFinalizer(scope, Effect.sync(() => {
100
103
  self.removeEventListener("error", onError);
101
104
  if ("onconnect" in self) {
102
- self.onconnect = globalHandleConnect;
105
+ self.onconnect = prevOnConnect;
103
106
  }
104
107
  self.close();
105
108
  }));
@@ -115,5 +118,7 @@ const platformRunnerImpl = /*#__PURE__*/Runner.PlatformRunner.of({
115
118
  }
116
119
  });
117
120
  /** @internal */
118
- export const layer = /*#__PURE__*/Layer.succeed(Runner.PlatformRunner, platformRunnerImpl);
121
+ export const layerMessagePort = port => Layer.succeed(Runner.PlatformRunner, make(port));
122
+ /** @internal */
123
+ export const layer = /*#__PURE__*/Layer.succeed(Runner.PlatformRunner, /*#__PURE__*/make(self));
119
124
  //# sourceMappingURL=workerRunner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workerRunner.js","names":["WorkerError","Runner","Deferred","Effect","ExecStrategy","Exit","FiberId","FiberSet","globalValue","Layer","Scope","cachedPorts","Set","globalHandleConnect","event","add","ports","self","onconnect","platformRunnerImpl","PlatformRunner","of","PlatformRunnerTypeId","start","sync","currentPortId","Map","send","portId","message","transfer","get","postMessage","run","handler","uninterruptibleMask","restore","make","pipe","bindTo","bind","scope","extend","fiberSet","runtime","tap","runFork","onMessage","data","port","close","void","delete","size","unsafeDone","deferred","interrupt","none","onMessageError","error","reason","cause","onError","handlePort","fork","sequential","flatMap","set","onMsg","addEventListener","addFinalizer","removeEventListener","clear","join","ensuring","layer","succeed"],"sources":["../../../src/internal/workerRunner.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"workerRunner.js","names":["WorkerError","Runner","Deferred","Effect","ExecStrategy","Exit","FiberId","FiberSet","globalValue","Layer","Scope","cachedPorts","Set","globalHandleConnect","event","add","ports","self","onconnect","make","PlatformRunner","of","PlatformRunnerTypeId","start","sync","currentPortId","Map","send","portId","message","transfer","get","postMessage","run","handler","uninterruptibleMask","restore","pipe","bindTo","bind","scope","extend","fiberSet","runtime","tap","runFork","onMessage","data","port","close","void","delete","size","unsafeDone","deferred","interrupt","none","onMessageError","error","reason","cause","onError","handlePort","fork","sequential","flatMap","set","onMsg","addEventListener","addFinalizer","removeEventListener","prevOnConnect","clear","join","ensuring","layerMessagePort","succeed","layer"],"sources":["../../../src/internal/workerRunner.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/platform-browser",
3
- "version": "0.38.0",
3
+ "version": "0.38.2",
4
4
  "description": "Platform specific implementations for the browser",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -13,8 +13,8 @@
13
13
  "multipasta": "^0.2.2"
14
14
  },
15
15
  "peerDependencies": {
16
- "@effect/platform": "^0.59.0",
17
- "effect": "^3.5.4"
16
+ "@effect/platform": "^0.59.1",
17
+ "effect": "^3.5.5"
18
18
  },
19
19
  "publishConfig": {
20
20
  "provenance": true
@@ -5,8 +5,21 @@ import type * as Runner from "@effect/platform/WorkerRunner"
5
5
  import type * as Layer from "effect/Layer"
6
6
  import * as internal from "./internal/workerRunner.js"
7
7
 
8
+ /**
9
+ * @since 1.0.0
10
+ * @category constructors
11
+ */
12
+ export const make: (self: MessagePort | Window) => Runner.PlatformRunner = internal.make
13
+
8
14
  /**
9
15
  * @since 1.0.0
10
16
  * @category layers
11
17
  */
12
18
  export const layer: Layer.Layer<Runner.PlatformRunner> = internal.layer
19
+
20
+ /**
21
+ * @since 1.0.0
22
+ * @category layers
23
+ */
24
+ export const layerMessagePort: (port: MessagePort | Window) => Layer.Layer<Runner.PlatformRunner> =
25
+ internal.layerMessagePort
@@ -18,115 +18,122 @@ if (typeof self !== "undefined" && "onconnect" in self) {
18
18
  self.onconnect = globalHandleConnect
19
19
  }
20
20
 
21
- const platformRunnerImpl = Runner.PlatformRunner.of({
22
- [Runner.PlatformRunnerTypeId]: Runner.PlatformRunnerTypeId,
23
- start<I, O>() {
24
- return Effect.sync(() => {
25
- let currentPortId = 0
21
+ /** @internal */
22
+ export const make = (self: MessagePort | Window) =>
23
+ Runner.PlatformRunner.of({
24
+ [Runner.PlatformRunnerTypeId]: Runner.PlatformRunnerTypeId,
25
+ start<I, O>() {
26
+ return Effect.sync(() => {
27
+ let currentPortId = 0
26
28
 
27
- const ports = new Map<number, readonly [MessagePort, Scope.CloseableScope]>()
28
- const send = (portId: number, message: O, transfer?: ReadonlyArray<unknown>) =>
29
- Effect.sync(() => {
30
- ;(ports.get(portId)?.[0] ?? self).postMessage([1, message], {
31
- transfer: transfer as any
29
+ const ports = new Map<number, readonly [MessagePort, Scope.CloseableScope]>()
30
+ const send = (portId: number, message: O, transfer?: ReadonlyArray<unknown>) =>
31
+ Effect.sync(() => {
32
+ ;(ports.get(portId)?.[0] ?? self).postMessage([1, message], {
33
+ transfer: transfer as any
34
+ })
32
35
  })
33
- })
34
36
 
35
- const run = <A, E, R>(handler: (portId: number, message: I) => Effect.Effect<A, E, R>) =>
36
- Effect.uninterruptibleMask((restore) =>
37
- Scope.make().pipe(
38
- Effect.bindTo("scope"),
39
- Effect.bind("fiberSet", ({ scope }) => FiberSet.make<any, WorkerError | E>().pipe(Scope.extend(scope))),
40
- Effect.bind("runFork", ({ fiberSet }) => FiberSet.runtime(fiberSet)<R>()),
41
- Effect.tap(({ fiberSet, runFork, scope }) => {
42
- function onMessage(portId: number) {
43
- return function(event: MessageEvent) {
44
- const message = (event as MessageEvent).data as Runner.BackingRunner.Message<I>
45
- if (message[0] === 0) {
46
- runFork(restore(handler(portId, message[1])))
47
- } else {
48
- const port = ports.get(portId)
49
- if (port) {
50
- Effect.runFork(Scope.close(port[1], Exit.void))
51
- }
52
- ports.delete(portId)
53
- if (ports.size === 0) {
54
- Deferred.unsafeDone(fiberSet.deferred, Exit.interrupt(FiberId.none))
37
+ const run = <A, E, R>(handler: (portId: number, message: I) => Effect.Effect<A, E, R>) =>
38
+ Effect.uninterruptibleMask((restore) =>
39
+ Scope.make().pipe(
40
+ Effect.bindTo("scope"),
41
+ Effect.bind("fiberSet", ({ scope }) => FiberSet.make<any, WorkerError | E>().pipe(Scope.extend(scope))),
42
+ Effect.bind("runFork", ({ fiberSet }) => FiberSet.runtime(fiberSet)<R>()),
43
+ Effect.tap(({ fiberSet, runFork, scope }) => {
44
+ function onMessage(portId: number) {
45
+ return function(event: MessageEvent) {
46
+ const message = (event as MessageEvent).data as Runner.BackingRunner.Message<I>
47
+ if (message[0] === 0) {
48
+ runFork(restore(handler(portId, message[1])))
49
+ } else {
50
+ const port = ports.get(portId)
51
+ if (port) {
52
+ Effect.runFork(Scope.close(port[1], Exit.void))
53
+ }
54
+ ports.delete(portId)
55
+ if (ports.size === 0) {
56
+ Deferred.unsafeDone(fiberSet.deferred, Exit.interrupt(FiberId.none))
57
+ }
55
58
  }
56
59
  }
57
60
  }
58
- }
59
- function onMessageError(error: MessageEvent) {
60
- Deferred.unsafeDone(
61
- fiberSet.deferred,
62
- new WorkerError({ reason: "decode", cause: error.data })
63
- )
64
- }
65
- function onError(error: any) {
66
- Deferred.unsafeDone(
67
- fiberSet.deferred,
68
- new WorkerError({ reason: "unknown", cause: error.data })
69
- )
70
- }
71
- function handlePort(port: MessagePort) {
72
- return Scope.fork(scope, ExecStrategy.sequential).pipe(
73
- Effect.flatMap((scope) => {
74
- const portId = currentPortId++
75
- ports.set(portId, [port, scope])
76
- const onMsg = onMessage(portId)
77
- port.addEventListener("message", onMsg)
78
- port.addEventListener("messageerror", onMessageError)
79
- if ("start" in port) {
80
- port.start()
81
- }
82
- port.postMessage([0])
83
- return Scope.addFinalizer(
84
- scope,
85
- Effect.sync(() => {
86
- port.removeEventListener("message", onMsg)
87
- port.removeEventListener("messageerror", onError)
88
- })
89
- )
90
- }),
91
- runFork
92
- )
93
- }
94
- self.addEventListener("error", onError)
95
- if ("onconnect" in self) {
96
- self.onconnect = function(event: MessageEvent) {
97
- const port = (event as MessageEvent).ports[0]
98
- handlePort(port)
61
+ function onMessageError(error: MessageEvent) {
62
+ Deferred.unsafeDone(
63
+ fiberSet.deferred,
64
+ new WorkerError({ reason: "decode", cause: error.data })
65
+ )
99
66
  }
100
- for (const port of cachedPorts) {
101
- handlePort(port)
67
+ function onError(error: any) {
68
+ Deferred.unsafeDone(
69
+ fiberSet.deferred,
70
+ new WorkerError({ reason: "unknown", cause: error.data })
71
+ )
102
72
  }
103
- cachedPorts.clear()
104
- } else {
105
- handlePort(self as any)
106
- }
107
- return Scope.addFinalizer(
108
- scope,
109
- Effect.sync(() => {
110
- self.removeEventListener("error", onError)
111
- if ("onconnect" in self) {
112
- self.onconnect = globalHandleConnect
73
+ function handlePort(port: MessagePort) {
74
+ return Scope.fork(scope, ExecStrategy.sequential).pipe(
75
+ Effect.flatMap((scope) => {
76
+ const portId = currentPortId++
77
+ ports.set(portId, [port, scope])
78
+ const onMsg = onMessage(portId)
79
+ port.addEventListener("message", onMsg)
80
+ port.addEventListener("messageerror", onMessageError)
81
+ if ("start" in port) {
82
+ port.start()
83
+ }
84
+ port.postMessage([0])
85
+ return Scope.addFinalizer(
86
+ scope,
87
+ Effect.sync(() => {
88
+ port.removeEventListener("message", onMsg)
89
+ port.removeEventListener("messageerror", onError)
90
+ })
91
+ )
92
+ }),
93
+ runFork
94
+ )
95
+ }
96
+ self.addEventListener("error", onError)
97
+ let prevOnConnect: unknown | undefined
98
+ if ("onconnect" in self) {
99
+ prevOnConnect = self.onconnect
100
+ self.onconnect = function(event: MessageEvent) {
101
+ const port = (event as MessageEvent).ports[0]
102
+ handlePort(port)
113
103
  }
114
- self.close()
115
- })
116
- )
117
- }),
118
- Effect.flatMap(({ fiberSet, scope }) =>
119
- restore(FiberSet.join(fiberSet) as Effect.Effect<never, E | WorkerError>).pipe(
120
- Effect.ensuring(Scope.close(scope, Exit.void))
104
+ for (const port of cachedPorts) {
105
+ handlePort(port)
106
+ }
107
+ cachedPorts.clear()
108
+ } else {
109
+ handlePort(self as any)
110
+ }
111
+ return Scope.addFinalizer(
112
+ scope,
113
+ Effect.sync(() => {
114
+ self.removeEventListener("error", onError)
115
+ if ("onconnect" in self) {
116
+ self.onconnect = prevOnConnect
117
+ }
118
+ self.close()
119
+ })
120
+ )
121
+ }),
122
+ Effect.flatMap(({ fiberSet, scope }) =>
123
+ restore(FiberSet.join(fiberSet) as Effect.Effect<never, E | WorkerError>).pipe(
124
+ Effect.ensuring(Scope.close(scope, Exit.void))
125
+ )
121
126
  )
122
127
  )
123
128
  )
124
- )
125
129
 
126
- return { run, send }
127
- })
128
- }
129
- })
130
+ return { run, send }
131
+ })
132
+ }
133
+ })
134
+
135
+ /** @internal */
136
+ export const layerMessagePort = (port: MessagePort | Window) => Layer.succeed(Runner.PlatformRunner, make(port))
130
137
 
131
138
  /** @internal */
132
- export const layer = Layer.succeed(Runner.PlatformRunner, platformRunnerImpl)
139
+ export const layer = Layer.succeed(Runner.PlatformRunner, make(self))