設定スキーマとローダー。closedcode の設定形状を定義し、階層化されたソース(グローバル、プロジェクト .closedcode、環境変数)をマージして、アプリ全体で利用される実効設定を生成する。
Classes
Members
(static, constant) ConfigDirectoryTypoError
設定ディレクトリのパスがタイプミスと思われる場合に送出される名前付きエラー。問題のあるパス、ディレクトリ、修正候補を保持する。
(static, constant) Info
closedcode の設定形状全体を記述する正規の Effect Schema。Express バリデータ向けに、派生した .zod strict-object 互換サーフェスを備える。
(static, constant) Layout
(非推奨の)レイアウト設定値の Zod 互換スキーマ。
(static, constant) Server
サーバー設定セクションの Zod 互換スキーマ。
(static, constant) defaultLayer
すべての依存レイヤー(filesystem、env、auth、account、npm、flock)を提供した設定 layer。単体でそのまま使用できる。
(static, constant) layer
Service を構築する Effect Layer。グローバル、カスタム、プロジェクトローカル、コンソール/組織、マネージドの各設定ソースをロードしてマージし、プラグインを解決し、アクセサ(get、getGlobal、getConsoleState、directories、waitForDependencies)とミューテータ(update、updateGlobal、invalidate)を公開する。
Methods
(inner) globalConfigFile() → {string}
グローバル設定ファイルのパスを解決する。グローバル設定ディレクトリ配下に既存の closedcode.jsonc/closedcode.json/config.json があればそれを優先し、いずれも存在しない場合は最初の候補にフォールバックする。
選択されたグローバル設定ファイルのパス。
- Type:
- string
(inner) mergeConfig(target, source) → {Object}
2つの設定オブジェクトをディープマージし、source の値が target を上書きする。
| Name | Type | Description |
|---|---|---|
target | Object | ベースとなる設定オブジェクト。 |
source | Object | 値が優先される設定オブジェクト。 |
マージ済みの設定オブジェクト。
- Type:
- Object
(inner) mergeConfigConcatArrays(target, source) → {Object}
2つの設定オブジェクトをディープマージするが、instructions 配列は source が target の配列を置き換えるのではなく和集合にする。
| Name | Type | Description |
|---|---|---|
target | Object | ベースとなる設定オブジェクト。 |
source | Object | 値が優先される設定オブジェクト。 |
instructions を連結したマージ済み設定オブジェクト。
- Type:
- Object
(inner) normalizeLoadedConfig(data, source) → {*}
ロード済み設定レコードから非推奨の TUI 関連キー(theme、keybinds、tui)を除去し、いずれかが存在する場合は非推奨警告をログに記録する。
| Name | Type | Description |
|---|---|---|
data | * | 解析済みの生の設定値(レコードの場合のみ正規化される)。 |
source | string | 非推奨警告で使用されるパス/ソース識別子。 |
レガシーキーを除いた設定のコピー。レコードでない場合は入力をそのまま返す。
- Type:
- *
(inner) patchJsonc(input, patch, path) → {string}
コメントと書式を保持したまま、(ネストされている可能性のある)パッチオブジェクトを JSONC ドキュメント文字列に適用する。レコード値を再帰的にたどり、各リーフ編集の JSON パスを構築する。
| Name | Type | Description |
|---|---|---|
input | string | 元の JSONC ドキュメントテキスト。 |
patch | * | パッチ値。レコードは再帰され、リーフは |
path | Array.<string> | 現在の JSON プロパティパス(再帰中に蓄積される)。 |
更新後の JSONC ドキュメントテキスト。
- Type:
- string
(async, inner) resolveLoadedPlugins(config, filepath) → {Promise.<Object>}
ロード済み設定内の各プラグイン指定を、それを宣言したファイルからの相対で解決し、パス的な指定(例: ./plugin.mjs)が元の基準位置を保持するようにする。
| Name | Type | Description |
|---|---|---|
config | Object | ロード済み設定オブジェクト。 |
filepath | string | プラグインを宣言した設定ファイルのパス。 |
プラグイン指定がその場で解決された、同じ設定オブジェクト。
- Type:
- Promise.<Object>
(inner) writable(info) → {Object}
永続化されるべきでない内部の plugin_origins 来歴メタデータを除去して、設定オブジェクトの書き込み可能なコピーを生成する。
| Name | Type | Description |
|---|---|---|
info | Object | 設定オブジェクト。 |
plugin_origins を除いた設定のコピー。
- Type:
- Object
(inner) writableGlobal(info) → {Object}
グローバルファイルへの永続化用に、設定オブジェクトの書き込み可能なコピーを生成する。さらに、空文字列の shell をクリアして、空のキーが書き込まれないようにする。
| Name | Type | Description |
|---|---|---|
info | Object | 書き込み可能にする設定オブジェクト。 |
グローバル設定ファイルへのシリアライズに適したコピー。
- Type:
- Object