UNPKG

@lark-project/cli

Version:

飞书项目插件开发工具

31 lines (30 loc) 1.79 kB
/** * 表格列展示态布局 DSL 的格式归一化工具。 * * 后端存储的始终是完整的 { definitions, template } 对象;本地 yaml 允许两种简写: * 1. 裸 template:用户只写根节点(含顶层 `type`),CLI 自动包装成 { definitions, template }; * 2. 完整对象:缺失的 definitions.data / $i18n / $colorTokens 会被补成空对象。 * * 老 yaml 中 control.table_cell 是 JSON 字符串,这里同时做兼容:自动 JSON.parse 一次。 */ type Dict = Record<string, unknown>; /** 本地 yaml 形态 → 发往后端的完整 { definitions, template } 对象 */ export declare function normalizeDslForBackend(input: unknown): Dict | undefined; /** * 就地归一化本地 yaml 形态的 DSL: * - 裸 template → 保持裸(本地仍以裸形态可读) * - 完整对象 → 补齐 definitions.data / $i18n / $colorTokens 为 {} * - JSON 字符串(老 yaml)→ 解析并升级为对象形态(单向迁移) * 与 normalizeDslForBackend 的区别:此函数产出**仍然是本地 yaml 形态**,不强制包成 * { definitions, template }。裸 template 的简写特性得以保留,避免 set 落盘时破坏语义。 */ export declare function normalizeDslInPlace(input: unknown): unknown; /** * 对整个本地配置(QueryLocalConfigInput 形态)就地跑 DSL 归一化。 * 影响 control[].platform.web.table_cell 和 field_template[].platform.web.table_layout 两处。 * 其他字段完全保留,不搬成 extension。 */ export declare function normalizeLocalConfigDsl<T>(config: T): T; /** 后端完整对象 → 本地 yaml 形态:当 definitions 三键全为空时,回写为裸 template */ export declare function denormalizeDslForLocal(input: unknown): Dict | undefined; export {};