shelving
Version:
Toolkit for using data in JavaScript.
14 lines (13 loc) • 736 B
TypeScript
import type { TreeElement } from "../util/element.js";
import { Extractor } from "./Extractor.js";
/**
* Base class for an extractor that wraps another extractor.
* - Subclasses delegate to `source` and (optionally) transform the input before or the output after.
* - Composes the same way `Through*Provider` chains do — chain multiple `ThroughExtractor`s to build up behaviour.
*/
export declare abstract class ThroughExtractor<I, O extends TreeElement = TreeElement> extends Extractor<I, O> {
readonly source: Extractor<I, O>;
constructor(source: Extractor<I, O>);
/** Default implementation forwards to `source.extract()`. Subclasses override to do work before or after. */
extract(input: I): O | Promise<O>;
}