@comunica/actor-optimize-query-operation-join-bgp
Version:
A join-bgp optimize-query-operation actor
32 lines • 1.27 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ActorOptimizeQueryOperationJoinBgp = void 0;
const bus_optimize_query_operation_1 = require("@comunica/bus-optimize-query-operation");
const sparqlalgebrajs_1 = require("sparqlalgebrajs");
/**
* A comunica Join BGP Optimize Query Operation Actor.
*/
class ActorOptimizeQueryOperationJoinBgp extends bus_optimize_query_operation_1.ActorOptimizeQueryOperation {
async test(action) {
return true;
}
async run(action) {
const operation = sparqlalgebrajs_1.Util.mapOperation(action.operation, {
join(op, factory) {
if (op.input.every(subInput => subInput.type === 'bgp')) {
return {
recurse: false,
result: factory.createBgp(op.input.flatMap(subInput => subInput.patterns)),
};
}
return {
recurse: false,
result: op,
};
},
});
return { operation, context: action.context };
}
}
exports.ActorOptimizeQueryOperationJoinBgp = ActorOptimizeQueryOperationJoinBgp;
//# sourceMappingURL=ActorOptimizeQueryOperationJoinBgp.js.map