API 参考 · 编辑领域
@oriatheme/editor-core
无 DOM、Storage 或框架依赖的草稿、字段元数据、智能阶梯、诊断、预览与提交会话。包与运行环境
纯领域逻辑;只有 preview/save 方法接收由使用方创建的 Runtime。
bash
pnpm add @oriatheme/editor-corebash
npm install @oriatheme/editor-corebash
yarn add @oriatheme/editor-corebash
bun add @oriatheme/editor-core选择使用方项目已有的一种包管理器和 lockfile;示例只使用 package root export,不要从 src、dist 或 registry template 深层导入。
Exports
| 出口 | 签名 | 描述 |
|---|---|---|
describeTokenContract | (contract?) => readonly TokenFieldDescriptor[] | 稳定的合同订单字段元数据。 |
describeToken | (path, contract?) => TokenFieldDescriptor | undefined | 查找一个编辑器字段。 |
getTokenModeScope | (path) => 'shared' | 'mode' | 返回标准标记编辑范围。 |
deriveSmartScale | (input: SmartScaleInput) => readonly DerivedTokenValue[] | 扩展面向设计师的大师价值。 |
preserveScaleOverrides | (derived, current, customized) => readonly DerivedTokenValue[] | 保留明确定制的叶子。 |
createThemeEditorIdentity | (source, existingThemes) => CloneIdentity | 为预设编辑创建稳定的未使用标识。 |
createThemeEditorSession | (options) => ThemeEditorSession | 创建独立于框架的草稿会话。 |
ThemeEditorSession
| 出口 | 签名 | 描述 |
|---|---|---|
getSnapshot / subscribe | () => ThemeEditorSnapshot / (listener) => unsubscribe | 读取或观察不可变的编辑器状态。 |
setName / setToken / setTokens | (...) => void | 按名称、一个标记或一组原子更改草稿。 |
removeToken / resetToken / resetMode / resetAll | (...) => void | 取消设置或恢复拔模值。 |
replaceFromJson / exportJson | (json) => ImportResult / () => string | Atomically import a draft or serialize it. |
preview | (runtime, mode?) => ThemeEditorPreviewResult | 预览仅完成有效的修订。 |
save | (runtime) => ThemeEditorSaveResult | 验证、创建/更新自定义主题或报告冲突。 |
reload / destroy | (theme) => void / () => void | 采用外部版本或释放会话资源。 |
重要类型与边界
ThemeEditorOptions 需要 source,编辑 preset 时需要 identity。ThemeEditorSaveResult 的失败原因是 validation 或 conflict;ThemeEditorPreviewResult 的失败返回 issues。不要在 React/Vue 或页面层复制草稿状态机。