rdf-dataset-fragmenter
Version:
Fragments an RDF dataset into multiple parts
44 lines • 1.41 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.QuadTransformStream = void 0;
const node_stream_1 = require("node:stream");
/**
* A transform stream that runs quads through an array of transformers.
*/
class QuadTransformStream extends node_stream_1.Transform {
constructor(transformers) {
super({ objectMode: true });
this.transformers = transformers;
}
runTransformers(quad) {
let quads = [quad];
for (const transformer of this.transformers) {
const newQuads = [];
for (const quadIn of quads) {
for (const quadOut of transformer.transform(quadIn)) {
newQuads.push(quadOut);
}
}
quads = newQuads;
}
return quads;
}
// eslint-disable-next-line ts/naming-convention
_transform(quad, encoding, callback) {
for (const transformedQuad of this.runTransformers(quad)) {
this.push(transformedQuad);
}
callback();
}
// eslint-disable-next-line ts/naming-convention
_flush(callback) {
for (const transformer of this.transformers) {
if (transformer.end) {
transformer.end();
}
}
callback();
}
}
exports.QuadTransformStream = QuadTransformStream;
//# sourceMappingURL=QuadTransformStream.js.map