UNPKG

@comunica/actor-query-operation-path-nps

Version:

A path-nps query-operation actor

34 lines 1.76 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ActorQueryOperationPathNps = void 0; const actor_abstract_path_1 = require("@comunica/actor-abstract-path"); const context_entries_1 = require("@comunica/context-entries"); const utils_algebra_1 = require("@comunica/utils-algebra"); const utils_query_operation_1 = require("@comunica/utils-query-operation"); /** * A comunica Path Nps Query Operation Actor. */ class ActorQueryOperationPathNps extends actor_abstract_path_1.ActorAbstractPath { constructor(args) { super(args, utils_algebra_1.Algebra.Types.NPS); } async runOperation(operation, context) { const dataFactory = context.getSafe(context_entries_1.KeysInitQuery.dataFactory); const algebraFactory = new utils_algebra_1.AlgebraFactory(dataFactory); const predicate = operation.predicate; const blank = this.generateVariable(dataFactory, operation); const pattern = Object.assign(algebraFactory .createPattern(operation.subject, blank, operation.object, operation.graph), { metadata: predicate.metadata }); const output = (0, utils_query_operation_1.getSafeBindings)(await this.mediatorQueryOperation.mediate({ operation: pattern, context })); // Remove the generated blank nodes from the bindings const bindingsStream = output.bindingsStream .map(bindings => predicate.iris.some(iri => iri.equals(bindings.get(blank))) ? null : bindings.delete(blank)); return { type: 'bindings', bindingsStream, metadata: output.metadata, }; } } exports.ActorQueryOperationPathNps = ActorQueryOperationPathNps; //# sourceMappingURL=ActorQueryOperationPathNps.js.map