128
|
1 import { Quad, Store } from "n3";
|
|
2 import { Stream } from "rdf-js";
|
|
3
|
|
4 export class Patch {
|
|
5 delQuads: Quad[] = [];
|
|
6 addQuads: Quad[] = [];
|
|
7 toString(): string {
|
|
8 return `Patch -${this.delQuads.length} +${this.addQuads.length}`;
|
|
9 }
|
|
10 constructor() { }
|
|
11
|
|
12 // fill `addQuads` with this stream
|
|
13 public async streamImport(quadStream: Stream): Promise<void> {
|
|
14 return new Promise((resolve, reject) => {
|
|
15 quadStream.on("data", (quad) => {
|
|
16 this.addQuads.push(quad);
|
|
17 });
|
|
18 quadStream.on("error", reject);
|
|
19 quadStream.on("end", resolve);
|
|
20 });
|
|
21 }
|
|
22
|
|
23 public applyToStore(s: Store) {
|
|
24 s.removeQuads(this.delQuads);
|
|
25 s.addQuads(this.addQuads);
|
|
26 }
|
|
27 }
|