UNPKG

@comunica/actor-optimize-query-operation-join-bgp

Version:

A join-bgp optimize-query-operation actor

33 lines 1.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ActorOptimizeQueryOperationJoinBgp = void 0; const bus_optimize_query_operation_1 = require("@comunica/bus-optimize-query-operation"); const context_entries_1 = require("@comunica/context-entries"); const core_1 = require("@comunica/core"); const utils_algebra_1 = require("@comunica/utils-algebra"); /** * A comunica Join BGP Optimize Query Operation Actor. */ class ActorOptimizeQueryOperationJoinBgp extends bus_optimize_query_operation_1.ActorOptimizeQueryOperation { async test(_action) { return (0, core_1.passTestVoid)(); } async run(action) { const dataFactory = action.context.getSafe(context_entries_1.KeysInitQuery.dataFactory); const algebraFactory = new utils_algebra_1.AlgebraFactory(dataFactory); const operation = utils_algebra_1.algebraUtils.mapOperation(action.operation, { [utils_algebra_1.Algebra.Types.JOIN]: { preVisitor: () => ({ continue: false }), transform: (op) => { if (op.input.every(subInput => subInput.type === 'bgp')) { return algebraFactory.createBgp(op.input.flatMap(subInput => subInput.patterns)); } return op; }, }, }); return { operation, context: action.context }; } } exports.ActorOptimizeQueryOperationJoinBgp = ActorOptimizeQueryOperationJoinBgp; //# sourceMappingURL=ActorOptimizeQueryOperationJoinBgp.js.map