annotate src/Patch.ts @ 128:5a1a79f54779

big rewrite
author drewp@bigasterisk.com
date Fri, 05 May 2023 21:26:36 -0700
parents
children cf642d395be4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
128
5a1a79f54779 big rewrite
drewp@bigasterisk.com
parents:
diff changeset
1 import { Quad, Store } from "n3";
5a1a79f54779 big rewrite
drewp@bigasterisk.com
parents:
diff changeset
2 import { Stream } from "rdf-js";
5a1a79f54779 big rewrite
drewp@bigasterisk.com
parents:
diff changeset
3
5a1a79f54779 big rewrite
drewp@bigasterisk.com
parents:
diff changeset
4 export class Patch {
5a1a79f54779 big rewrite
drewp@bigasterisk.com
parents:
diff changeset
5 delQuads: Quad[] = [];
5a1a79f54779 big rewrite
drewp@bigasterisk.com
parents:
diff changeset
6 addQuads: Quad[] = [];
5a1a79f54779 big rewrite
drewp@bigasterisk.com
parents:
diff changeset
7 toString(): string {
5a1a79f54779 big rewrite
drewp@bigasterisk.com
parents:
diff changeset
8 return `Patch -${this.delQuads.length} +${this.addQuads.length}`;
5a1a79f54779 big rewrite
drewp@bigasterisk.com
parents:
diff changeset
9 }
5a1a79f54779 big rewrite
drewp@bigasterisk.com
parents:
diff changeset
10 constructor() { }
5a1a79f54779 big rewrite
drewp@bigasterisk.com
parents:
diff changeset
11
5a1a79f54779 big rewrite
drewp@bigasterisk.com
parents:
diff changeset
12 // fill `addQuads` with this stream
5a1a79f54779 big rewrite
drewp@bigasterisk.com
parents:
diff changeset
13 public async streamImport(quadStream: Stream): Promise<void> {
5a1a79f54779 big rewrite
drewp@bigasterisk.com
parents:
diff changeset
14 return new Promise((resolve, reject) => {
5a1a79f54779 big rewrite
drewp@bigasterisk.com
parents:
diff changeset
15 quadStream.on("data", (quad) => {
5a1a79f54779 big rewrite
drewp@bigasterisk.com
parents:
diff changeset
16 this.addQuads.push(quad);
5a1a79f54779 big rewrite
drewp@bigasterisk.com
parents:
diff changeset
17 });
5a1a79f54779 big rewrite
drewp@bigasterisk.com
parents:
diff changeset
18 quadStream.on("error", reject);
5a1a79f54779 big rewrite
drewp@bigasterisk.com
parents:
diff changeset
19 quadStream.on("end", resolve);
5a1a79f54779 big rewrite
drewp@bigasterisk.com
parents:
diff changeset
20 });
5a1a79f54779 big rewrite
drewp@bigasterisk.com
parents:
diff changeset
21 }
5a1a79f54779 big rewrite
drewp@bigasterisk.com
parents:
diff changeset
22
5a1a79f54779 big rewrite
drewp@bigasterisk.com
parents:
diff changeset
23 public applyToStore(s: Store) {
5a1a79f54779 big rewrite
drewp@bigasterisk.com
parents:
diff changeset
24 s.removeQuads(this.delQuads);
5a1a79f54779 big rewrite
drewp@bigasterisk.com
parents:
diff changeset
25 s.addQuads(this.addQuads);
5a1a79f54779 big rewrite
drewp@bigasterisk.com
parents:
diff changeset
26 }
5a1a79f54779 big rewrite
drewp@bigasterisk.com
parents:
diff changeset
27 }