UNPKG

@jahed/sparql-engine

Version:

SPARQL query engine for servers and web browsers.

41 lines 1.03 kB
// SPDX-License-Identifier: MIT import { createObserver, createSubscription } from "../../engine/pipeline/pipeline-engine.js"; export class Consumable { subscribe(observerOrNext) { const observer = createObserver(observerOrNext); this.execute().then(observer.complete, observer.error); return createSubscription(); } forEach(cb) { this.execute(); } pipe(fn) { return fn(this); } async *[Symbol.asyncIterator]() { await this.execute(); } } export class ErrorConsumable extends Consumable { _reason; constructor(reason) { super(); this._reason = new Error(reason); } execute() { return Promise.reject(this._reason); } } export class Consumer extends Consumable { _source; constructor(source) { super(); this._source = source; } async execute() { for await (const data of this._source) { this.onData(data); } } } //# sourceMappingURL=consumer.js.map