UNPKG

rdf-dataset-fragmenter

Version:
30 lines 1.3 kB
"use strict"; 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