Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
public async runOperation(pattern: Algebra.Service, context: ActionContext)
: Promise {
const endpoint: string = pattern.name.value;
// Adjust our context to only have the endpoint as source
context = context || ActionContext({});
let subContext: ActionContext = context.delete(KEY_CONTEXT_SOURCE).delete(KEY_CONTEXT_SOURCES);
const sourceType = this.forceSparqlEndpoint ? 'sparql' : 'auto';
subContext = subContext.set(KEY_CONTEXT_SOURCES,
AsyncReiterableArray.fromFixedData([{ type: sourceType, value: endpoint }]));
// Query the source
let output: IActorQueryOperationOutputBindings;
try {
output = ActorQueryOperation.getSafeBindings(
await this.mediatorQueryOperation.mediate({ operation: pattern.input, context: subContext }));
} catch (e) {
if (pattern.silent) {
// Emit a single empty binding
output = {
bindingsStream: new SingletonIterator(Bindings({})),
type: 'bindings',