UNPKG

@comunica/actor-optimize-query-operation-query-source-skolemize

Version:

A query-source-skolemize optimize-query-operation actor

39 lines 2.02 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ActorOptimizeQueryOperationQuerySourceSkolemize = 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 QuerySourceSkolemized_1 = require("./QuerySourceSkolemized"); const utils_1 = require("./utils"); /** * A comunica Query Source Skolemize Optimize Query Operation Actor. */ class ActorOptimizeQueryOperationQuerySourceSkolemize extends bus_optimize_query_operation_1.ActorOptimizeQueryOperation { constructor(args) { super(args); } async test(_action) { return (0, core_1.passTestVoid)(); } async run(action) { let context = action.context; // Wrap sources in skolemized sources if (context.has(context_entries_1.KeysQueryOperation.querySources)) { // Determine map of source id's if (!context.has(context_entries_1.KeysQuerySourceIdentify.sourceIds)) { context = context.set(context_entries_1.KeysQuerySourceIdentify.sourceIds, new Map()); } const sourceIds = context.getSafe(context_entries_1.KeysQuerySourceIdentify.sourceIds); let sources = context.getSafe(context_entries_1.KeysQueryOperation.querySources); sources = sources.map(sourceWrapper => ({ source: new QuerySourceSkolemized_1.QuerySourceSkolemized(sourceWrapper.source, (0, utils_1.getSourceId)(sourceIds, sourceWrapper.source)), context: sourceWrapper.context, })); context = context.set(context_entries_1.KeysQueryOperation.querySources, sources); } return { context, operation: action.operation }; } } exports.ActorOptimizeQueryOperationQuerySourceSkolemize = ActorOptimizeQueryOperationQuerySourceSkolemize; //# sourceMappingURL=ActorOptimizeQueryOperationQuerySourceSkolemize.js.map