rdf-dataset-fragmenter
Version:
Fragments an RDF dataset into multiple parts
34 lines • 1.37 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Fragmenter = void 0;
const QuadTransformStream_1 = require("./transform/QuadTransformStream");
/**
* Fragments quads from a given source into a given sink.
*/
class Fragmenter {
constructor(options) {
this.quadSource = options.quadSource;
this.transformers = options.transformers;
this.fragmentationStrategy = options.fragmentationStrategy;
this.quadSink = options.quadSink;
}
static getTransformedQuadStream(quadSource, transformers) {
const quadStream = quadSource.getQuads();
if (transformers.length > 0) {
const transformedQuadStream = new QuadTransformStream_1.QuadTransformStream(transformers);
quadStream.on('error', (error) => transformedQuadStream.emit('error', error));
quadStream.pipe(transformedQuadStream);
return transformedQuadStream;
}
return quadStream;
}
/**
* Read quads from a given source, fragment it into the sink, and close the sink.
*/
async fragment() {
await this.fragmentationStrategy.fragment(Fragmenter.getTransformedQuadStream(this.quadSource, this.transformers ?? []), this.quadSink);
await this.quadSink.close();
}
}
exports.Fragmenter = Fragmenter;
//# sourceMappingURL=Fragmenter.js.map