From f1700d60b51a94df6bc8275e31ad72986324d3d3 Mon Sep 17 00:00:00 2001 From: Daniel Steigerwald Date: Sat, 19 Aug 2023 14:14:19 +0200 Subject: [PATCH] Small refactoring --- packages/evolu/src/DbWorker.ts | 4 ++-- packages/evolu/src/DbWorker.worker.ts | 4 ++-- .../{DbWorkerWebLive.ts => DbWorkerLive.web.ts} | 2 +- packages/evolu/src/LoadingPromises.ts | 9 +++++---- packages/evolu/src/index.ts | 17 ++++++----------- 5 files changed, 16 insertions(+), 20 deletions(-) rename packages/evolu/src/{DbWorkerWebLive.ts => DbWorkerLive.web.ts} (92%) diff --git a/packages/evolu/src/DbWorker.ts b/packages/evolu/src/DbWorker.ts index 9237b984d..b80902b67 100644 --- a/packages/evolu/src/DbWorker.ts +++ b/packages/evolu/src/DbWorker.ts @@ -631,10 +631,10 @@ export const DbWorkerLive = Layer.effect( writer.releaseLock(); }; - const dbWorker = DbWorker.of({ + const dbWorker: DbWorker = { postMessage, onMessage: Function.constVoid, - }); + }; return dbWorker; }), diff --git a/packages/evolu/src/DbWorker.worker.ts b/packages/evolu/src/DbWorker.worker.ts index 1242d5c5f..924915045 100644 --- a/packages/evolu/src/DbWorker.worker.ts +++ b/packages/evolu/src/DbWorker.worker.ts @@ -1,9 +1,9 @@ import { Effect } from "effect"; import { DbWorker, DbWorkerInput } from "./DbWorker.js"; -import { DbWorkerWebLive } from "./DbWorkerWebLive.js"; +import { dbWorkerLive } from "./DbWorkerLive.web.js"; const dbWorker = DbWorker.pipe( - Effect.provideLayer(DbWorkerWebLive), + Effect.provideLayer(dbWorkerLive), Effect.runSync, ); diff --git a/packages/evolu/src/DbWorkerWebLive.ts b/packages/evolu/src/DbWorkerLive.web.ts similarity index 92% rename from packages/evolu/src/DbWorkerWebLive.ts rename to packages/evolu/src/DbWorkerLive.web.ts index 12212adcc..fec4a7027 100644 --- a/packages/evolu/src/DbWorkerWebLive.ts +++ b/packages/evolu/src/DbWorkerLive.web.ts @@ -11,7 +11,7 @@ import { SqliteLive } from "./SqliteLive.web.js"; import { SyncWorkerLive } from "./SyncWorkerLive.web.js"; // It's a separate file because it's imported dynamically or by WebWorker. -export const DbWorkerWebLive = Layer.mergeAll( +export const dbWorkerLive = Layer.mergeAll( SqliteLive, Bip39Live, Layer.merge(HmacLive, Sha512Live).pipe(Layer.provide(Slip21Live)), diff --git a/packages/evolu/src/LoadingPromises.ts b/packages/evolu/src/LoadingPromises.ts index 7582bb9dd..1c6124866 100644 --- a/packages/evolu/src/LoadingPromises.ts +++ b/packages/evolu/src/LoadingPromises.ts @@ -52,7 +52,8 @@ const releasePromises: LoadingPromises["releasePromises"] = (ignoreQueries) => { }); }; -export const LoadingPromisesLive = Layer.succeed( - LoadingPromises, - LoadingPromises.of({ getPromise, resolvePromise, releasePromises }), -); +export const LoadingPromisesLive = Layer.succeed(LoadingPromises, { + getPromise, + resolvePromise, + releasePromises, +}); diff --git a/packages/evolu/src/index.ts b/packages/evolu/src/index.ts index a777fbda8..53c5b050b 100644 --- a/packages/evolu/src/index.ts +++ b/packages/evolu/src/index.ts @@ -19,7 +19,7 @@ import { SubscribedQueriesLive } from "./SubscribedQueries.js"; import { TimeLive } from "./Timestamp.js"; export * from "./exports.js"; -const NoOpServerDbWorker = Effect.sync(() => +const NoOpDbWorker = Effect.sync(() => DbWorker.of({ postMessage: Function.constVoid, onMessage: Function.constVoid, @@ -30,26 +30,23 @@ const OpfsDbWorker = Effect.sync(() => { const worker = new Worker(new URL("DbWorker.worker.js", import.meta.url), { type: "module", }); - worker.onmessage = (e: MessageEvent): void => { dbWorker.onMessage(e.data); }; - const dbWorker: DbWorker = { postMessage: (input) => { worker.postMessage(input); }, onMessage: Function.constVoid, }; - return dbWorker; }); const LocalStorageDbWorker = Effect.sync(() => { - const promise = Effect.promise(() => import("./DbWorkerWebLive.js")).pipe( + const promise = Effect.promise(() => import("./DbWorkerLive.web.js")).pipe( Effect.map((a) => { const importedDbWorker = DbWorker.pipe( - Effect.provideLayer(a.DbWorkerWebLive), + Effect.provideLayer(a.dbWorkerLive), Effect.runSync, ); importedDbWorker.onMessage = dbWorker.onMessage; @@ -57,16 +54,14 @@ const LocalStorageDbWorker = Effect.sync(() => { }), Effect.runPromise, ); - - const dbWorker = DbWorker.of({ + const dbWorker: DbWorker = { postMessage: (input) => { void promise.then((postMessage) => { postMessage(input); }); }, onMessage: Function.constVoid, - }); - + }; return dbWorker; }); @@ -76,7 +71,7 @@ const DbWorkerLive = Layer.effect( const platform = yield* _(Platform); return yield* _( platform.name === "server" - ? NoOpServerDbWorker + ? NoOpDbWorker : platform.name === "web-with-opfs" ? OpfsDbWorker : LocalStorageDbWorker,