@jahed/sparql-engine
Version:
SPARQL query engine for servers and web browsers.
22 lines (19 loc) • 721 B
text/typescript
// 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);
}
}