|
1 | 1 | import { WorkerRunner } from "@effect/platform"; |
2 | 2 | import { BrowserWorkerRunner } from "@effect/platform-browser"; |
3 | | -import { RuntimeLib, Service, SyncWorker } from "@local/client-lib"; |
| 3 | +import { RuntimeLib, SyncWorker } from "@local/client-lib"; |
4 | 4 | import { Effect, Layer } from "effect"; |
5 | 5 |
|
6 | 6 | const WorkerLive = WorkerRunner.layerSerialized(SyncWorker.WorkerMessage, { |
7 | 7 | Bootstrap: (params) => |
8 | 8 | Effect.gen(function* () { |
9 | | - const { push, pull } = yield* Service.Sync; |
10 | | - |
11 | | - const manager = yield* Service.WorkspaceManager; |
12 | | - const temp = yield* Service.TempWorkspace; |
13 | | - |
14 | | - yield* Effect.log(`Running workspace '${params.workspaceId}'`); |
15 | | - |
16 | | - const workspace = yield* manager |
17 | | - .getById({ workspaceId: params.workspaceId }) |
18 | | - .pipe(Effect.flatMap(Effect.fromNullable)); |
19 | | - |
20 | | - const tempUpdates = yield* temp.getById({ |
21 | | - workspaceId: workspace.workspaceId, |
22 | | - }); |
23 | | - |
24 | | - if (tempUpdates !== undefined) { |
25 | | - yield* push({ |
26 | | - workspaceId: workspace.workspaceId, |
27 | | - snapshot: tempUpdates.snapshot, |
28 | | - snapshotId: tempUpdates.snapshotId, |
29 | | - }); |
30 | | - yield* Effect.log("Push sync completed"); |
31 | | - } else { |
32 | | - yield* pull({ workspaceId: workspace.workspaceId }); |
33 | | - yield* Effect.log("Pull sync completed"); |
34 | | - } |
35 | | - |
36 | | - return true; |
37 | | - }).pipe( |
38 | | - Effect.mapError((error) => `Bootstrap error: ${JSON.stringify(error)}`) |
39 | | - ), |
| 9 | + const worker = yield* SyncWorker.SyncWorker; |
| 10 | + return yield* worker.bootstrap(params); |
| 11 | + }), |
40 | 12 | }).pipe(Layer.provide(BrowserWorkerRunner.layer)); |
41 | 13 |
|
42 | 14 | RuntimeLib.runFork(WorkerRunner.launch(WorkerLive)); |
0 commit comments