frontend/.pnpm-store/v3/files/b6/8ddb0b7aaadc85602c381b4bc66261a9cadc98cf650a0c1359190b2871441819fbccd5837f722d0a8fb413a9e0d33109c5c966ac2affd76f3fedae25f22284

41 lines
1.1 KiB
Plaintext

import { ID } from '../util/id';
import { EventEmitter } from '../util/eventEmitter';
export declare enum ProcessorType {
Initiator = 0,
ServerFilter = 1,
ServerSort = 2,
ServerLimit = 3,
Extractor = 4,
Transformer = 5,
Filter = 6,
Sort = 7,
Limit = 8,
}
interface PipelineProcessorEvents<T, P> {
propsUpdated: (processor: PipelineProcessor<T, P>) => void;
beforeProcess: (...args: any[]) => void;
afterProcess: (...args: any[]) => void;
}
export interface PipelineProcessorProps {}
export declare abstract class PipelineProcessor<
T,
P extends Partial<PipelineProcessorProps>
> extends EventEmitter<PipelineProcessorEvents<T, P>> {
readonly id: ID;
private readonly _props;
abstract get type(): ProcessorType;
protected abstract _process(...args: any[]): T | Promise<T>;
protected validateProps?(...args: any[]): void;
constructor(props?: Partial<P>);
/**
* process is used to call beforeProcess and afterProcess callbacks
* This function is just a wrapper that calls _process()
*
* @param args
*/
process(...args: any[]): T | Promise<T>;
setProps(props: Partial<P>): this;
get props(): P;
}
export {};