# Cut Abstractions 这是一个用于MES新版生产的抽象库,提供了一套可扩展的处理器和解析器,用于处理各种切割相关的指令和数据。 ## 核心概念 - **处理器 (Processor)**: 负责执行具体的加工任务。每个处理器都包含名称、版本和执行方法。开发者可以继承 `ProcessorBase` 来实现自定义的处理器。 - **解析器 (Parser)**: 负责解析文本指令,并调用相应的处理代码。`ParserBase` 提供了解析和执行指令的基本框架。 - **上下文 (Context)**: 在处理器执行期间传递数据,包含输入、参数和输出。 ## 主要功能 - **可扩展的处理器架构**: 允许开发者轻松添加新的加工处理器,以适应不同的业务需求。 - **灵活的指令解析**: 支持自定义指令集,可以解析文本格式的指令并执行相应的操作。 - **清晰的数据流**: 通过上下文对象在处理器之间传递数据,使得数据流清晰可控。 ## 使用示例 以下是一个简单的示例,展示了如何使用本库: ```typescript import { ProcessorBase, ProcessorContext } from 'cut-abstractions'; // 定义输入、输出和配置类型 interface MyInput { data: string; } interface MyOutput { result: string; } interface MyConfig { param: string; } // 创建一个自定义处理器 class MyProcessor extends ProcessorBase { get name() { return 'my-processor'; } get version() { return '1.0.0'; } exec(context: ProcessorContext) { // 执行处理逻辑 const inputData = context.input?.data || ''; const param = context.params?.param || ''; context.output = { result: `Processed: ${inputData} with param: ${param}`, }; } } // 使用处理器 const processor = new MyProcessor(); const context: ProcessorContext = { input: { data: 'hello' }, params: { param: 'world' }, }; processor.exec(context); console.log(context.output?.result); // "Processed: hello with param: world" ``` ## 模块 - `base`: 提供了处理器的基本抽象。 - `parsers`: 提供了指令解析器的基本抽象。 - `models`: 定义了项目中使用的数据模型,如 `Config`、`Knife` 和 `File`。 ## 术语表 | 中文 | CAD | MES | IMES | 备注 | | --- | --- | --- | --- | --- | | 房名 | RoomName | roomName | roomName | | | 柜名 | CabinetName | boxName | bodyName | | | 小板名 | BoardName | blockName | blockName | | | 材质 | Material | material | material | | | 大板名 | 无 | boardName | goodsName | | | 余料 | 无 | scrap | remain | | | 排单 | 无 | planOrder |planOrder | | ## 编译与发布 更新 package.json 版本号 ```shell pnpm clean pnpm build pnpm release ```