メインコンテンツまでスキップ
バージョン: v2.0

関数: loadClientConfig()

function loadClientConfig(directory?): Promise<ClientOptions>;

定義: src/config.ts:70

設定ディレクトリを読んで1つの ClientOptions にまとめます。

ディレクトリの中身は collectModuleFiles の規約で集められます — サブディレクトリも対象、_ 始まりのファイル・ディレクトリは対象外 (共有コードは config/_env.ts のように置きます)。各ファイルは ClientConfig を default export します。

読み込み順は priority の降順、同じ値ならパスの昇順です。その順で、 キーごとに次の3つの規則で合成します:

  1. plugins連結。読み込み順に並び、1つのファイル内に並べた プラグインはその配列順を保ちます。
  2. intents / partials / applicationGuildIds合併(union)。 どのファイルも自分が必要なものだけを宣言でき、重複は除かれます。
  3. それ以外のキー — 後勝ち。ただし2つ以上のファイルが同じキーに 違う値を書いていたらエラーです(比較は Object.is。同じ内容の オブジェクトリテラルでも別の値なのでエラーになります — どちらが 採用されるか読めない設定は、そもそも書き間違いだからです)。

priority はローダーが消費するため、結果には残りません。

パラメータ

directory?

string | URL

設定ディレクトリ。省略時は <エントリポイントのディレクトリ>/config(= src/index.ts に対する src/config/)です。コンポーネント自動探索と同じ場所に並ぶので、 Bot のコードは src/ の下で完結します(config という名前のストアは 存在しないため、自動探索と衝突しません)。

戻り値

Promise<ClientOptions>