UNPKG

lincd

Version:

LINCD is a JavaScript library for building user interfaces with linked data (also known as 'structured data', or RDF)

67 lines 1.96 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.QuadArray = void 0; const NodeSet_js_1 = require("./NodeSet.js"); //TODO: test performance of QuadArray vs QuadSet and probably remove QuadArray class QuadArray extends Array { removeAll(alteration = false) { this.forEach((quad) => quad.remove(alteration)); } moveTo(graph, alteration = true) { let result = new QuadArray(); this.forEach((quad) => { result.push(quad.moveToGraph(graph, alteration)); }); return result; } makeExplicit() { this.forEach((quad) => quad.makeExplicit()); } getSubjects() { //return new NamedNodeSet(this.map(quad => quad.subject).values()); //that's short, but probably this is faster: var res = new NodeSet_js_1.NodeSet(); for (var quad of this) { res.add(quad.subject); } return res; } getPredicates() { var res = new NodeSet_js_1.NodeSet(); for (var quad of this) { res.add(quad.predicate); } return res; } getObjects() { var res = new NodeSet_js_1.NodeSet(); for (var quad of this) { res.add(quad.object); } return res; } map(callbackfn) { return super.map(callbackfn); } getExplicit() { return this.filter((quad) => !quad.implicit); } getImplicit() { return this.filter((quad) => quad.implicit); } turnOn() { this.forEach((quad) => quad.turnOn()); } turnOff() { this.forEach((quad) => quad.turnOff()); } toString() { //without this the toString() would print 3 URI's for each quad followed by a ',' which looks messy and unclear return this.join('\n'); } print() { console.log(this.toString()); } } exports.QuadArray = QuadArray; //# sourceMappingURL=QuadArray.js.map