@effect/platform-browser 4.0.0-beta.7 → 4.0.0-beta.70

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.
Files changed (91) hide show
  1. package/dist/BrowserCrypto.d.ts +23 -0
  2. package/dist/BrowserCrypto.d.ts.map +1 -0
  3. package/dist/BrowserCrypto.js +61 -0
  4. package/dist/BrowserCrypto.js.map +1 -0
  5. package/dist/BrowserHttpClient.d.ts +32 -16
  6. package/dist/BrowserHttpClient.d.ts.map +1 -1
  7. package/dist/BrowserHttpClient.js +66 -18
  8. package/dist/BrowserHttpClient.js.map +1 -1
  9. package/dist/BrowserKeyValueStore.d.ts +17 -14
  10. package/dist/BrowserKeyValueStore.d.ts.map +1 -1
  11. package/dist/BrowserKeyValueStore.js +130 -10
  12. package/dist/BrowserKeyValueStore.js.map +1 -1
  13. package/dist/BrowserPersistence.d.ts +21 -0
  14. package/dist/BrowserPersistence.d.ts.map +1 -0
  15. package/dist/BrowserPersistence.js +188 -0
  16. package/dist/BrowserPersistence.js.map +1 -0
  17. package/dist/BrowserRuntime.d.ts +31 -4
  18. package/dist/BrowserRuntime.d.ts.map +1 -1
  19. package/dist/BrowserRuntime.js +3 -1
  20. package/dist/BrowserRuntime.js.map +1 -1
  21. package/dist/BrowserSocket.d.ts +31 -6
  22. package/dist/BrowserSocket.d.ts.map +1 -1
  23. package/dist/BrowserSocket.js +31 -6
  24. package/dist/BrowserSocket.js.map +1 -1
  25. package/dist/BrowserStream.d.ts +33 -5
  26. package/dist/BrowserStream.d.ts.map +1 -1
  27. package/dist/BrowserStream.js +33 -5
  28. package/dist/BrowserStream.js.map +1 -1
  29. package/dist/BrowserWorker.d.ts +8 -4
  30. package/dist/BrowserWorker.d.ts.map +1 -1
  31. package/dist/BrowserWorker.js +30 -6
  32. package/dist/BrowserWorker.js.map +1 -1
  33. package/dist/BrowserWorkerRunner.d.ts +12 -6
  34. package/dist/BrowserWorkerRunner.d.ts.map +1 -1
  35. package/dist/BrowserWorkerRunner.js +34 -10
  36. package/dist/BrowserWorkerRunner.js.map +1 -1
  37. package/dist/Clipboard.d.ts +40 -13
  38. package/dist/Clipboard.d.ts.map +1 -1
  39. package/dist/Clipboard.js +33 -11
  40. package/dist/Clipboard.js.map +1 -1
  41. package/dist/Geolocation.d.ts +58 -24
  42. package/dist/Geolocation.d.ts.map +1 -1
  43. package/dist/Geolocation.js +46 -16
  44. package/dist/Geolocation.js.map +1 -1
  45. package/dist/IndexedDb.d.ts +77 -0
  46. package/dist/IndexedDb.d.ts.map +1 -0
  47. package/dist/IndexedDb.js +87 -0
  48. package/dist/IndexedDb.js.map +1 -0
  49. package/dist/IndexedDbDatabase.d.ts +150 -0
  50. package/dist/IndexedDbDatabase.d.ts.map +1 -0
  51. package/dist/IndexedDbDatabase.js +324 -0
  52. package/dist/IndexedDbDatabase.js.map +1 -0
  53. package/dist/IndexedDbQueryBuilder.d.ts +430 -0
  54. package/dist/IndexedDbQueryBuilder.d.ts.map +1 -0
  55. package/dist/IndexedDbQueryBuilder.js +927 -0
  56. package/dist/IndexedDbQueryBuilder.js.map +1 -0
  57. package/dist/IndexedDbTable.d.ts +153 -0
  58. package/dist/IndexedDbTable.d.ts.map +1 -0
  59. package/dist/IndexedDbTable.js +58 -0
  60. package/dist/IndexedDbTable.js.map +1 -0
  61. package/dist/IndexedDbVersion.d.ts +80 -0
  62. package/dist/IndexedDbVersion.d.ts.map +1 -0
  63. package/dist/IndexedDbVersion.js +25 -0
  64. package/dist/IndexedDbVersion.js.map +1 -0
  65. package/dist/Permissions.d.ts +45 -15
  66. package/dist/Permissions.d.ts.map +1 -1
  67. package/dist/Permissions.js +35 -10
  68. package/dist/Permissions.js.map +1 -1
  69. package/dist/index.d.ts +357 -10
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +357 -10
  72. package/dist/index.js.map +1 -1
  73. package/package.json +4 -3
  74. package/src/BrowserCrypto.ts +71 -0
  75. package/src/BrowserHttpClient.ts +76 -24
  76. package/src/BrowserKeyValueStore.ts +146 -12
  77. package/src/BrowserPersistence.ts +319 -0
  78. package/src/BrowserRuntime.ts +31 -4
  79. package/src/BrowserSocket.ts +31 -6
  80. package/src/BrowserStream.ts +33 -5
  81. package/src/BrowserWorker.ts +30 -6
  82. package/src/BrowserWorkerRunner.ts +34 -10
  83. package/src/Clipboard.ts +37 -13
  84. package/src/Geolocation.ts +54 -20
  85. package/src/IndexedDb.ts +115 -0
  86. package/src/IndexedDbDatabase.ts +645 -0
  87. package/src/IndexedDbQueryBuilder.ts +2040 -0
  88. package/src/IndexedDbTable.ts +247 -0
  89. package/src/IndexedDbVersion.ts +119 -0
  90. package/src/Permissions.ts +40 -13
  91. package/src/index.ts +364 -10
@@ -0,0 +1,188 @@
1
+ import * as Clock from "effect/Clock";
2
+ import * as Effect from "effect/Effect";
3
+ import * as Layer from "effect/Layer";
4
+ import * as Persistence from "effect/unstable/persistence/Persistence";
5
+ /**
6
+ * Creates a `BackingPersistence` layer backed by IndexedDB, optionally using the provided database name.
7
+ *
8
+ * @category layers
9
+ * @since 4.0.0
10
+ */
11
+ export const layerBackingIndexedDb = options => Layer.effect(Persistence.BackingPersistence)(Effect.gen(function* () {
12
+ const db = yield* Effect.acquireRelease(openDatabase(options?.database ?? defaultDatabase), db => Effect.sync(() => db.close())).pipe(Effect.orDie);
13
+ return Persistence.BackingPersistence.of({
14
+ make: Effect.fnUntraced(function* (storeId) {
15
+ const clock = yield* Clock.Clock;
16
+ return {
17
+ get: key => get(db, clock, storeId, key),
18
+ getMany: keys => getMany(db, clock, storeId, keys),
19
+ set: (key, value, ttl) => set(db, clock, storeId, key, value, ttl),
20
+ setMany: entries => setMany(db, clock, storeId, entries),
21
+ remove: key => remove(db, storeId, key),
22
+ clear: clear(db, storeId)
23
+ };
24
+ })
25
+ });
26
+ }));
27
+ const defaultDatabase = "effect_persistence";
28
+ const databaseVersion = 1;
29
+ const entriesStoreName = "entries";
30
+ const storeIdIndexName = "storeId";
31
+ /**
32
+ * Creates a `Persistence` layer backed by IndexedDB, optionally using the provided database name.
33
+ *
34
+ * @category layers
35
+ * @since 4.0.0
36
+ */
37
+ export const layerIndexedDb = options => Persistence.layer.pipe(Layer.provide(layerBackingIndexedDb(options)));
38
+ const openDatabase = database => Effect.gen(function* () {
39
+ const openRequest = yield* Effect.try({
40
+ try: () => globalThis.indexedDB.open(database, databaseVersion),
41
+ catch: cause => new Persistence.PersistenceError({
42
+ message: "Failed to open backing store database",
43
+ cause
44
+ })
45
+ });
46
+ openRequest.onupgradeneeded = () => {
47
+ const db = openRequest.result;
48
+ const entries = db.objectStoreNames.contains(entriesStoreName) ? openRequest.transaction?.objectStore(entriesStoreName) : db.createObjectStore(entriesStoreName, {
49
+ keyPath: ["storeId", "id"]
50
+ });
51
+ if (entries && !entries.indexNames.contains(storeIdIndexName)) {
52
+ entries.createIndex(storeIdIndexName, storeIdIndexName, {
53
+ unique: false
54
+ });
55
+ }
56
+ };
57
+ return yield* idbRequest("Failed to open backing store database", () => openRequest);
58
+ });
59
+ const isExpired = (row, now) => row.expires !== null && row.expires <= now;
60
+ const get = (db, clock, storeId, key) => withEntriesTransaction(db, "readwrite", `Failed to get key ${key} from backing store`, (entries, setResult, fail) => {
61
+ const now = clock.currentTimeMillisUnsafe();
62
+ const id = [storeId, key];
63
+ const request = entries.get(id);
64
+ request.onerror = () => fail(request.error);
65
+ request.onsuccess = () => {
66
+ const row = request.result;
67
+ if (!row || !isExpired(row, now)) {
68
+ setResult(row?.value);
69
+ return;
70
+ }
71
+ const deleteRequest = entries.delete(id);
72
+ deleteRequest.onerror = () => fail(deleteRequest.error);
73
+ deleteRequest.onsuccess = () => setResult(undefined);
74
+ };
75
+ });
76
+ const getMany = (db, clock, storeId, keys) => withEntriesTransaction(db, "readwrite", "Failed to getMany from backing store", (entries, setResult, fail) => {
77
+ const now = clock.currentTimeMillisUnsafe();
78
+ const results = new Array(keys.length);
79
+ setResult(results);
80
+ for (let i = 0; i < keys.length; i++) {
81
+ const key = keys[i];
82
+ const keyPath = [storeId, key];
83
+ const request = entries.get(keyPath);
84
+ request.onerror = () => fail(request.error);
85
+ request.onsuccess = () => {
86
+ const row = request.result;
87
+ if (!row) return;else if (!isExpired(row, now)) {
88
+ results[i] = row.value;
89
+ return;
90
+ }
91
+ const deleteRequest = entries.delete(keyPath);
92
+ deleteRequest.onerror = () => fail(deleteRequest.error);
93
+ };
94
+ }
95
+ });
96
+ const set = (db, clock, storeId, key, value, ttl) => withEntriesTransaction(db, "readwrite", `Failed to set key ${key} in backing store`, (entries, setResult, fail) => {
97
+ const request = entries.put({
98
+ storeId,
99
+ id: key,
100
+ value,
101
+ expires: Persistence.unsafeTtlToExpires(clock, ttl)
102
+ });
103
+ request.onerror = () => fail(request.error);
104
+ request.onsuccess = () => setResult(undefined);
105
+ });
106
+ const setMany = (db, clock, storeId, entries) => withEntriesTransaction(db, "readwrite", "Failed to setMany in backing store", (store, setResult, fail) => {
107
+ for (const [key, value, ttl] of entries) {
108
+ const request = store.put({
109
+ storeId,
110
+ id: key,
111
+ value,
112
+ expires: Persistence.unsafeTtlToExpires(clock, ttl)
113
+ });
114
+ request.onerror = () => fail(request.error);
115
+ request.onsuccess = () => setResult(undefined);
116
+ }
117
+ });
118
+ const remove = (db, storeId, key) => withEntriesTransaction(db, "readwrite", `Failed to remove key ${key} from backing store`, (entries, setResult, fail) => {
119
+ const request = entries.delete([storeId, key]);
120
+ request.onerror = () => fail(request.error);
121
+ request.onsuccess = () => setResult(undefined);
122
+ });
123
+ const clear = (db, storeId) => withEntriesTransaction(db, "readwrite", "Failed to clear backing store", (entries, setResult, fail) => {
124
+ const index = entries.index(storeIdIndexName);
125
+ const cursorRequest = index.openCursor(storeId);
126
+ cursorRequest.onerror = () => fail(cursorRequest.error);
127
+ cursorRequest.onsuccess = () => {
128
+ const cursor = cursorRequest.result;
129
+ if (!cursor) {
130
+ setResult(undefined);
131
+ return;
132
+ }
133
+ const deleteRequest = cursor.delete();
134
+ deleteRequest.onerror = () => fail(deleteRequest.error);
135
+ deleteRequest.onsuccess = () => cursor.continue();
136
+ };
137
+ });
138
+ const withEntriesTransaction = (db, mode, message, run) => Effect.callback(resume => {
139
+ const tx = db.transaction(entriesStoreName, mode);
140
+ const entries = tx.objectStore(entriesStoreName);
141
+ let result;
142
+ let setResult = false;
143
+ let done = false;
144
+ const fail = cause => {
145
+ done = true;
146
+ resume(Effect.fail(new Persistence.PersistenceError({
147
+ message,
148
+ cause
149
+ })));
150
+ };
151
+ tx.oncomplete = () => {
152
+ done = true;
153
+ if (setResult) resume(Effect.succeed(result));
154
+ };
155
+ tx.onerror = () => {
156
+ done = true;
157
+ fail(tx.error);
158
+ };
159
+ tx.onabort = () => {
160
+ done = true;
161
+ fail(tx.error);
162
+ };
163
+ run(entries, next => {
164
+ if (done) return resume(Effect.succeed(next));
165
+ setResult = true;
166
+ result = next;
167
+ }, fail);
168
+ return Effect.sync(() => {
169
+ tx.abort();
170
+ });
171
+ });
172
+ const idbRequest = (message, evaluate) => Effect.callback(resume => {
173
+ const request = evaluate();
174
+ const fail = cause => {
175
+ resume(Effect.fail(new Persistence.PersistenceError({
176
+ message,
177
+ cause
178
+ })));
179
+ };
180
+ if (request.readyState === "done") {
181
+ resume(Effect.succeed(request.result));
182
+ }
183
+ request.onsuccess = () => {
184
+ resume(Effect.succeed(request.result));
185
+ };
186
+ request.onerror = () => fail(request.error);
187
+ });
188
+ //# sourceMappingURL=BrowserPersistence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrowserPersistence.js","names":["Clock","Effect","Layer","Persistence","layerBackingIndexedDb","options","effect","BackingPersistence","gen","db","acquireRelease","openDatabase","database","defaultDatabase","sync","close","pipe","orDie","of","make","fnUntraced","storeId","clock","get","key","getMany","keys","set","value","ttl","setMany","entries","remove","clear","databaseVersion","entriesStoreName","storeIdIndexName","layerIndexedDb","layer","provide","openRequest","try","globalThis","indexedDB","open","catch","cause","PersistenceError","message","onupgradeneeded","result","objectStoreNames","contains","transaction","objectStore","createObjectStore","keyPath","indexNames","createIndex","unique","idbRequest","isExpired","row","now","expires","withEntriesTransaction","setResult","fail","currentTimeMillisUnsafe","id","request","onerror","error","onsuccess","deleteRequest","delete","undefined","results","Array","length","i","put","unsafeTtlToExpires","store","index","cursorRequest","openCursor","cursor","continue","mode","run","callback","resume","tx","done","oncomplete","succeed","onabort","next","abort","evaluate","readyState"],"sources":["../src/BrowserPersistence.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,24 +1,51 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Browser entry-point helpers for running Effect programs.
3
+ *
4
+ * This module exposes `runMain`, a browser-oriented main runner for launching
5
+ * an Effect as the root program of a page, single-page application, demo, or
6
+ * browser test harness. It delegates execution to the core Effect runtime while
7
+ * adding the browser lifecycle hook needed to interrupt the main fiber when the
8
+ * page receives `beforeunload`.
9
+ *
10
+ * `BrowserRuntime` does not provide application services by itself. Provide
11
+ * any required layers, such as browser HTTP, storage, worker, geolocation, or
12
+ * permission services, before passing the effect to `runMain`. Keep long-lived
13
+ * browser resources scoped so interruption can run their finalizers while the
14
+ * page is still active.
15
+ *
16
+ * Browser unload is more constrained than a process signal. Finalizers that
17
+ * need the network, timers, prompts, or long asynchronous work may not complete
18
+ * once navigation or tab close has started, and browsers do not expose a
19
+ * process exit status. Use `runMain` to connect the page lifecycle to Effect
20
+ * interruption, and use browser-specific persistence or delivery APIs for work
21
+ * that must survive page teardown.
22
+ *
23
+ * @since 4.0.0
3
24
  */
4
25
  import type * as Effect from "effect/Effect";
5
26
  import { type Teardown } from "effect/Runtime";
6
27
  /**
7
- * @since 1.0.0
28
+ * Runs an effect as the browser main program and interrupts its fiber when the page receives a `beforeunload` event.
29
+ *
8
30
  * @category Runtime
31
+ * @since 4.0.0
9
32
  */
10
33
  export declare const runMain: {
11
34
  /**
12
- * @since 1.0.0
35
+ * Runs an effect as the browser main program and interrupts its fiber when the page receives a `beforeunload` event.
36
+ *
13
37
  * @category Runtime
38
+ * @since 4.0.0
14
39
  */
15
40
  (options?: {
16
41
  readonly disableErrorReporting?: boolean | undefined;
17
42
  readonly teardown?: Teardown | undefined;
18
43
  }): <E, A>(effect: Effect.Effect<A, E>) => void;
19
44
  /**
20
- * @since 1.0.0
45
+ * Runs an effect as the browser main program and interrupts its fiber when the page receives a `beforeunload` event.
46
+ *
21
47
  * @category Runtime
48
+ * @since 4.0.0
22
49
  */
23
50
  <E, A>(effect: Effect.Effect<A, E>, options?: {
24
51
  readonly disableErrorReporting?: boolean | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserRuntime.d.ts","sourceRoot":"","sources":["../src/BrowserRuntime.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAe,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAE3D;;;GAGG;AACH,eAAO,MAAM,OAAO,EAAE;IACpB;;;OAGG;IACH,CACE,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QACpD,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;KACzC,GACA,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAA;IAC9C;;;OAGG;IACH,CAAC,CAAC,EAAE,CAAC,EACH,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAC3B,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QACpD,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;KACzC,GACA,IAAI,CAAA;CAKP,CAAA"}
1
+ {"version":3,"file":"BrowserRuntime.d.ts","sourceRoot":"","sources":["../src/BrowserRuntime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAe,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAE3D;;;;;GAKG;AACH,eAAO,MAAM,OAAO,EAAE;IACpB;;;;;OAKG;IACH,CACE,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QACpD,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;KACzC,GACA,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAA;IAC9C;;;;;OAKG;IACH,CAAC,CAAC,EAAE,CAAC,EACH,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAC3B,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QACpD,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;KACzC,GACA,IAAI,CAAA;CAKP,CAAA"}
@@ -1,7 +1,9 @@
1
1
  import { makeRunMain } from "effect/Runtime";
2
2
  /**
3
- * @since 1.0.0
3
+ * Runs an effect as the browser main program and interrupts its fiber when the page receives a `beforeunload` event.
4
+ *
4
5
  * @category Runtime
6
+ * @since 4.0.0
5
7
  */
6
8
  export const runMain = /*#__PURE__*/makeRunMain(({
7
9
  fiber
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserRuntime.js","names":["makeRunMain","runMain","fiber","globalThis","addEventListener","interruptUnsafe","id"],"sources":["../src/BrowserRuntime.ts"],"sourcesContent":[null],"mappings":"AAIA,SAASA,WAAW,QAAuB,gBAAgB;AAE3D;;;;AAIA,OAAO,MAAMC,OAAO,gBAsBhBD,WAAW,CAAC,CAAC;EAAEE;AAAK,CAAE,KAAI;EAC5BC,UAAU,CAACC,gBAAgB,CAAC,cAAc,EAAE,MAAK;IAC/CF,KAAK,CAACG,eAAe,CAACH,KAAK,CAACI,EAAE,CAAC;EACjC,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"BrowserRuntime.js","names":["makeRunMain","runMain","fiber","globalThis","addEventListener","interruptUnsafe","id"],"sources":["../src/BrowserRuntime.ts"],"sourcesContent":[null],"mappings":"AAyBA,SAASA,WAAW,QAAuB,gBAAgB;AAE3D;;;;;;AAMA,OAAO,MAAMC,OAAO,gBA0BhBD,WAAW,CAAC,CAAC;EAAEE;AAAK,CAAE,KAAI;EAC5BC,UAAU,CAACC,gBAAgB,CAAC,cAAc,EAAE,MAAK;IAC/CF,KAAK,CAACG,eAAe,CAACH,KAAK,CAACI,EAAE,CAAC;EACjC,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -1,20 +1,45 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Browser WebSocket layers for Effect sockets.
3
+ *
4
+ * This module provides the browser entry point for `Socket.Socket` values
5
+ * backed by the platform `WebSocket` implementation. Use `layerWebSocket` when
6
+ * client-side Effect programs, browser tests, RPC transports, or realtime UI
7
+ * features need a bidirectional socket connected to a WebSocket URL, and use
8
+ * `layerWebSocketConstructor` when lower-level socket APIs need access to the
9
+ * browser constructor service.
10
+ *
11
+ * Browser WebSocket rules still apply. Connections are created through
12
+ * `globalThis.WebSocket`, so URL schemes, subprotocol negotiation, mixed-content
13
+ * blocking, cookies, authentication, CORS-like origin checks, and extension
14
+ * negotiation are controlled by the browser and server rather than by Effect.
15
+ * Close events are translated into socket errors unless the provided
16
+ * `closeCodeIsError` predicate classifies the close code as clean, which is
17
+ * useful for protocols that use application-specific close codes.
18
+ *
19
+ * Messages are delivered as strings or binary `Uint8Array` values; browser
20
+ * `Blob` messages are read into bytes before they reach the socket handler.
21
+ * Outgoing data should already be serialized to a string or bytes, and protocol
22
+ * frames that represent an intentional close should be sent as `CloseEvent`
23
+ * values so the underlying `WebSocket.close` code and reason are preserved.
24
+ *
25
+ * @since 4.0.0
3
26
  */
4
27
  import * as Layer from "effect/Layer";
5
28
  import * as Socket from "effect/unstable/socket/Socket";
6
29
  /**
7
- * @since 1.0.0
8
- * @category Layers
30
+ * Creates a `Socket` layer connected to the given URL using the browser `WebSocket` constructor.
31
+ *
32
+ * @category layers
33
+ * @since 4.0.0
9
34
  */
10
35
  export declare const layerWebSocket: (url: string, options?: {
11
36
  readonly closeCodeIsError?: (code: number) => boolean;
12
37
  }) => Layer.Layer<Socket.Socket>;
13
38
  /**
14
- * A WebSocket constructor that uses `globalThis.WebSocket`.
39
+ * Layer that provides a `WebSocketConstructor` service backed by `globalThis.WebSocket`.
15
40
  *
16
- * @since 1.0.0
17
- * @category Layers
41
+ * @category layers
42
+ * @since 4.0.0
18
43
  */
19
44
  export declare const layerWebSocketConstructor: Layer.Layer<Socket.WebSocketConstructor>;
20
45
  //# sourceMappingURL=BrowserSocket.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserSocket.d.ts","sourceRoot":"","sources":["../src/BrowserSocket.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAA;AAEvD;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,KAAK,MAAM,EAAE,UAAU;IACpD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAA;CACtD,KAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAG1B,CAAA;AAEH;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,CACvC,CAAA"}
1
+ {"version":3,"file":"BrowserSocket.d.ts","sourceRoot":"","sources":["../src/BrowserSocket.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAA;AAEvD;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,KAAK,MAAM,EAAE,UAAU;IACpD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAA;CACtD,KAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAG1B,CAAA;AAEH;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,CACvC,CAAA"}
@@ -1,18 +1,43 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Browser WebSocket layers for Effect sockets.
3
+ *
4
+ * This module provides the browser entry point for `Socket.Socket` values
5
+ * backed by the platform `WebSocket` implementation. Use `layerWebSocket` when
6
+ * client-side Effect programs, browser tests, RPC transports, or realtime UI
7
+ * features need a bidirectional socket connected to a WebSocket URL, and use
8
+ * `layerWebSocketConstructor` when lower-level socket APIs need access to the
9
+ * browser constructor service.
10
+ *
11
+ * Browser WebSocket rules still apply. Connections are created through
12
+ * `globalThis.WebSocket`, so URL schemes, subprotocol negotiation, mixed-content
13
+ * blocking, cookies, authentication, CORS-like origin checks, and extension
14
+ * negotiation are controlled by the browser and server rather than by Effect.
15
+ * Close events are translated into socket errors unless the provided
16
+ * `closeCodeIsError` predicate classifies the close code as clean, which is
17
+ * useful for protocols that use application-specific close codes.
18
+ *
19
+ * Messages are delivered as strings or binary `Uint8Array` values; browser
20
+ * `Blob` messages are read into bytes before they reach the socket handler.
21
+ * Outgoing data should already be serialized to a string or bytes, and protocol
22
+ * frames that represent an intentional close should be sent as `CloseEvent`
23
+ * values so the underlying `WebSocket.close` code and reason are preserved.
24
+ *
25
+ * @since 4.0.0
3
26
  */
4
27
  import * as Layer from "effect/Layer";
5
28
  import * as Socket from "effect/unstable/socket/Socket";
6
29
  /**
7
- * @since 1.0.0
8
- * @category Layers
30
+ * Creates a `Socket` layer connected to the given URL using the browser `WebSocket` constructor.
31
+ *
32
+ * @category layers
33
+ * @since 4.0.0
9
34
  */
10
35
  export const layerWebSocket = (url, options) => Layer.effect(Socket.Socket, Socket.makeWebSocket(url, options)).pipe(Layer.provide(layerWebSocketConstructor));
11
36
  /**
12
- * A WebSocket constructor that uses `globalThis.WebSocket`.
37
+ * Layer that provides a `WebSocketConstructor` service backed by `globalThis.WebSocket`.
13
38
  *
14
- * @since 1.0.0
15
- * @category Layers
39
+ * @category layers
40
+ * @since 4.0.0
16
41
  */
17
42
  export const layerWebSocketConstructor = Socket.layerWebSocketConstructorGlobal;
18
43
  //# sourceMappingURL=BrowserSocket.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserSocket.js","names":["Layer","Socket","layerWebSocket","url","options","effect","makeWebSocket","pipe","provide","layerWebSocketConstructor","layerWebSocketConstructorGlobal"],"sources":["../src/BrowserSocket.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,+BAA+B;AAEvD;;;;AAIA,OAAO,MAAMC,cAAc,GAAGA,CAACC,GAAW,EAAEC,OAE3C,KACCJ,KAAK,CAACK,MAAM,CAACJ,MAAM,CAACA,MAAM,EAAEA,MAAM,CAACK,aAAa,CAACH,GAAG,EAAEC,OAAO,CAAC,CAAC,CAACG,IAAI,CAClEP,KAAK,CAACQ,OAAO,CAACC,yBAAyB,CAAC,CACzC;AAEH;;;;;;AAMA,OAAO,MAAMA,yBAAyB,GACpCR,MAAM,CAACS,+BAA+B","ignoreList":[]}
1
+ {"version":3,"file":"BrowserSocket.js","names":["Layer","Socket","layerWebSocket","url","options","effect","makeWebSocket","pipe","provide","layerWebSocketConstructor","layerWebSocketConstructorGlobal"],"sources":["../src/BrowserSocket.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,OAAO,KAAKA,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,+BAA+B;AAEvD;;;;;;AAMA,OAAO,MAAMC,cAAc,GAAGA,CAACC,GAAW,EAAEC,OAE3C,KACCJ,KAAK,CAACK,MAAM,CAACJ,MAAM,CAACA,MAAM,EAAEA,MAAM,CAACK,aAAa,CAACH,GAAG,EAAEC,OAAO,CAAC,CAAC,CAACG,IAAI,CAClEP,KAAK,CAACQ,OAAO,CAACC,yBAAyB,CAAC,CACzC;AAEH;;;;;;AAMA,OAAO,MAAMA,yBAAyB,GACpCR,MAAM,CAACS,+BAA+B","ignoreList":[]}
@@ -1,15 +1,40 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Browser `Stream` constructors for DOM event targets.
3
+ *
4
+ * This module provides typed helpers for turning `window.addEventListener` and
5
+ * `document.addEventListener` callbacks into Effect `Stream`s. They are useful
6
+ * for UI and runtime signals such as resize, visibility, keyboard, pointer,
7
+ * focus, online / offline, and other browser events that should be composed
8
+ * with Effect stream operators and finalized with the consuming fiber.
9
+ *
10
+ * Browser events are push-based `EventTarget` notifications, so they do not
11
+ * apply Web Streams backpressure to the browser event source. Events are
12
+ * buffered until downstream pulls them; the default buffer is unbounded, so
13
+ * high-frequency sources like scroll, pointermove, or mousemove should usually
14
+ * set `bufferSize` and use stream operators that sample, debounce, throttle, or
15
+ * drop work as appropriate.
16
+ *
17
+ * These helpers are for DOM events, not for adapting `ReadableStream` request
18
+ * or response bodies. Fetch bodies follow the Web Streams body rules, including
19
+ * single-consumer locking and disturbed bodies after reads, and should be
20
+ * handled with body-specific HTTP or Web Streams APIs instead. When using the
21
+ * browser `once` option, pair the stream with `Stream.take(1)` if a finite
22
+ * stream is required.
23
+ *
24
+ * @since 4.0.0
3
25
  */
4
26
  import * as Stream from "effect/Stream";
5
27
  /**
6
28
  * Creates a `Stream` from `window.addEventListener`.
7
29
  *
30
+ * **Details**
31
+ *
8
32
  * By default, the underlying buffer is unbounded in size. You can customize the
9
- * buffer size an object as the second argument with the `bufferSize` field.
33
+ * buffer size by passing an object as the second argument with the `bufferSize`
34
+ * field.
10
35
  *
11
- * @since 1.0.0
12
36
  * @category Streams
37
+ * @since 4.0.0
13
38
  */
14
39
  export declare const fromEventListenerWindow: <K extends keyof WindowEventMap>(type: K, options?: boolean | {
15
40
  readonly capture?: boolean;
@@ -20,11 +45,14 @@ export declare const fromEventListenerWindow: <K extends keyof WindowEventMap>(t
20
45
  /**
21
46
  * Creates a `Stream` from `document.addEventListener`.
22
47
  *
48
+ * **Details**
49
+ *
23
50
  * By default, the underlying buffer is unbounded in size. You can customize the
24
- * buffer size an object as the second argument with the `bufferSize` field.
51
+ * buffer size by passing an object as the second argument with the `bufferSize`
52
+ * field.
25
53
  *
26
- * @since 1.0.0
27
54
  * @category Streams
55
+ * @since 4.0.0
28
56
  */
29
57
  export declare const fromEventListenerDocument: <K extends keyof DocumentEventMap>(type: K, options?: boolean | {
30
58
  readonly capture?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserStream.d.ts","sourceRoot":"","sources":["../src/BrowserStream.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,GAAI,CAAC,SAAS,MAAM,cAAc,EACpE,MAAM,CAAC,EACP,UAAU,OAAO,GAAG;IAClB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACzC,GAAG,SAAS,KACZ,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAuE,CAAA;AAEvH;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,GAAI,CAAC,SAAS,MAAM,gBAAgB,EACxE,MAAM,CAAC,EACP,UAAU,OAAO,GAAG;IAClB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACzC,GAAG,SAAS,KACZ,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CACsB,CAAA"}
1
+ {"version":3,"file":"BrowserStream.d.ts","sourceRoot":"","sources":["../src/BrowserStream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,uBAAuB,GAAI,CAAC,SAAS,MAAM,cAAc,EACpE,MAAM,CAAC,EACP,UAAU,OAAO,GAAG;IAClB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACzC,GAAG,SAAS,KACZ,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAuE,CAAA;AAEvH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,yBAAyB,GAAI,CAAC,SAAS,MAAM,gBAAgB,EACxE,MAAM,CAAC,EACP,UAAU,OAAO,GAAG;IAClB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACzC,GAAG,SAAS,KACZ,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CACsB,CAAA"}
@@ -1,25 +1,53 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Browser `Stream` constructors for DOM event targets.
3
+ *
4
+ * This module provides typed helpers for turning `window.addEventListener` and
5
+ * `document.addEventListener` callbacks into Effect `Stream`s. They are useful
6
+ * for UI and runtime signals such as resize, visibility, keyboard, pointer,
7
+ * focus, online / offline, and other browser events that should be composed
8
+ * with Effect stream operators and finalized with the consuming fiber.
9
+ *
10
+ * Browser events are push-based `EventTarget` notifications, so they do not
11
+ * apply Web Streams backpressure to the browser event source. Events are
12
+ * buffered until downstream pulls them; the default buffer is unbounded, so
13
+ * high-frequency sources like scroll, pointermove, or mousemove should usually
14
+ * set `bufferSize` and use stream operators that sample, debounce, throttle, or
15
+ * drop work as appropriate.
16
+ *
17
+ * These helpers are for DOM events, not for adapting `ReadableStream` request
18
+ * or response bodies. Fetch bodies follow the Web Streams body rules, including
19
+ * single-consumer locking and disturbed bodies after reads, and should be
20
+ * handled with body-specific HTTP or Web Streams APIs instead. When using the
21
+ * browser `once` option, pair the stream with `Stream.take(1)` if a finite
22
+ * stream is required.
23
+ *
24
+ * @since 4.0.0
3
25
  */
4
26
  import * as Stream from "effect/Stream";
5
27
  /**
6
28
  * Creates a `Stream` from `window.addEventListener`.
7
29
  *
30
+ * **Details**
31
+ *
8
32
  * By default, the underlying buffer is unbounded in size. You can customize the
9
- * buffer size an object as the second argument with the `bufferSize` field.
33
+ * buffer size by passing an object as the second argument with the `bufferSize`
34
+ * field.
10
35
  *
11
- * @since 1.0.0
12
36
  * @category Streams
37
+ * @since 4.0.0
13
38
  */
14
39
  export const fromEventListenerWindow = (type, options) => Stream.fromEventListener(window, type, options);
15
40
  /**
16
41
  * Creates a `Stream` from `document.addEventListener`.
17
42
  *
43
+ * **Details**
44
+ *
18
45
  * By default, the underlying buffer is unbounded in size. You can customize the
19
- * buffer size an object as the second argument with the `bufferSize` field.
46
+ * buffer size by passing an object as the second argument with the `bufferSize`
47
+ * field.
20
48
  *
21
- * @since 1.0.0
22
49
  * @category Streams
50
+ * @since 4.0.0
23
51
  */
24
52
  export const fromEventListenerDocument = (type, options) => Stream.fromEventListener(document, type, options);
25
53
  //# sourceMappingURL=BrowserStream.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserStream.js","names":["Stream","fromEventListenerWindow","type","options","fromEventListener","window","fromEventListenerDocument","document"],"sources":["../src/BrowserStream.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAIA,OAAO,KAAKA,MAAM,MAAM,eAAe;AAEvC;;;;;;;;;AASA,OAAO,MAAMC,uBAAuB,GAAGA,CACrCC,IAAO,EACPC,OAKa,KACsCH,MAAM,CAACI,iBAAiB,CAAoBC,MAAM,EAAEH,IAAI,EAAEC,OAAO,CAAC;AAEvH;;;;;;;;;AASA,OAAO,MAAMG,yBAAyB,GAAGA,CACvCJ,IAAO,EACPC,OAKa,KAEbH,MAAM,CAACI,iBAAiB,CAAsBG,QAAQ,EAAEL,IAAI,EAAEC,OAAO,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"BrowserStream.js","names":["Stream","fromEventListenerWindow","type","options","fromEventListener","window","fromEventListenerDocument","document"],"sources":["../src/BrowserStream.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,OAAO,KAAKA,MAAM,MAAM,eAAe;AAEvC;;;;;;;;;;;;AAYA,OAAO,MAAMC,uBAAuB,GAAGA,CACrCC,IAAO,EACPC,OAKa,KACsCH,MAAM,CAACI,iBAAiB,CAAoBC,MAAM,EAAEH,IAAI,EAAEC,OAAO,CAAC;AAEvH;;;;;;;;;;;;AAYA,OAAO,MAAMG,yBAAyB,GAAGA,CACvCJ,IAAO,EACPC,OAKa,KAEbH,MAAM,CAACI,iBAAiB,CAAsBG,QAAQ,EAAEL,IAAI,EAAEC,OAAO,CAAC","ignoreList":[]}
@@ -1,13 +1,17 @@
1
1
  import * as Layer from "effect/Layer";
2
2
  import * as Worker from "effect/unstable/workers/Worker";
3
3
  /**
4
- * @since 1.0.0
5
- * @category Layers
4
+ * Creates browser worker layers by combining the default `WorkerPlatform` with a spawner for `Worker`, `SharedWorker`, or `MessagePort` instances.
5
+ *
6
+ * @category layers
7
+ * @since 4.0.0
6
8
  */
7
9
  export declare const layer: (spawn: (id: number) => Worker | SharedWorker | MessagePort) => Layer.Layer<Worker.WorkerPlatform | Worker.Spawner>;
8
10
  /**
9
- * @since 1.0.0
10
- * @category Layers
11
+ * Layer that provides the browser `WorkerPlatform` for `Worker`, `SharedWorker`, and `MessagePort` communication.
12
+ *
13
+ * @category layers
14
+ * @since 4.0.0
11
15
  */
12
16
  export declare const layerPlatform: Layer.Layer<Worker.WorkerPlatform>;
13
17
  //# sourceMappingURL=BrowserWorker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserWorker.d.ts","sourceRoot":"","sources":["../src/BrowserWorker.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,MAAM,MAAM,gCAAgC,CAAA;AAGxD;;;GAGG;AACH,eAAO,MAAM,KAAK,GAChB,OAAO,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,GAAG,YAAY,GAAG,WAAW,KACzD,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,OAAO,CAIlD,CAAA;AAEH;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CA2C5D,CAAA"}
1
+ {"version":3,"file":"BrowserWorker.d.ts","sourceRoot":"","sources":["../src/BrowserWorker.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,MAAM,MAAM,gCAAgC,CAAA;AAGxD;;;;;GAKG;AACH,eAAO,MAAM,KAAK,GAChB,OAAO,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,GAAG,YAAY,GAAG,WAAW,KACzD,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,OAAO,CAIlD,CAAA;AAEH;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CA2C5D,CAAA"}
@@ -1,5 +1,25 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Parent-side browser support for Effect workers.
3
+ *
4
+ * This module provides the `WorkerPlatform` used by browser applications that
5
+ * spawn or connect to `Worker`, `SharedWorker`, and `MessagePort` endpoints
6
+ * through Effect's worker protocol. Pair it with `BrowserWorkerRunner` in the
7
+ * worker entrypoint when building worker-backed RPC clients, moving CPU-bound
8
+ * work off the main thread, isolating browser-only services, or adapting an
9
+ * existing `MessageChannel` in tests and custom transports.
10
+ *
11
+ * Dedicated workers communicate through the worker object itself, while shared
12
+ * workers communicate through `worker.port`; raw `MessagePort` values are also
13
+ * accepted and are started when supported. Messages are posted with the browser
14
+ * structured-clone algorithm, so payloads must be cloneable by the target
15
+ * runtime. Transfer lists can avoid copying values such as `ArrayBuffer` or
16
+ * `MessagePort`, but transferring moves ownership away from the sender and
17
+ * invalid or mismatched transferables can fail the send. Scope finalization
18
+ * sends the worker close signal over the port; the application that created a
19
+ * dedicated `Worker` remains responsible for any broader lifecycle such as
20
+ * terminating it.
21
+ *
22
+ * @since 4.0.0
3
23
  */
4
24
  import * as Deferred from "effect/Deferred";
5
25
  import * as Effect from "effect/Effect";
@@ -8,13 +28,17 @@ import * as Scope from "effect/Scope";
8
28
  import * as Worker from "effect/unstable/workers/Worker";
9
29
  import { WorkerError, WorkerReceiveError } from "effect/unstable/workers/WorkerError";
10
30
  /**
11
- * @since 1.0.0
12
- * @category Layers
31
+ * Creates browser worker layers by combining the default `WorkerPlatform` with a spawner for `Worker`, `SharedWorker`, or `MessagePort` instances.
32
+ *
33
+ * @category layers
34
+ * @since 4.0.0
13
35
  */
14
36
  export const layer = spawn => Layer.merge(layerPlatform, Worker.layerSpawner(spawn));
15
37
  /**
16
- * @since 1.0.0
17
- * @category Layers
38
+ * Layer that provides the browser `WorkerPlatform` for `Worker`, `SharedWorker`, and `MessagePort` communication.
39
+ *
40
+ * @category layers
41
+ * @since 4.0.0
18
42
  */
19
43
  export const layerPlatform = /*#__PURE__*/Layer.succeed(Worker.WorkerPlatform)(/*#__PURE__*/Worker.makePlatform()({
20
44
  setup({
@@ -41,7 +65,7 @@ export const layerPlatform = /*#__PURE__*/Layer.succeed(Worker.WorkerPlatform)(/
41
65
  message: "An error event was emitter",
42
66
  cause: event.error ?? event.message
43
67
  })
44
- }).asEffect());
68
+ }));
45
69
  }
46
70
  port.addEventListener("message", onMessage);
47
71
  port.addEventListener("error", onError);
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserWorker.js","names":["Deferred","Effect","Layer","Scope","Worker","WorkerError","WorkerReceiveError","layer","spawn","merge","layerPlatform","layerSpawner","succeed","WorkerPlatform","makePlatform","setup","scope","worker","port","as","addFinalizer","sync","postMessage","listen","deferred","emit","onMessage","event","data","onError","doneUnsafe","reason","message","cause","error","asEffect","addEventListener","start","removeEventListener"],"sources":["../src/BrowserWorker.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,gCAAgC;AACxD,SAASC,WAAW,EAAEC,kBAAkB,QAAQ,qCAAqC;AAErF;;;;AAIA,OAAO,MAAMC,KAAK,GAChBC,KAA0D,IAE1DN,KAAK,CAACO,KAAK,CACTC,aAAa,EACbN,MAAM,CAACO,YAAY,CAACH,KAAK,CAAC,CAC3B;AAEH;;;;AAIA,OAAO,MAAME,aAAa,gBAAuCR,KAAK,CAACU,OAAO,CAACR,MAAM,CAACS,cAAc,CAAC,cACnGT,MAAM,CAACU,YAAY,EAA6D,CAAC;EAC/EC,KAAKA,CAAC;IAAEC,KAAK;IAAEC;EAAM,CAAE;IACrB,MAAMC,IAAI,GAAG,MAAM,IAAID,MAAM,GAAGA,MAAM,CAACC,IAAI,GAAGD,MAAM;IACpD,OAAOhB,MAAM,CAACkB,EAAE,CACdhB,KAAK,CAACiB,YAAY,CAChBJ,KAAK,EACLf,MAAM,CAACoB,IAAI,CAAC,MAAK;MACfH,IAAI,CAACI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC,CAAC,CACH,EACDJ,IAAI,CACL;EACH,CAAC;EACDK,MAAMA,CAAC;IAAEC,QAAQ;IAAEC,IAAI;IAAEP,IAAI;IAAEF;EAAK,CAAE;IACpC,SAASU,SAASA,CAACC,KAAmB;MACpCF,IAAI,CAACE,KAAK,CAACC,IAAI,CAAC;IAClB;IACA,SAASC,OAAOA,CAACF,KAAiB;MAChC3B,QAAQ,CAAC8B,UAAU,CACjBN,QAAQ,EACR,IAAInB,WAAW,CAAC;QACd0B,MAAM,EAAE,IAAIzB,kBAAkB,CAAC;UAC7B0B,OAAO,EAAE,4BAA4B;UACrCC,KAAK,EAAEN,KAAK,CAACO,KAAK,IAAIP,KAAK,CAACK;SAC7B;OACF,CAAC,CAACG,QAAQ,EAAE,CACd;IACH;IACAjB,IAAI,CAACkB,gBAAgB,CAAC,SAAS,EAAEV,SAAgB,CAAC;IAClDR,IAAI,CAACkB,gBAAgB,CAAC,OAAO,EAAEP,OAAc,CAAC;IAC9C,IAAI,OAAO,IAAIX,IAAI,EAAE;MACnBA,IAAI,CAACmB,KAAK,EAAE;IACd;IACA,OAAOlC,KAAK,CAACiB,YAAY,CACvBJ,KAAK,EACLf,MAAM,CAACoB,IAAI,CAAC,MAAK;MACfH,IAAI,CAACoB,mBAAmB,CAAC,SAAS,EAAEZ,SAAgB,CAAC;MACrDR,IAAI,CAACoB,mBAAmB,CAAC,OAAO,EAAET,OAAc,CAAC;IACnD,CAAC,CAAC,CACH;EACH;CACD,CAAC,CACH","ignoreList":[]}
1
+ {"version":3,"file":"BrowserWorker.js","names":["Deferred","Effect","Layer","Scope","Worker","WorkerError","WorkerReceiveError","layer","spawn","merge","layerPlatform","layerSpawner","succeed","WorkerPlatform","makePlatform","setup","scope","worker","port","as","addFinalizer","sync","postMessage","listen","deferred","emit","onMessage","event","data","onError","doneUnsafe","reason","message","cause","error","addEventListener","start","removeEventListener"],"sources":["../src/BrowserWorker.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;AAuBA,OAAO,KAAKA,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,gCAAgC;AACxD,SAASC,WAAW,EAAEC,kBAAkB,QAAQ,qCAAqC;AAErF;;;;;;AAMA,OAAO,MAAMC,KAAK,GAChBC,KAA0D,IAE1DN,KAAK,CAACO,KAAK,CACTC,aAAa,EACbN,MAAM,CAACO,YAAY,CAACH,KAAK,CAAC,CAC3B;AAEH;;;;;;AAMA,OAAO,MAAME,aAAa,gBAAuCR,KAAK,CAACU,OAAO,CAACR,MAAM,CAACS,cAAc,CAAC,cACnGT,MAAM,CAACU,YAAY,EAA6D,CAAC;EAC/EC,KAAKA,CAAC;IAAEC,KAAK;IAAEC;EAAM,CAAE;IACrB,MAAMC,IAAI,GAAG,MAAM,IAAID,MAAM,GAAGA,MAAM,CAACC,IAAI,GAAGD,MAAM;IACpD,OAAOhB,MAAM,CAACkB,EAAE,CACdhB,KAAK,CAACiB,YAAY,CAChBJ,KAAK,EACLf,MAAM,CAACoB,IAAI,CAAC,MAAK;MACfH,IAAI,CAACI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC,CAAC,CACH,EACDJ,IAAI,CACL;EACH,CAAC;EACDK,MAAMA,CAAC;IAAEC,QAAQ;IAAEC,IAAI;IAAEP,IAAI;IAAEF;EAAK,CAAE;IACpC,SAASU,SAASA,CAACC,KAAmB;MACpCF,IAAI,CAACE,KAAK,CAACC,IAAI,CAAC;IAClB;IACA,SAASC,OAAOA,CAACF,KAAiB;MAChC3B,QAAQ,CAAC8B,UAAU,CACjBN,QAAQ,EACR,IAAInB,WAAW,CAAC;QACd0B,MAAM,EAAE,IAAIzB,kBAAkB,CAAC;UAC7B0B,OAAO,EAAE,4BAA4B;UACrCC,KAAK,EAAEN,KAAK,CAACO,KAAK,IAAIP,KAAK,CAACK;SAC7B;OACF,CAAC,CACH;IACH;IACAd,IAAI,CAACiB,gBAAgB,CAAC,SAAS,EAAET,SAAgB,CAAC;IAClDR,IAAI,CAACiB,gBAAgB,CAAC,OAAO,EAAEN,OAAc,CAAC;IAC9C,IAAI,OAAO,IAAIX,IAAI,EAAE;MACnBA,IAAI,CAACkB,KAAK,EAAE;IACd;IACA,OAAOjC,KAAK,CAACiB,YAAY,CACvBJ,KAAK,EACLf,MAAM,CAACoB,IAAI,CAAC,MAAK;MACfH,IAAI,CAACmB,mBAAmB,CAAC,SAAS,EAAEX,SAAgB,CAAC;MACrDR,IAAI,CAACmB,mBAAmB,CAAC,OAAO,EAAER,OAAc,CAAC;IACnD,CAAC,CAAC,CACH;EACH;CACD,CAAC,CACH","ignoreList":[]}