/** * * 这个模块的主要功能是将多个代码文件操作(创建、更新、删除)转换为统一的nasl批量操作格式, * * 主要处理流程: * 1. 解析codeAction 的路径,提取命名空间和项目类型信息 * 2. 将代码内容包装在适当的命名空间中 * 3. 使用 parseNaturalTS 解析 TypeScript 代码为 NASL 对象 * 4. 为每种类型(entity、structure、enum、logic、view)提供统一的操作接口 * 5. 生成批量操作数组,支持创建、更新和删除操作 * 6. 处理操作过程中的错误并提供调试信息 * * 目前支持的类型: * - entity: 数据实体 * - structure: 数据结构 * - enum: 枚举类型 * - logic: 业务逻辑 * - view: 视图组件 * - backendVariables: 后端变量 * - frontendVariables: 前端类型变量 */ /** * 用于描述对代码文件的操作,包括路径、内容和操作类型 */ export interface CodeAction { /** 文件路径,例如: 'src/app.enums.SomeType.ts' */ path: string; /** 文件内容 */ content: string; /** 操作类型:创建、更新、删除或已存在(用于自动生成的父级视图) */ action: 'create' | 'update' | 'delete' | 'exist'; } /** * 批量操作接口 * 用于描述单个批量操作的详细信息 */ interface BatchAction { /** 操作类型 */ action: string; /** 操作路径 */ path: string; /** NASL 对象 */ object: any; } /** * 用于描述一组批量操作及其元信息 */ export interface Operators { /** 唯一标识符 */ uuid: string; /** 批量操作数组 */ actions: BatchAction[]; /** 操作描述信息 */ actionMsg: string; /** 源类型 */ sourceType: string; } /** * 布局模板参数接口 */ interface LayoutTemplateParams { viewName: string; title: string; namespace: string; } /** * 生成空的路由容器模板 * 用于为嵌套视图创建父级容器视图 * @param params - 包含视图名称、标题和命名空间的参数 * @returns 生成的路由容器模板代码 */ export declare const generateRouterContainerTemplate: (params: Pick) => string; /** * 将 codeAction 数组转换为批量操作 * 这是整个模块的核心函数,负责将多个codeAction 转换成统一的批量操作格式 * * 处理流程: * 1. 解析每个 codeAction ,提取类型和名称信息 * 2. 将需要解析的代码合并并通过 parseNaturalTS 解析 * 3. 为每个操作生成对应的 NASL 对象 * 4. 构建批量操作数组,支持创建、更新和删除操作 * 5. 处理错误并返回结果 * * @param codeActions - codeAction 数组,每个元素包含 path、content、action * @param app - NASL 应用实例,用于操作目标应用 * @param sessionId - 会话 ID,用于生成唯一标识 * @param type - 操作类型,'normal' 为正常模式,'debug' 为调试模式(会返回更多信息) * @param files - 可选的完整文件列表,包含现有文件和新文件 * @returns 包含批量操作和可选调试信息的对象 */ export declare const transform2BatchActions: ({ codeActions, app, sessionId, type, }: { codeActions: CodeAction[]; app: any; sessionId: string; type?: 'normal' | 'debug'; }) => { batchActions: Operators; accumulatedTsCode?: string; parseJSON?: any; errors?: Array<{ item: string; type: string; error: Error; }>; }; /** * 将批量操作应用到 app 实例 * 处理批量操作(create/update/delete),并将其应用到 app 中 * @param app - NASL 应用实例,需传入 Vue 劫持后的响应式 app * @param batchActions - 需要应用的批量操作 */ export declare const applyBatchActions: (app: any, batchActions: Operators) => void; export {}; //# sourceMappingURL=transform2BatchActions.d.ts.map