From 1954f8d612d93d490f6806cadaae2d042c401db9 Mon Sep 17 00:00:00 2001 From: xief <1789784602@qq.com> Date: Thu, 3 Jul 2025 10:26:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=A4=84=E7=90=86=E5=99=A8?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E7=9A=84=E5=AE=9A=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/base.ts | 39 ++++++++++++++++++++++++++++++++++++++- src/processors.ts | 47 +++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 81 insertions(+), 5 deletions(-) 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