クラス: StreamProviderStore
定義: plugins/music/src/StreamProvider.ts:71
StreamProvider のストア。providers/ を走査します。
拡張
コンストラクター
コンストラクター
new StreamProviderStore(): StreamProviderStore;
定義: plugins/music/src/StreamProvider.ts:72
戻り値
StreamProviderStore
上書き
プロパティ
base
readonly base: AbstractComponentClass<StreamProvider>;
定義: src/component/ComponentStore.ts:50
この種別のコンポーネントが継承する基底クラス。
継承元
container
readonly container: Container;
定義: src/component/ComponentStore.ts:56
コンテナ。レジストリへの登録時に割り当てられます。
継承元
logger
readonly logger: Logger;
定義: src/component/ComponentStore.ts:59
このストア用の子ロガー。登録時に割り当てられます。
継承元
name
readonly name: string;
定義: src/component/ComponentStore.ts:47
ストア名(= 自動探索ディレクトリ名)。
継承元
suffix
readonly suffix: string;
定義: src/component/ComponentStore.ts:53
クラス名から取り除く接尾辞(ComponentStoreOptions.suffix)。
継承元
メソッド
applyOptions()
protected applyOptions(provider, options): void;
定義: plugins/music/src/StreamProvider.ts:76
解決済みメタデータをインスタンスへ適用します — 種別固有フィールドの 割り当てと必須項目の検証はここで行います。ロード時に弾く場合は (ComponentLoadError を推奨)例外を投げてください。
パラメータ
provider
options
戻り値
void
上書き
bind()
protected bind(component): void;
定義: src/component/ComponentStore.ts:247
ロード済みコンポーネントをランタイムへ配線します(例: リスナーの
イベント購読)。onLoad の後、ストアに追加された状態で呼ばれます。
パラメータ
component
戻り値
void
継承元
byPriority()
byPriority(): StreamProvider[];
定義: plugins/music/src/StreamProvider.ts:84
優先度の高い順に並べた Provider。
戻り値
deriveName()
protected deriveName(className): string;
定義: src/component/ComponentStore.ts:229
クラス名からコンポーネント名を導出します: 種別サフィックス
(ComponentStore.suffix)を取り除き、ケバブケース化します
(UserInfoCommand → user-info)。
カスタム種別で慣例を変えたい場合はオーバーライドしてください。
パラメータ
className
string
戻り値
string
継承元
load()
load(cls, location?): Promise<StreamProvider>;
定義: src/component/ComponentStore.ts:122
単一のコンポーネントクラスを構築・初期化・追加します。 同じクラスの二重ロードは既存インスタンスを返すだけで無害です。 別の クラスが既存の名前に解決された場合は ComponentLoadError を投げます。
パラメータ
cls
ComponentClass<StreamProvider>
location?
string | null
戻り値
Promise<StreamProvider>
継承元
loadAll()
loadAll(baseDirectory): Promise<void>;
定義: src/component/ComponentStore.ts:95
この種別のすべてのコンポーネントをロードします: 先に明示登録分、
次に <baseDirectory>/<name> のファイル自動探索(baseDirectory 設定時)。
クライアント起動時にレジストリから呼ばれます。
パラメータ
baseDirectory
string | null
戻り値
Promise<void>
継承元
open()
open(track, context?): Promise<AudioStream | null>;
定義: plugins/music/src/StreamProvider.ts:105
トラックを再生できる Provider を優先度順に試します。
担当できる Provider が1つも無ければ null。
Provider が例外を投げたときは次の Provider を試しますが、どれも
成功しなければ最初の例外を投げ直します。握りつぶすと
texts.httpFailed などの失敗理由が呼び出し側へ伝わらず、
ユーザーにも届かなくなるためです。
「最初」なのは、優先度がいちばん高い Provider がそのトラックに いちばん詳しいからです — 例えば YouTube のトラックでは、youtube の 「yt-dlp が見つかりません」が本当の原因で、後続の汎用 http が watch ページを開いて出す「音声ファイルではありません」は雑音です。 最後の例外を投げると、この雑音が本当の原因を隠します(実例あり)。
パラメータ
track
context?
StreamOpenContext = {}
戻り値
Promise<AudioStream | null>
Throws
担当した Provider がすべて失敗した場合、最初の例外。
register()
register(...classes): this;
定義: src/component/ComponentStore.ts:77
コンポーネントクラスを明示登録します(ファイル自動探索の代替)。 ComponentStore.loadAll 前ならキューに積まれ、後なら即座に ロードされます(fire-and-forget — インスタンスを待つ場合は ComponentStore.load を使ってください)。
パラメータ
classes
...ComponentClass<StreamProvider>[]
戻り値
this
継承元
unbind()
protected unbind(component): void;
定義: src/component/ComponentStore.ts:252
ComponentStore.bind の逆操作。アンロード時に呼ばれます。
パラメータ
component
戻り値
void
継承元
unload()
unload(resolvable): Promise<StreamProvider>;
定義: src/component/ComponentStore.ts:200
コンポーネントを取り除きます(ComponentStore.unbind と onUnload を実行)。
パラメータ
resolvable
string | StreamProvider
戻り値
Promise<StreamProvider>
継承元
unloadAll()
unloadAll(): Promise<void>;
定義: src/component/ComponentStore.ts:217
このストアのすべてのコンポーネントをアンロードします(クライアント終了時に使用)。
戻り値
Promise<void>