import { ConfigBase } from "./models/config"; /** * 加工处理器上下文 */ export interface ProcessorContext { /** * 输入数据 */ input?: TInput; /** * 合并配置文件与临时输入参 */ params?: TConfig; /** * 输出数据 */ output?: TOutput; } /** * 处理器基类 */ export abstract class ProcessorBase { /** * 处理器名,推荐使用 kebab-case 命名规则 * @example handle-ability */ public abstract get name(): string; /** * 处理器版本,对处理器进行更新后记得修改版本号 * 格式使用 semver * @default 1.0.0 */ public abstract get version(): string; /** * 处理器执行方法 * @param context 处理器上下文 */ public abstract exec(context: ProcessorContext): Promise | void; }