rdf-dataset-fragmenter
Version:
Fragments an RDF dataset into multiple parts
30 lines • 1.3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.QuadTransformerSetIriExtension = void 0;
const rdf_data_factory_1 = require("rdf-data-factory");
const QuadTransformerTerms_1 = require("./QuadTransformerTerms");
const DF = new rdf_data_factory_1.DataFactory();
/**
* A quad transformer that enforces the configured extension on all named nodes.
* The given extension should not start with `.`.
*/
class QuadTransformerSetIriExtension extends QuadTransformerTerms_1.QuadTransformerTerms {
constructor(extension, iriPattern) {
super();
this.extension = extension;
this.iriPattern = iriPattern ? new RegExp(iriPattern, 'u') : undefined;
}
transformTerm(term) {
if (term.termType === 'NamedNode' && (!this.iriPattern || this.iriPattern.test(term.value))) {
let value = term.value;
const extensionMatch = /\.[a-z]*$/iu.exec(value);
if (extensionMatch) {
value = value.slice(0, value.length - extensionMatch[0].length);
}
return DF.namedNode(`${value}.${this.extension}`);
}
return term;
}
}
exports.QuadTransformerSetIriExtension = QuadTransformerSetIriExtension;
//# sourceMappingURL=QuadTransformerSetIriExtension.js.map