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

クラス: StreamProviderStore

定義: plugins/music/src/StreamProvider.ts:71

StreamProvider のストア。providers/ を走査します。

拡張​

コンストラクター​

コンストラクター​

new StreamProviderStore(): StreamProviderStore;

定義: plugins/music/src/StreamProvider.ts:72

戻り値​

StreamProviderStore

上書き​

ComponentStore.constructor

プロパティ​

base​

readonly base: AbstractComponentClass<StreamProvider>;

定義: src/component/ComponentStore.ts:50

この種別のコンポーネントが継承する基底クラス。

継承元​

ComponentStore.base


container​

readonly container: Container;

定義: src/component/ComponentStore.ts:56

コンテナ。レジストリへの登録時に割り当てられます。

継承元​

ComponentStore.container


logger​

readonly logger: Logger;

定義: src/component/ComponentStore.ts:59

このストア用の子ロガー。登録時に割り当てられます。

継承元​

ComponentStore.logger


name​

readonly name: string;

定義: src/component/ComponentStore.ts:47

ストア名(= 自動探索ディレクトリ名)。

継承元​

ComponentStore.name


suffix​

readonly suffix: string;

定義: src/component/ComponentStore.ts:53

クラス名から取り除く接尾辞(ComponentStoreOptions.suffix)。

継承元​

ComponentStore.suffix

メソッド​

applyOptions()​

protected applyOptions(provider, options): void;

定義: plugins/music/src/StreamProvider.ts:76

解決済みメタデータをインスタンスへ適用します — 種別固有フィールドの 割り当てと必須項目の検証はここで行います。ロード時に弾く場合は (ComponentLoadError を推奨)例外を投げてください。

パラメータ​

provider​

StreamProvider

options​

StreamProviderOptions

戻り値​

void

上書き​

ComponentStore.applyOptions


bind()​

protected bind(component): void;

定義: src/component/ComponentStore.ts:247

ロード済みコンポーネントをランタイムへ配線します(例: リスナーの イベント購読)。onLoad の後、ストアに追加された状態で呼ばれます。

パラメータ​

component​

StreamProvider

戻り値​

void

継承元​

ComponentStore.bind


byPriority()​

byPriority(): StreamProvider[];

定義: plugins/music/src/StreamProvider.ts:84

優先度の高い順に並べた Provider。

戻り値​

StreamProvider[]


deriveName()​

protected deriveName(className): string;

定義: src/component/ComponentStore.ts:229

クラス名からコンポーネント名を導出します: 種別サフィックス (ComponentStore.suffix)を取り除き、ケバブケース化します (UserInfoCommand → user-info)。 カスタム種別で慣例を変えたい場合はオーバーライドしてください。

パラメータ​

className​

string

戻り値​

string

継承元​

ComponentStore.deriveName


load()​

load(cls, location?): Promise<StreamProvider>;

定義: src/component/ComponentStore.ts:122

単一のコンポーネントクラスを構築・初期化・追加します。 同じクラスの二重ロードは既存インスタンスを返すだけで無害です。 別の クラスが既存の名前に解決された場合は ComponentLoadError を投げます。

パラメータ​

cls​

ComponentClass<StreamProvider>

location?​

string | null

戻り値​

Promise<StreamProvider>

継承元​

ComponentStore.load


loadAll()​

loadAll(baseDirectory): Promise<void>;

定義: src/component/ComponentStore.ts:95

この種別のすべてのコンポーネントをロードします: 先に明示登録分、 次に <baseDirectory>/<name> のファイル自動探索(baseDirectory 設定時)。 クライアント起動時にレジストリから呼ばれます。

パラメータ​

baseDirectory​

string | null

戻り値​

Promise<void>

継承元​

ComponentStore.loadAll


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​

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

継承元​

ComponentStore.register


unbind()​

protected unbind(component): void;

定義: src/component/ComponentStore.ts:252

ComponentStore.bind の逆操作。アンロード時に呼ばれます。

パラメータ​

component​

StreamProvider

戻り値​

void

継承元​

ComponentStore.unbind


unload()​

unload(resolvable): Promise<StreamProvider>;

定義: src/component/ComponentStore.ts:200

コンポーネントを取り除きます(ComponentStore.unbind と onUnload を実行)。

パラメータ​

resolvable​

string | StreamProvider

戻り値​

Promise<StreamProvider>

継承元​

ComponentStore.unload


unloadAll()​

unloadAll(): Promise<void>;

定義: src/component/ComponentStore.ts:217

このストアのすべてのコンポーネントをアンロードします(クライアント終了時に使用)。

戻り値​

Promise<void>

継承元​

ComponentStore.unloadAll