@livestore/utils 0.0.55-dev.3 → 0.0.55

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 (51) hide show
  1. package/dist/.tsbuildinfo.json +1 -1
  2. package/dist/misc.d.ts +1 -0
  3. package/dist/misc.d.ts.map +1 -1
  4. package/dist/misc.js +10 -0
  5. package/dist/misc.js.map +1 -1
  6. package/package.json +2 -2
  7. package/src/misc.ts +13 -0
  8. package/dist/effect/browser-worker-tmp/BrowserWorker.d.ts +0 -21
  9. package/dist/effect/browser-worker-tmp/BrowserWorker.d.ts.map +0 -1
  10. package/dist/effect/browser-worker-tmp/BrowserWorker.js +0 -17
  11. package/dist/effect/browser-worker-tmp/BrowserWorker.js.map +0 -1
  12. package/dist/effect/browser-worker-tmp/BrowserWorkerRunner.d.ts +0 -12
  13. package/dist/effect/browser-worker-tmp/BrowserWorkerRunner.d.ts.map +0 -1
  14. package/dist/effect/browser-worker-tmp/BrowserWorkerRunner.js +0 -8
  15. package/dist/effect/browser-worker-tmp/BrowserWorkerRunner.js.map +0 -1
  16. package/dist/effect/browser-worker-tmp/internal/worker.d.ts +0 -9
  17. package/dist/effect/browser-worker-tmp/internal/worker.d.ts.map +0 -1
  18. package/dist/effect/browser-worker-tmp/internal/worker.js +0 -56
  19. package/dist/effect/browser-worker-tmp/internal/worker.js.map +0 -1
  20. package/dist/effect/browser-worker-tmp/internal/workerRunner.d.ts +0 -5
  21. package/dist/effect/browser-worker-tmp/internal/workerRunner.d.ts.map +0 -1
  22. package/dist/effect/browser-worker-tmp/internal/workerRunner.js +0 -100
  23. package/dist/effect/browser-worker-tmp/internal/workerRunner.js.map +0 -1
  24. package/dist/effect/browser-worker-tmp/port-platform-runner.d.ts +0 -5
  25. package/dist/effect/browser-worker-tmp/port-platform-runner.d.ts.map +0 -1
  26. package/dist/effect/browser-worker-tmp/port-platform-runner.js +0 -54
  27. package/dist/effect/browser-worker-tmp/port-platform-runner.js.map +0 -1
  28. package/dist/effect/worker-tmp/Worker.d.ts +0 -290
  29. package/dist/effect/worker-tmp/Worker.d.ts.map +0 -1
  30. package/dist/effect/worker-tmp/Worker.js +0 -62
  31. package/dist/effect/worker-tmp/Worker.js.map +0 -1
  32. package/dist/effect/worker-tmp/WorkerError.d.ts +0 -63
  33. package/dist/effect/worker-tmp/WorkerError.d.ts.map +0 -1
  34. package/dist/effect/worker-tmp/WorkerError.js +0 -52
  35. package/dist/effect/worker-tmp/WorkerError.js.map +0 -1
  36. package/dist/effect/worker-tmp/WorkerRunner.d.ts +0 -119
  37. package/dist/effect/worker-tmp/WorkerRunner.d.ts.map +0 -1
  38. package/dist/effect/worker-tmp/WorkerRunner.js +0 -32
  39. package/dist/effect/worker-tmp/WorkerRunner.js.map +0 -1
  40. package/dist/effect/worker-tmp/internal/worker.d.ts +0 -36
  41. package/dist/effect/worker-tmp/internal/worker.d.ts.map +0 -1
  42. package/dist/effect/worker-tmp/internal/worker.js +0 -244
  43. package/dist/effect/worker-tmp/internal/worker.js.map +0 -1
  44. package/dist/effect/worker-tmp/internal/workerError.d.ts +0 -4
  45. package/dist/effect/worker-tmp/internal/workerError.d.ts.map +0 -1
  46. package/dist/effect/worker-tmp/internal/workerError.js +0 -3
  47. package/dist/effect/worker-tmp/internal/workerError.js.map +0 -1
  48. package/dist/effect/worker-tmp/internal/workerRunner.d.ts +0 -21
  49. package/dist/effect/worker-tmp/internal/workerRunner.d.ts.map +0 -1
  50. package/dist/effect/worker-tmp/internal/workerRunner.js +0 -137
  51. package/dist/effect/worker-tmp/internal/workerRunner.js.map +0 -1
package/dist/misc.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export declare const objectToString: (error: any) => string;
2
+ export declare const tryAsFunctionAndNew: <TArg, TResult>(fnOrConstructor: ((arg: TArg) => TResult) | (new (arg: TArg) => TResult), arg: TArg) => TResult;
2
3
  //# sourceMappingURL=misc.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../src/misc.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,UAAW,GAAG,KAAG,MAW3C,CAAA"}
1
+ {"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../src/misc.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,UAAW,GAAG,KAAG,MAW3C,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,IAAI,EAAE,OAAO,mBAC9B,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,IAAI,KAAK,OAAO,CAAC,OACnE,IAAI,KACR,OAQF,CAAA"}
package/dist/misc.js CHANGED
@@ -10,4 +10,14 @@ export const objectToString = (error) => {
10
10
  return 'Error while printing error: ' + e;
11
11
  }
12
12
  };
13
+ export const tryAsFunctionAndNew = (fnOrConstructor, arg) => {
14
+ try {
15
+ // @ts-expect-error try out as constructor
16
+ return new fnOrConstructor(arg);
17
+ }
18
+ catch (e) {
19
+ // @ts-expect-error try out as function
20
+ return fnOrConstructor(arg);
21
+ }
22
+ };
13
23
  //# sourceMappingURL=misc.js.map
package/dist/misc.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"misc.js","sourceRoot":"","sources":["../src/misc.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAU,EAAU,EAAE;IACnD,MAAM,GAAG,GAAG,KAAK,EAAE,QAAQ,EAAE,CAAA;IAC7B,IAAI,GAAG,KAAK,iBAAiB;QAAE,OAAO,GAAG,CAAA;IAEzC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IACvC,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAElB,OAAO,8BAA8B,GAAG,CAAC,CAAA;IAC3C,CAAC;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"misc.js","sourceRoot":"","sources":["../src/misc.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAU,EAAU,EAAE;IACnD,MAAM,GAAG,GAAG,KAAK,EAAE,QAAQ,EAAE,CAAA;IAC7B,IAAI,GAAG,KAAK,iBAAiB;QAAE,OAAO,GAAG,CAAA;IAEzC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IACvC,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAElB,OAAO,8BAA8B,GAAG,CAAC,CAAA;IAC3C,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,eAAwE,EACxE,GAAS,EACA,EAAE;IACX,IAAI,CAAC;QACH,0CAA0C;QAC1C,OAAO,IAAI,eAAe,CAAC,GAAG,CAAC,CAAA;IACjC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,uCAAuC;QACvC,OAAO,eAAe,CAAC,GAAG,CAAC,CAAA;IAC7B,CAAC;AACH,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@livestore/utils",
3
- "version": "0.0.55-dev.3",
3
+ "version": "0.0.55",
4
4
  "sideEffects": false,
5
5
  "type": "module",
6
6
  "exports": {
@@ -35,7 +35,7 @@
35
35
  "date-fns": "^3.6.0",
36
36
  "otel-websocket-exporter": "^0.0.29",
37
37
  "pretty-bytes": "^6.1.1",
38
- "effect-db-schema": "0.0.55-dev.3"
38
+ "effect-db-schema": "0.0.55"
39
39
  },
40
40
  "peerDependencies": {
41
41
  "@effect/experimental": "^0.21.2",
package/src/misc.ts CHANGED
@@ -10,3 +10,16 @@ export const objectToString = (error: any): string => {
10
10
  return 'Error while printing error: ' + e
11
11
  }
12
12
  }
13
+
14
+ export const tryAsFunctionAndNew = <TArg, TResult>(
15
+ fnOrConstructor: ((arg: TArg) => TResult) | (new (arg: TArg) => TResult),
16
+ arg: TArg,
17
+ ): TResult => {
18
+ try {
19
+ // @ts-expect-error try out as constructor
20
+ return new fnOrConstructor(arg)
21
+ } catch (e) {
22
+ // @ts-expect-error try out as function
23
+ return fnOrConstructor(arg)
24
+ }
25
+ }
@@ -1,21 +0,0 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
- import type * as Layer from 'effect/Layer';
5
- import type * as Worker from '../worker-tmp/Worker.js';
6
- /**
7
- * @since 1.0.0
8
- * @category layers
9
- */
10
- export declare const layerManager: Layer.Layer<Worker.WorkerManager>;
11
- /**
12
- * @since 1.0.0
13
- * @category layers
14
- */
15
- export declare const layerWorker: Layer.Layer<Worker.PlatformWorker>;
16
- /**
17
- * @since 1.0.0
18
- * @category layers
19
- */
20
- export declare const layer: (spawn: (id: number) => Worker | SharedWorker | MessagePort) => Layer.Layer<Worker.WorkerManager | Worker.Spawner, never, never>;
21
- //# sourceMappingURL=BrowserWorker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BrowserWorker.d.ts","sourceRoot":"","sources":["../../../src/effect/browser-worker-tmp/BrowserWorker.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAE1C,OAAO,KAAK,KAAK,MAAM,MAAM,yBAAyB,CAAA;AAEtD;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAyB,CAAA;AAEpF;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAwB,CAAA;AAEnF;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,CAClB,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,GAAG,YAAY,GAAG,WAAW,KACvD,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAkB,CAAA"}
@@ -1,17 +0,0 @@
1
- import * as internal from './internal/worker.js';
2
- /**
3
- * @since 1.0.0
4
- * @category layers
5
- */
6
- export const layerManager = internal.layerManager;
7
- /**
8
- * @since 1.0.0
9
- * @category layers
10
- */
11
- export const layerWorker = internal.layerWorker;
12
- /**
13
- * @since 1.0.0
14
- * @category layers
15
- */
16
- export const layer = internal.layer;
17
- //# sourceMappingURL=BrowserWorker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BrowserWorker.js","sourceRoot":"","sources":["../../../src/effect/browser-worker-tmp/BrowserWorker.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAA;AAChD;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAsC,QAAQ,CAAC,YAAY,CAAA;AAEpF;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAuC,QAAQ,CAAC,WAAW,CAAA;AAEnF;;;GAGG;AACH,MAAM,CAAC,MAAM,KAAK,GAEsD,QAAQ,CAAC,KAAK,CAAA"}
@@ -1,12 +0,0 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
- import type * as Layer from 'effect/Layer';
5
- import type * as Runner from '../worker-tmp/WorkerRunner.js';
6
- /**
7
- * @since 1.0.0
8
- * @category layers
9
- */
10
- export declare const layer: Layer.Layer<Runner.PlatformRunner>;
11
- export { layerMessagePort } from './port-platform-runner.js';
12
- //# sourceMappingURL=BrowserWorkerRunner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BrowserWorkerRunner.d.ts","sourceRoot":"","sources":["../../../src/effect/browser-worker-tmp/BrowserWorkerRunner.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAE1C,OAAO,KAAK,KAAK,MAAM,MAAM,+BAA+B,CAAA;AAG5D;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAkB,CAAA;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA"}
@@ -1,8 +0,0 @@
1
- import * as internal from './internal/workerRunner.js';
2
- /**
3
- * @since 1.0.0
4
- * @category layers
5
- */
6
- export const layer = internal.layer;
7
- export { layerMessagePort } from './port-platform-runner.js';
8
- //# sourceMappingURL=BrowserWorkerRunner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BrowserWorkerRunner.js","sourceRoot":"","sources":["../../../src/effect/browser-worker-tmp/BrowserWorkerRunner.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,QAAQ,MAAM,4BAA4B,CAAA;AAEtD;;;GAGG;AACH,MAAM,CAAC,MAAM,KAAK,GAAuC,QAAQ,CAAC,KAAK,CAAA;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA"}
@@ -1,9 +0,0 @@
1
- import * as Layer from 'effect/Layer';
2
- import * as Worker from '../../worker-tmp/Worker.js';
3
- /** @internal */
4
- export declare const layerWorker: Layer.Layer<Worker.PlatformWorker, never, never>;
5
- /** @internal */
6
- export declare const layerManager: Layer.Layer<Worker.WorkerManager, never, never>;
7
- /** @internal */
8
- export declare const layer: (spawn: (id: number) => globalThis.Worker | globalThis.SharedWorker | MessagePort) => Layer.Layer<Worker.WorkerManager | Worker.Spawner, never, never>;
9
- //# sourceMappingURL=worker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../../src/effect/browser-worker-tmp/internal/worker.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAA;AAwDpD,gBAAgB;AAChB,eAAO,MAAM,WAAW,kDAA2D,CAAA;AAEnF,gBAAgB;AAChB,eAAO,MAAM,YAAY,iDAAkD,CAAA;AAE3E,gBAAgB;AAChB,eAAO,MAAM,KAAK,UAAW,CAAC,EAAE,EAAE,MAAM,KAAK,UAAU,CAAC,MAAM,GAAG,UAAU,CAAC,YAAY,GAAG,WAAW,qEAC/C,CAAA"}
@@ -1,56 +0,0 @@
1
- /* eslint-disable prefer-arrow/prefer-arrow-functions */
2
- import * as Deferred from 'effect/Deferred';
3
- import * as Effect from 'effect/Effect';
4
- import * as Layer from 'effect/Layer';
5
- import * as Queue from 'effect/Queue';
6
- import * as Worker from '../../worker-tmp/Worker.js';
7
- import { WorkerError } from '../../worker-tmp/WorkerError.js';
8
- const platformWorkerImpl = Worker.PlatformWorker.of({
9
- [Worker.PlatformWorkerTypeId]: Worker.PlatformWorkerTypeId,
10
- spawn(worker_) {
11
- return Effect.gen(function* (_) {
12
- const worker = worker_;
13
- let port;
14
- if ('port' in worker) {
15
- port = worker.port;
16
- }
17
- else {
18
- port = worker;
19
- }
20
- yield* _(Effect.addFinalizer(() => Effect.sync(() => port.postMessage([1]))));
21
- const queue = yield* _(Queue.unbounded());
22
- const latch = yield* Deferred.make();
23
- const fiber = yield* _(Effect.async((resume) => {
24
- function onMessage(event) {
25
- queue.unsafeOffer(event.data);
26
- }
27
- function onError(event) {
28
- resume(new WorkerError({ reason: 'unknown', error: event.error ?? event.message }));
29
- }
30
- port.addEventListener('message', onMessage);
31
- port.addEventListener('error', onError);
32
- Deferred.unsafeDone(latch, Effect.void);
33
- return Effect.sync(() => {
34
- port.removeEventListener('message', onMessage);
35
- port.removeEventListener('error', onError);
36
- });
37
- }), Effect.interruptible, Effect.forkScoped);
38
- yield* Deferred.await(latch);
39
- if ('start' in port) {
40
- port.start();
41
- }
42
- const send = (message, transfers) => Effect.try({
43
- try: () => port.postMessage([0, message], transfers),
44
- catch: (error) => new WorkerError({ reason: 'send', error }),
45
- });
46
- return { fiber, queue, send };
47
- });
48
- },
49
- });
50
- /** @internal */
51
- export const layerWorker = Layer.succeed(Worker.PlatformWorker, platformWorkerImpl);
52
- /** @internal */
53
- export const layerManager = Layer.provide(Worker.layerManager, layerWorker);
54
- /** @internal */
55
- export const layer = (spawn) => Layer.merge(layerManager, Worker.layerSpawner(spawn));
56
- //# sourceMappingURL=worker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../../src/effect/browser-worker-tmp/internal/worker.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import * as Layer from 'effect/Layer';
2
- import * as WorkerRunner from '../../worker-tmp/WorkerRunner.js';
3
- /** @internal */
4
- export declare const layer: Layer.Layer<WorkerRunner.PlatformRunner, never, never>;
5
- //# sourceMappingURL=workerRunner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workerRunner.d.ts","sourceRoot":"","sources":["../../../../src/effect/browser-worker-tmp/internal/workerRunner.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAKrC,OAAO,KAAK,YAAY,MAAM,kCAAkC,CAAA;AA0GhE,gBAAgB;AAChB,eAAO,MAAM,KAAK,wDAAiE,CAAA"}
@@ -1,100 +0,0 @@
1
- /// <reference lib="webworker" />
2
- /* eslint-disable prefer-arrow/prefer-arrow-functions */
3
- import * as Cause from 'effect/Cause';
4
- import * as Effect from 'effect/Effect';
5
- import * as FiberSet from 'effect/FiberSet';
6
- import { globalValue } from 'effect/GlobalValue';
7
- import * as Layer from 'effect/Layer';
8
- import * as Queue from 'effect/Queue';
9
- import * as Schedule from 'effect/Schedule';
10
- import { WorkerError } from '../../worker-tmp/WorkerError.js';
11
- import * as WorkerRunner from '../../worker-tmp/WorkerRunner.js';
12
- const cachedPorts = globalValue('@effect/platform-browser/Worker/cachedPorts', () => new Set());
13
- function globalHandleConnect(event) {
14
- cachedPorts.add(event.ports[0]);
15
- }
16
- if (typeof self !== 'undefined' && 'onconnect' in self) {
17
- // @ts-expect-error TODO
18
- self.addEventListener('connect', globalHandleConnect);
19
- }
20
- const platformRunnerImpl = WorkerRunner.PlatformRunner.of({
21
- [WorkerRunner.PlatformRunnerTypeId]: WorkerRunner.PlatformRunnerTypeId,
22
- start(shutdown) {
23
- return Effect.gen(function* () {
24
- let currentPortId = 0;
25
- yield* Effect.addFinalizer(() => Effect.sync(() => self.close()));
26
- const queue = yield* Queue.unbounded();
27
- const runFork = yield* FiberSet.makeRuntime();
28
- const ports = new Map();
29
- const send = (portId, message, transfer) => Effect.sync(() => {
30
- ports.get(portId)?.postMessage([1, message], {
31
- transfer: transfer,
32
- });
33
- });
34
- function handlePort(port, sharedWorker) {
35
- const portId = currentPortId++;
36
- ports.set(portId, port);
37
- Effect.async((resume) => {
38
- function onMessage(event) {
39
- const message = event.data;
40
- if (message[0] === 0) {
41
- queue.unsafeOffer([portId, message[1]]);
42
- }
43
- else if (sharedWorker && ports.size > 1) {
44
- resume(Effect.interrupt);
45
- }
46
- else {
47
- Effect.runFork(shutdown);
48
- }
49
- }
50
- function onMessageError(error) {
51
- resume(new WorkerError({ reason: 'decode', error: error.error ?? error.message }));
52
- }
53
- function onError(error) {
54
- resume(new WorkerError({ reason: 'unknown', error: error.error ?? error.message }));
55
- }
56
- port.addEventListener('message', onMessage);
57
- port.addEventListener('messageerror', onMessageError);
58
- port.addEventListener('error', onError);
59
- // ready
60
- if ('start' in port) {
61
- port.start();
62
- }
63
- port.postMessage([0]);
64
- return Effect.sync(() => {
65
- port.removeEventListener('message', onMessage);
66
- port.removeEventListener('messageerror', onMessageError);
67
- port.removeEventListener('error', onError);
68
- });
69
- }).pipe(Effect.tapErrorCause((cause) => (Cause.isInterruptedOnly(cause) ? Effect.void : Effect.logDebug(cause))), Effect.retry(Schedule.forever), Effect.annotateLogs({
70
- package: '@effect/platform-browser',
71
- module: 'WorkerRunner',
72
- }), Effect.ensuring(Effect.sync(() => {
73
- ports.delete(portId);
74
- })), Effect.interruptible, runFork);
75
- }
76
- if ('onconnect' in self) {
77
- // @ts-expect-error TODO
78
- self.addEventListener('connect', (event) => {
79
- const port = event.ports[0];
80
- handlePort(port, true);
81
- });
82
- yield* Effect.addFinalizer(() => Effect.sync(() => {
83
- ;
84
- self.addEventListener('connect', globalHandleConnect);
85
- }));
86
- for (const port of cachedPorts) {
87
- handlePort(port, true);
88
- }
89
- cachedPorts.clear();
90
- }
91
- else {
92
- handlePort(self, false);
93
- }
94
- return { queue, send };
95
- });
96
- },
97
- });
98
- /** @internal */
99
- export const layer = Layer.succeed(WorkerRunner.PlatformRunner, platformRunnerImpl);
100
- //# sourceMappingURL=workerRunner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workerRunner.js","sourceRoot":"","sources":["../../../../src/effect/browser-worker-tmp/internal/workerRunner.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import * as Layer from 'effect/Layer';
2
- import * as Runner from '../worker-tmp/WorkerRunner.js';
3
- /** @internal */
4
- export declare const layerMessagePort: (port: MessagePort) => Layer.Layer<Runner.PlatformRunner, never, never>;
5
- //# sourceMappingURL=port-platform-runner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"port-platform-runner.d.ts","sourceRoot":"","sources":["../../../src/effect/browser-worker-tmp/port-platform-runner.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAKrC,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAA;AAgEvD,gBAAgB;AAChB,eAAO,MAAM,gBAAgB,SAAU,WAAW,qDAAmE,CAAA"}
@@ -1,54 +0,0 @@
1
- import { Deferred } from 'effect';
2
- import * as Cause from 'effect/Cause';
3
- import * as Effect from 'effect/Effect';
4
- import * as Layer from 'effect/Layer';
5
- import * as Queue from 'effect/Queue';
6
- import * as Schedule from 'effect/Schedule';
7
- import { WorkerError } from '../worker-tmp/WorkerError.js';
8
- import * as Runner from '../worker-tmp/WorkerRunner.js';
9
- const platformRunnerImpl = (port) => Runner.PlatformRunner.of({
10
- [Runner.PlatformRunnerTypeId]: Runner.PlatformRunnerTypeId,
11
- start: (shutdown) => {
12
- return Effect.gen(function* () {
13
- const queue = yield* Queue.unbounded();
14
- const latch = yield* Deferred.make();
15
- yield* Effect.async((resume) => {
16
- const onMessage = (msg) => {
17
- const message = msg.data;
18
- if (message[0] === 0) {
19
- queue.unsafeOffer([0, message[1]]);
20
- }
21
- else {
22
- Effect.runFork(shutdown);
23
- }
24
- };
25
- const onError = (error) => {
26
- resume(new WorkerError({ reason: 'decode', error }));
27
- };
28
- port.addEventListener('message', onMessage);
29
- port.addEventListener('messageerror', onError);
30
- port.addEventListener('error', onError);
31
- Deferred.unsafeDone(latch, Effect.void);
32
- return Effect.sync(() => {
33
- port.removeEventListener('message', onMessage);
34
- port.removeEventListener('error', onError);
35
- });
36
- }).pipe(Effect.tapErrorCause((cause) => (Cause.isInterruptedOnly(cause) ? Effect.void : Effect.logDebug(cause))), Effect.retry(Schedule.forever), Effect.annotateLogs({
37
- package: '@livestore/utils/effect',
38
- module: 'PortPlatformRunner',
39
- }), Effect.interruptible, Effect.forkScoped);
40
- yield* Deferred.await(latch);
41
- port.start();
42
- const send = (_portId, message, transfers) => Effect.try({
43
- try: () => port.postMessage([1, message], transfers),
44
- catch: (error) => new WorkerError({ reason: 'send', error }),
45
- }).pipe(Effect.catchTag('WorkerError', Effect.orDie));
46
- // ready
47
- port.postMessage([0]);
48
- return { queue, send };
49
- });
50
- },
51
- });
52
- /** @internal */
53
- export const layerMessagePort = (port) => Layer.succeed(Runner.PlatformRunner, platformRunnerImpl(port));
54
- //# sourceMappingURL=port-platform-runner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"port-platform-runner.js","sourceRoot":"","sources":["../../../src/effect/browser-worker-tmp/port-platform-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AACjC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAA;AAEvD,MAAM,kBAAkB,GAAG,CAAC,IAAiB,EAAE,EAAE,CAC/C,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;IACvB,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC,oBAAoB;IAC1D,KAAK,EAAE,CAAO,QAA6B,EAAE,EAAE;QAC7C,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YACzB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,SAAS,EAAyC,CAAA;YAE7E,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAQ,CAAA;YAE1C,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAqB,CAAC,MAAM,EAAE,EAAE;gBACjD,MAAM,SAAS,GAAG,CAAC,GAAkD,EAAE,EAAE;oBACvE,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAA;oBACxB,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;wBACrB,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;oBACpC,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;oBAC1B,CAAC;gBACH,CAAC,CAAA;gBAED,MAAM,OAAO,GAAG,CAAC,KAAU,EAAE,EAAE;oBAC7B,MAAM,CAAC,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;gBACtD,CAAC,CAAA;gBAED,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;gBAC3C,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;gBAC9C,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;gBAEvC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;gBAEvC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;oBACtB,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAgB,CAAC,CAAA;oBACrD,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAc,CAAC,CAAA;gBACnD,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EACxG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAC9B,MAAM,CAAC,YAAY,CAAC;gBAClB,OAAO,EAAE,yBAAyB;gBAClC,MAAM,EAAE,oBAAoB;aAC7B,CAAC,EACF,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,UAAU,CAClB,CAAA;YAED,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YAE5B,IAAI,CAAC,KAAK,EAAE,CAAA;YAEZ,MAAM,IAAI,GAAG,CAAC,OAAe,EAAE,OAAU,EAAE,SAAkC,EAAE,EAAE,CAC/E,MAAM,CAAC,GAAG,CAAC;gBACT,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,SAAgB,CAAC;gBAC3D,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;aAC7D,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;YAEvD,QAAQ;YACR,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAErB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;QACxB,CAAC,CAAC,CAAA;IACJ,CAAC;CACF,CAAC,CAAA;AAEJ,gBAAgB;AAChB,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAiB,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAA"}