API リファレンス · エディター ドメイン
@oriatheme/editor-core
DOM、ストレージ、またはフレームワークの依存関係のない、ドラフト、フィールド メタデータ、スマート スケール、診断、プレビュー、およびコミット セッション。パッケージと環境
純粋なドメインロジック。コンシューマーによって作成されたランタイムを受け取るのはプレビュー/保存のみです。
bash
pnpm add @oriatheme/editor-corebash
npm install @oriatheme/editor-corebash
yarn add @oriatheme/editor-corebash
bun add @oriatheme/editor-coreコンシューマ プロジェクトによってすでに選択されているパッケージ マネージャーとロックファイルを使用します。例では、パッケージ ルート エクスポートのみを使用します。 src、dist、またはレジストリ テンプレートからディープ インポートしないでください。
Exports
| エクスポート | 署名 | 説明 |
|---|---|---|
describeTokenContract | (contract?) => readonly TokenFieldDescriptor[] | 安定した契約注文フィールドのメタデータ。 |
describeToken | (path, contract?) => TokenFieldDescriptor | undefined | 1 つのエディター フィールドを検索します。 |
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 | 名前、1 つのトークン、またはアトミック セットによってドラフトを変更します。 |
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 にはソースが必要で、プリセットを編集するときに ID が必要です。 ThemeEditorSaveResult は検証または競合により失敗します。 ThemeEditorPreviewResult が問題により失敗します。このドラフト ステート マシンを React、Vue、またはルートにコピーしないでください。