@comunica/actor-rdf-serialize-shaclc
Version:
A shaclc rdf-serialize actor
53 lines • 1.89 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ActorRdfSerializeShaclc = void 0;
const bus_rdf_serialize_1 = require("@comunica/bus-rdf-serialize");
const arrayify_stream_1 = require("arrayify-stream");
const readable_stream_1 = require("readable-stream");
const shaclc_write_1 = require("shaclc-write");
/**
* A comunica SHACL Compact Syntax RDF Serialize Actor.
*/
class ActorRdfSerializeShaclc extends bus_rdf_serialize_1.ActorRdfSerializeFixedMediaTypes {
/**
* @param args -
* \ @defaultNested {{
* "text/shaclc": 1.0,
* "text/shaclc-ext": 0.5
* }} mediaTypePriorities
* \ @defaultNested {{
* "text/shaclc": "http://www.w3.org/ns/formats/Shaclc",
* "text/shaclc-ext": "http://www.w3.org/ns/formats/ShaclcExtended"
* }} mediaTypeFormats
*/
constructor(args) {
super(args);
}
async runHandle(action, mediaType) {
const data = new readable_stream_1.Readable();
data._read = () => {
// Do nothing
};
try {
const prefixes = {};
action.quadStream.on('prefix', (prefix, iri) => {
prefixes[prefix] = iri;
});
const { text } = await (0, shaclc_write_1.write)(await (0, arrayify_stream_1.default)(action.quadStream), { errorOnUnused: true, extendedSyntax: mediaType === 'text/shaclc-ext', prefixes });
data.push(text);
data.push(null);
}
catch (error) {
// Push the error into the stream
data._read = () => {
data.emit('error', error);
};
}
return {
data,
triples: true,
};
}
}
exports.ActorRdfSerializeShaclc = ActorRdfSerializeShaclc;
//# sourceMappingURL=ActorRdfSerializeShaclc.js.map