@anov/cic
v0.0.4
Published
ANOV-GO 平台的 **CIC(Customer Integration Component)格式转换包**。负责将 ANOV-GO 内部页面格式与 CIC 标准格式之间进行双向转换。
Maintainers
Keywords
Readme
@anov-go/cic
ANOV-GO 平台的 CIC(Customer Integration Component)格式转换包。负责将 ANOV-GO 内部页面格式与 CIC 标准格式之间进行双向转换。
平台概述
ANOV-GO 是一个面向数据可视化大屏与仪表盘的低代码搭建平台。CIC 是该平台的客户集成组件标准,定义了通用的组件描述、数据源、变量和事件格式,用于跨平台集成和标准化输出。
本包(@anov-go/cic)负责Go 格式 ↔ CIC 格式的双向转换,使 ANOV-GO 平台产出的页面能够以标准化的 CIC 格式输出,也能从 CIC 格式回显到平台。
转换流程
ANOV-GO 内部格式(Go Type)
│
├─→ transformGoToCIC() → CIC 标准格式
│ ├─ Meta 元信息生成
│ ├─ Component 转换(组件类型映射、属性映射)
│ ├─ DataSource 转换(数据源注册)
│ ├─ Variable 转换(变量抽取)
│ └─ Dependency 生成(资源依赖、组件依赖)
│
└─→ transformCICToGo() → Go 内部格式(回显)核心模块
格式转换(Transformer)
将 Go 平台的项目/页面/组件结构转换为 CIC 标准格式:
import { transformGoToCIC } from '@anov-go/cic'
const cicConfig = transformGoToCIC(goCaseData)回显转换(Echo)
将 CIC 格式回转为 Go 内部格式,用于已有 CIC 配置的页面在平台中打开编辑:
import { transformCICToGo } from '@anov-go/cic'
const goData = transformCICToGo(cicConfig)转换组件
| 模块 | 说明 |
|------|------|
| components/meta | 生成 CIC 元信息(平台标识、版本、版权等) |
| components/component | 组件类型映射与属性转换 |
| components/data-source | 数据源抽取与 CIC 格式注册 |
| components/variable | 全局变量抽取与转换 |
| components/registry | 组件注册表生成 |
| components/deps | 资源依赖和页面组件依赖提取 |
工具模块
| 模块 | 说明 |
|------|------|
| tools/page | 页面遍历、组件收集、唯一组件提取 |
| tools/transformer-utils | 数据校验、性能日志 |
| tools/evnet-tools | 事件转换工具 |
类型系统
| 类型 | 说明 |
|------|------|
| cic-type | CIC 标准格式类型定义 |
| go-type | Go 平台内部格式类型定义 |
| cic-type-evnet | CIC 事件类型定义 |
开发
cd packages/anov-go-cic
pnpm dev # 开发模式(rollup watch)
pnpm build # 生产构建
pnpm lint # 代码检查
pnpm lint:fix # 代码检查并修复
pnpm docs # 生成 TypeDoc 文档发布产物
dist/
├── index.cjs.js # CommonJS 格式
├── index.esm.js # ESM 格式
└── types/ # TypeScript 类型声明在 IDE 中的使用
anov-go-next 的 build:cic 构建命令会启用 @anov-go/cic 的转换能力,使编辑器支持 CIC 格式的导入导出。
