Skip to content

Commit

Permalink
Small refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
steida committed Aug 19, 2023
1 parent 34088e8 commit f1700d6
Show file tree
Hide file tree
Showing 5 changed files with 16 additions and 20 deletions.
4 changes: 2 additions & 2 deletions packages/evolu/src/DbWorker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -631,10 +631,10 @@ export const DbWorkerLive = Layer.effect(
writer.releaseLock();
};

const dbWorker = DbWorker.of({
const dbWorker: DbWorker = {
postMessage,
onMessage: Function.constVoid,
});
};

return dbWorker;
}),
Expand Down
4 changes: 2 additions & 2 deletions packages/evolu/src/DbWorker.worker.ts
Original file line number Diff line number Diff line change
@@ -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,
);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)),
Expand Down
9 changes: 5 additions & 4 deletions packages/evolu/src/LoadingPromises.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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,
});
17 changes: 6 additions & 11 deletions packages/evolu/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -30,43 +30,38 @@ const OpfsDbWorker = Effect.sync(() => {
const worker = new Worker(new URL("DbWorker.worker.js", import.meta.url), {
type: "module",
});

worker.onmessage = (e: MessageEvent<DbWorkerOutput>): 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;
return importedDbWorker.postMessage;
}),
Effect.runPromise,
);

const dbWorker = DbWorker.of({
const dbWorker: DbWorker = {
postMessage: (input) => {
void promise.then((postMessage) => {
postMessage(input);
});
},
onMessage: Function.constVoid,
});

};
return dbWorker;
});

Expand All @@ -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,
Expand Down

1 comment on commit f1700d6

@vercel
Copy link

@vercel vercel bot commented on f1700d6 Aug 19, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Successfully deployed to the following URLs:

evolu – ./

evolu.vercel.app
www.evolu.dev
evolu-evolu.vercel.app
evolu-git-main-evolu.vercel.app
evolu.dev

Please sign in to comment.