cojson-storage-sqlite 0.7.10 → 0.7.14

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.
@@ -1,8 +1,8 @@
1
1
 
2
- > cojson-storage-sqlite@0.7.9 build /Users/anselm/jazz/jazz/packages/cojson-storage-sqlite
2
+ > cojson-storage-sqlite@0.7.14 build /Users/anselm/jazz/jazz/packages/cojson-storage-sqlite
3
3
  > npm run lint && rm -rf ./dist && tsc --sourceMap --outDir dist
4
4
 
5
5
 
6
- > cojson-storage-sqlite@0.7.9 lint
6
+ > cojson-storage-sqlite@0.7.14 lint
7
7
  > eslint . --ext ts,tsx
8
8
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # cojson-storage-sqlite
2
2
 
3
+ ## 0.7.14
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies
8
+ - cojson@0.7.14
9
+
10
+ ## 0.7.11
11
+
12
+ ### Patch Changes
13
+
14
+ - Updated dependencies
15
+ - cojson@0.7.11
16
+
3
17
  ## 0.7.10
4
18
 
5
19
  ### Patch Changes
package/dist/index.js CHANGED
@@ -1,25 +1,23 @@
1
1
  import { cojsonInternals, MAX_RECOMMENDED_TX_SIZE, } from "cojson";
2
2
  import Database from "better-sqlite3";
3
+ import { Effect, Queue, Stream } from "effect";
3
4
  export class SQLiteStorage {
4
5
  constructor(db, fromLocalNode, toLocalNode) {
5
6
  this.db = db;
6
- this.fromLocalNode = fromLocalNode.getReader();
7
- this.toLocalNode = toLocalNode.getWriter();
8
- void (async () => {
9
- let done = false;
10
- while (!done) {
11
- const result = await this.fromLocalNode.read();
12
- done = result.done;
13
- if (result.value) {
14
- await this.handleSyncMessage(result.value);
15
- }
16
- }
17
- })();
7
+ this.toLocalNode = toLocalNode;
8
+ void fromLocalNode.pipe(Stream.runForEach((msg) => Effect.tryPromise({
9
+ try: () => this.handleSyncMessage(msg),
10
+ catch: (e) => new Error(`Error reading from localNode, handling msg\n\n${JSON.stringify(msg, (k, v) => k === "changes" || k === "encryptedChanges"
11
+ ? v.slice(0, 20) + "..."
12
+ : v)}`, { cause: e }),
13
+ })), Effect.runPromise);
18
14
  }
19
15
  static async asPeer({ filename, trace, localNodeName = "local", }) {
20
- const [localNodeAsPeer, storageAsPeer] = cojsonInternals.connectedPeers(localNodeName, "storage", { peer1role: "client", peer2role: "server", trace });
21
- await SQLiteStorage.open(filename, localNodeAsPeer.incoming, localNodeAsPeer.outgoing);
22
- return { ...storageAsPeer, priority: 100 };
16
+ return Effect.runPromise(Effect.gen(function* () {
17
+ const [localNodeAsPeer, storageAsPeer] = yield* cojsonInternals.connectedPeers(localNodeName, "storage", { peer1role: "client", peer2role: "server", trace });
18
+ yield* Effect.promise(() => SQLiteStorage.open(filename, localNodeAsPeer.incoming, localNodeAsPeer.outgoing));
19
+ return { ...storageAsPeer, priority: 100 };
20
+ }));
23
21
  }
24
22
  static async open(filename, fromLocalNode, toLocalNode) {
25
23
  const db = Database(filename);
@@ -223,15 +221,15 @@ export class SQLiteStorage {
223
221
  for (const dependedOnCoValue of dependedOnCoValues) {
224
222
  await this.sendNewContentAfter({ id: dependedOnCoValue, header: false, sessions: {} }, asDependencyOf || theirKnown.id);
225
223
  }
226
- await this.toLocalNode.write({
224
+ await Effect.runPromise(Queue.offer(this.toLocalNode, {
227
225
  action: "known",
228
226
  ...ourKnown,
229
227
  asDependencyOf,
230
- });
228
+ }));
231
229
  const nonEmptyNewContentPieces = newContentPieces.filter((piece) => piece.header || Object.keys(piece.new).length > 0);
232
230
  // console.log(theirKnown.id, nonEmptyNewContentPieces);
233
231
  for (const piece of nonEmptyNewContentPieces) {
234
- await this.toLocalNode.write(piece);
232
+ await Effect.runPromise(Queue.offer(this.toLocalNode, piece));
235
233
  await new Promise((resolve) => setTimeout(resolve, 0));
236
234
  }
237
235
  }
@@ -246,13 +244,13 @@ export class SQLiteStorage {
246
244
  const header = msg.header;
247
245
  if (!header) {
248
246
  console.error("Expected to be sent header first");
249
- await this.toLocalNode.write({
247
+ await Effect.runPromise(Queue.offer(this.toLocalNode, {
250
248
  action: "known",
251
249
  id: msg.id,
252
250
  header: false,
253
251
  sessions: {},
254
252
  isCorrection: true,
255
- });
253
+ }));
256
254
  return;
257
255
  }
258
256
  storedCoValueRowID = this.db
@@ -330,11 +328,11 @@ export class SQLiteStorage {
330
328
  }
331
329
  })();
332
330
  if (invalidAssumptions) {
333
- await this.toLocalNode.write({
331
+ await Effect.runPromise(Queue.offer(this.toLocalNode, {
334
332
  action: "known",
335
333
  ...ourKnown,
336
334
  isCorrection: invalidAssumptions,
337
- });
335
+ }));
338
336
  }
339
337
  }
340
338
  handleKnown(msg) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "cojson-storage-sqlite",
3
3
  "type": "module",
4
- "version": "0.7.10",
4
+ "version": "0.7.14",
5
5
  "main": "dist/index.js",
6
6
  "types": "src/index.ts",
7
7
  "license": "MIT",
8
8
  "dependencies": {
9
9
  "better-sqlite3": "^8.5.2",
10
+ "effect": "^3.1.5",
10
11
  "typescript": "^5.1.6",
11
- "isomorphic-streams": "https://github.com/sgwilym/isomorphic-streams.git#aa9394781bfc92f8d7c981be7daf8af4b4cd4fae",
12
- "cojson": "0.7.10"
12
+ "cojson": "0.7.14"
13
13
  },
14
14
  "devDependencies": {
15
15
  "@types/better-sqlite3": "^7.6.4"
package/src/index.ts CHANGED
@@ -6,15 +6,12 @@ import {
6
6
  SessionID,
7
7
  MAX_RECOMMENDED_TX_SIZE,
8
8
  AccountID,
9
+ IncomingSyncStream,
10
+ OutgoingSyncQueue,
9
11
  } from "cojson";
10
- import {
11
- ReadableStream,
12
- WritableStream,
13
- ReadableStreamDefaultReader,
14
- WritableStreamDefaultWriter,
15
- } from "isomorphic-streams";
16
12
 
17
13
  import Database, { Database as DatabaseT } from "better-sqlite3";
14
+ import { Effect, Queue, Stream } from "effect";
18
15
 
19
16
  type CoValueRow = {
20
17
  id: CojsonInternalTypes.RawCoID;
@@ -46,30 +43,36 @@ type SignatureAfterRow = {
46
43
  };
47
44
 
48
45
  export class SQLiteStorage {
49
- fromLocalNode!: ReadableStreamDefaultReader<SyncMessage>;
50
- toLocalNode: WritableStreamDefaultWriter<SyncMessage>;
46
+ toLocalNode: OutgoingSyncQueue;
51
47
  db: DatabaseT;
52
48
 
53
49
  constructor(
54
50
  db: DatabaseT,
55
- fromLocalNode: ReadableStream<SyncMessage>,
56
- toLocalNode: WritableStream<SyncMessage>,
51
+ fromLocalNode: IncomingSyncStream,
52
+ toLocalNode: OutgoingSyncQueue,
57
53
  ) {
58
54
  this.db = db;
59
- this.fromLocalNode = fromLocalNode.getReader();
60
- this.toLocalNode = toLocalNode.getWriter();
61
-
62
- void (async () => {
63
- let done = false;
64
- while (!done) {
65
- const result = await this.fromLocalNode.read();
66
- done = result.done;
67
-
68
- if (result.value) {
69
- await this.handleSyncMessage(result.value);
70
- }
71
- }
72
- })();
55
+ this.toLocalNode = toLocalNode;
56
+
57
+ void fromLocalNode.pipe(
58
+ Stream.runForEach((msg) =>
59
+ Effect.tryPromise({
60
+ try: () => this.handleSyncMessage(msg),
61
+ catch: (e) =>
62
+ new Error(
63
+ `Error reading from localNode, handling msg\n\n${JSON.stringify(
64
+ msg,
65
+ (k, v) =>
66
+ k === "changes" || k === "encryptedChanges"
67
+ ? v.slice(0, 20) + "..."
68
+ : v,
69
+ )}`,
70
+ { cause: e },
71
+ ),
72
+ }),
73
+ ),
74
+ Effect.runPromise,
75
+ );
73
76
  }
74
77
 
75
78
  static async asPeer({
@@ -81,25 +84,32 @@ export class SQLiteStorage {
81
84
  trace?: boolean;
82
85
  localNodeName?: string;
83
86
  }): Promise<Peer> {
84
- const [localNodeAsPeer, storageAsPeer] = cojsonInternals.connectedPeers(
85
- localNodeName,
86
- "storage",
87
- { peer1role: "client", peer2role: "server", trace },
88
- );
89
-
90
- await SQLiteStorage.open(
91
- filename,
92
- localNodeAsPeer.incoming,
93
- localNodeAsPeer.outgoing,
87
+ return Effect.runPromise(
88
+ Effect.gen(function* () {
89
+ const [localNodeAsPeer, storageAsPeer] =
90
+ yield* cojsonInternals.connectedPeers(
91
+ localNodeName,
92
+ "storage",
93
+ { peer1role: "client", peer2role: "server", trace },
94
+ );
95
+
96
+ yield* Effect.promise(() =>
97
+ SQLiteStorage.open(
98
+ filename,
99
+ localNodeAsPeer.incoming,
100
+ localNodeAsPeer.outgoing,
101
+ ),
102
+ );
103
+
104
+ return { ...storageAsPeer, priority: 100 };
105
+ }),
94
106
  );
95
-
96
- return { ...storageAsPeer, priority: 100 };
97
107
  }
98
108
 
99
109
  static async open(
100
110
  filename: string,
101
- fromLocalNode: ReadableStream<SyncMessage>,
102
- toLocalNode: WritableStream<SyncMessage>,
111
+ fromLocalNode: IncomingSyncStream,
112
+ toLocalNode: OutgoingSyncQueue,
103
113
  ) {
104
114
  const db = Database(filename);
105
115
  db.pragma("journal_mode = WAL");
@@ -431,11 +441,13 @@ export class SQLiteStorage {
431
441
  );
432
442
  }
433
443
 
434
- await this.toLocalNode.write({
435
- action: "known",
436
- ...ourKnown,
437
- asDependencyOf,
438
- });
444
+ await Effect.runPromise(
445
+ Queue.offer(this.toLocalNode, {
446
+ action: "known",
447
+ ...ourKnown,
448
+ asDependencyOf,
449
+ }),
450
+ );
439
451
 
440
452
  const nonEmptyNewContentPieces = newContentPieces.filter(
441
453
  (piece) => piece.header || Object.keys(piece.new).length > 0,
@@ -444,7 +456,7 @@ export class SQLiteStorage {
444
456
  // console.log(theirKnown.id, nonEmptyNewContentPieces);
445
457
 
446
458
  for (const piece of nonEmptyNewContentPieces) {
447
- await this.toLocalNode.write(piece);
459
+ await Effect.runPromise(Queue.offer(this.toLocalNode, piece));
448
460
  await new Promise((resolve) => setTimeout(resolve, 0));
449
461
  }
450
462
  }
@@ -466,13 +478,15 @@ export class SQLiteStorage {
466
478
  const header = msg.header;
467
479
  if (!header) {
468
480
  console.error("Expected to be sent header first");
469
- await this.toLocalNode.write({
470
- action: "known",
471
- id: msg.id,
472
- header: false,
473
- sessions: {},
474
- isCorrection: true,
475
- });
481
+ await Effect.runPromise(
482
+ Queue.offer(this.toLocalNode, {
483
+ action: "known",
484
+ id: msg.id,
485
+ header: false,
486
+ sessions: {},
487
+ isCorrection: true,
488
+ }),
489
+ );
476
490
  return;
477
491
  }
478
492
 
@@ -604,11 +618,13 @@ export class SQLiteStorage {
604
618
  })();
605
619
 
606
620
  if (invalidAssumptions) {
607
- await this.toLocalNode.write({
608
- action: "known",
609
- ...ourKnown,
610
- isCorrection: invalidAssumptions,
611
- });
621
+ await Effect.runPromise(
622
+ Queue.offer(this.toLocalNode, {
623
+ action: "known",
624
+ ...ourKnown,
625
+ isCorrection: invalidAssumptions,
626
+ }),
627
+ );
612
628
  }
613
629
  }
614
630