diff --git a/src/base.ts b/src/base.ts index b06befd..7e2a0cd 100644 --- a/src/base.ts +++ b/src/base.ts @@ -1,8 +1,45 @@ +/** + * 配置基类,下划线开头的变量不会被序列化 + */ export class ConfigBase { name: string = ''; version:string = '1.0.0'; - enable:boolean = true; [key: string]: any; + + /** + * 序列化json方法 + * @returns + */ + toJson(){ + return JSON.stringify(this,(k,v)=>k[0]=='_'?undefined:v); + } +} + +/** + * 加工处理器上下文 + */ +export abstract class ProcessorContext{ + /** + * 输入数据 + */ + public Input?:TInput; + /** + * 合并配置文件与临时输入参 + */ + public params?:TConfig; + /** + * 输出数据 + */ + public Ouput?:TOutput; +} + +/** + * 处理器基类 + */ +export abstract class ProcessorBase { + public readonly name: string = ''; + public readonly version: string = '1.0.0'; + public abstract exec(context:ProcessorContext):Promise|void } export interface FileOptions { diff --git a/src/processors.ts b/src/processors.ts index 5a02212..be842aa 100644 --- a/src/processors.ts +++ b/src/processors.ts @@ -1,7 +1,46 @@ -export abstract class ProcessorBase { - public readonly name: string = ''; - public readonly version: string = '1.0.0'; - public abstract exec(...args: any[]): any +import { ConfigBase, FileInfo, ProcessorBase } from "./base"; + +// todo: 类型参数待补完 + +export class BlockInfo{ + +} + +export class BlockProcessorConfig extends ConfigBase{ + } +/** + * 用户板材数据过滤与转换 + */ +export abstract class BlockProcessor extends ProcessorBase{ + +} + +export class LayoutInput { + +} +export class LayoutOutput{ + +} + +export class LyaoutProcessorConfig extends ConfigBase{ + +} + +export abstract class LayoutProcessor extends ProcessorBase{ + +} + +export class ExporterInput{ + +} + +export class ExporterProcessorConfig extends ConfigBase{ + +} + +export abstract class ExporterProcessor extends ProcessorBase{ + +} \ No newline at end of file