UNPKG

@jahed/sparql-engine

Version:

SPARQL query engine for servers and web browsers.

22 lines (19 loc) 721 B
// SPDX-License-Identifier: MIT import StageBuilder from "./stage-builder.ts"; import type { OptionalPattern } from "sparqljs"; import optional from "../../operators/optional.ts"; import type { Bindings } from "../../rdf/bindings.ts"; import ExecutionContext from "../context/execution-context.ts"; import type { PipelineStage } from "../pipeline/pipeline-engine.ts"; /** * A OptionalStageBuilder evaluates OPTIONAL clauses */ export default class OptionalStageBuilder extends StageBuilder { async execute( source: PipelineStage<Bindings>, node: OptionalPattern, context: ExecutionContext ): Promise<PipelineStage<Bindings>> { return optional(source, node.patterns, this.builder!, context); } }