cut-abstractions/src/base.ts

52 lines
1.1 KiB
TypeScript
Raw Normal View History

2025-07-03 10:26:03 +08:00
/**
* ,线
*/
2025-06-24 11:48:26 +08:00
export class ConfigBase {
name: string = '';
version:string = '1.0.0';
[key: string]: any;
2025-07-03 10:26:03 +08:00
/**
* json方法
* @returns
*/
toJson(){
return JSON.stringify(this,(k,v)=>k[0]=='_'?undefined:v);
}
}
/**
*
*/
export abstract class ProcessorContext<TInput,TOutput,TConfig extends ConfigBase>{
/**
*
*/
public Input?:TInput;
/**
*
*/
public params?:TConfig;
/**
*
*/
public Ouput?:TOutput;
}
/**
*
*/
export abstract class ProcessorBase<TInput,TOutput,TConfig extends ConfigBase> {
public readonly name: string = '';
public readonly version: string = '1.0.0';
public abstract exec(context:ProcessorContext<TInput,TOutput,TConfig>):Promise<void>|void
2025-06-24 11:48:26 +08:00
}
export interface FileOptions {
encode?: string;
addBOM?: boolean;
}
export interface FileInfo extends FileOptions {
name: string,
content: string | Blob | Uint8Array,
}