Skip to content

Commit d5e27a5

Browse files
refactoring
1 parent a4f8c13 commit d5e27a5

File tree

4 files changed

+15
-27
lines changed

4 files changed

+15
-27
lines changed

apps/client/src/routes/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ function HomeComponent() {
3939
))}
4040

4141
<div>
42-
<button type="button" onClick={() => joinWorkspace(undefined)}>
42+
<button type="button" onClick={joinWorkspace}>
4343
Create workspace
4444
</button>
4545
</div>

apps/client/src/workers/sync.ts

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
import { WorkerRunner } from "@effect/platform";
22
import { BrowserWorkerRunner } from "@effect/platform-browser";
3-
import type { LoroSchema } from "@local/schema";
43
import { Effect, Layer } from "effect";
5-
import { LoroDoc } from "loro-crdt";
64
import { RuntimeClient } from "../lib/runtime-client";
75
import { Sync } from "../lib/services/sync";
86
import { TempWorkspace } from "../lib/services/temp-workspace";
@@ -28,10 +26,6 @@ const WorkerLive = WorkerRunner.layerSerialized(WorkerMessage, {
2826
});
2927

3028
if (tempUpdates !== undefined) {
31-
const docI = new LoroDoc<LoroSchema>();
32-
docI.import(tempUpdates.snapshot);
33-
yield* Effect.log("Doc", docI.toJSON());
34-
3529
yield* push({
3630
workspaceId: workspace.workspaceId,
3731
snapshot: tempUpdates.snapshot,
@@ -44,7 +38,9 @@ const WorkerLive = WorkerRunner.layerSerialized(WorkerMessage, {
4438
}
4539

4640
return true;
47-
}).pipe(Effect.mapError(() => "Bootstrap error")),
41+
}).pipe(
42+
Effect.mapError((error) => `Bootstrap error: ${JSON.stringify(error)}`)
43+
),
4844
}).pipe(Layer.provide(BrowserWorkerRunner.layer));
4945

5046
RuntimeClient.runFork(WorkerRunner.launch(WorkerLive));

apps/server/src/middleware/version-check.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,7 @@ export const VersionCheckLive = Layer.effect(
2929

3030
yield* Effect.log("Checking doc", doc.toJSON());
3131

32-
const metadata = doc.getMap("metadata");
33-
const currentVersion = metadata.get("version");
32+
const currentVersion = doc.getMap("metadata").get("version");
3433

3534
yield* Effect.log("Current version", currentVersion);
3635

packages/schema/src/main.ts

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,14 @@ import { ParseResult, Schema } from "effect";
22
import { LoroDoc, LoroList, LoroMap } from "loro-crdt";
33
import { ActivitySchema, ActivityV1, type ActivityV2 } from "./schema";
44

5+
/** 👇 Versioning management */
6+
57
const Version = [1, 2, 3] as const;
68
export type Version = (typeof Version)[number];
7-
89
export const VERSION = 3 satisfies Version;
910

11+
/** 👆 Versioning management */
12+
1013
const AnyLoroDocSchema = Schema.instanceOf(LoroDoc);
1114

1215
export const Metadata = Schema.Struct({ version: Schema.Number });
@@ -25,28 +28,20 @@ export class SnapshotSchema extends Schema.Class<SnapshotSchema>(
2528
}) {
2629
static readonly EmptyDoc = () => {
2730
const doc = new LoroDoc<LoroSchema>();
28-
29-
const metadata = doc.getMap("metadata");
30-
metadata.set("version", VERSION);
31-
31+
doc.getMap("metadata").set("version", VERSION);
3232
doc.getList("activity");
33-
3433
return doc;
3534
};
3635
}
3736

3837
const migrations = {
3938
1: (doc) => {
40-
const metadata = doc.getMap("metadata");
41-
metadata.set("version", VERSION);
42-
39+
doc.getMap("metadata").set("version", VERSION);
4340
doc.getList("activity");
44-
4541
return doc;
4642
},
4743
2: (doc) => {
48-
const metadata = doc.getMap("metadata");
49-
metadata.set("version", 2);
44+
doc.getMap("metadata").set("version", 2);
5045

5146
const activity = doc.getList("activity");
5247
for (let i = 0; i < activity.length; i++) {
@@ -61,9 +56,8 @@ const migrations = {
6156

6257
return doc;
6358
},
64-
"3": (doc) => {
65-
const metadata = doc.getMap("metadata");
66-
metadata.set("version", 3);
59+
3: (doc) => {
60+
doc.getMap("metadata").set("version", 3);
6761

6862
const activity = doc.getList("activity");
6963
for (let i = 0; i < activity.length; i++) {
@@ -85,8 +79,7 @@ export const LoroDocMigration = AnyLoroDocSchema.pipe(
8579
decode: (from, _, ast) => {
8680
const doc = new LoroDoc();
8781
doc.import(from.export({ mode: "snapshot" }));
88-
const metadata = doc.getMap("metadata");
89-
const currentVersion = metadata.get("version");
82+
const currentVersion = doc.getMap("metadata").get("version");
9083

9184
if (typeof currentVersion === "number") {
9285
Version.forEach((version) => {

0 commit comments

Comments
 (0)