プラグイン設定のスキーマとヘルパー。ディレクトリ内のローカルプラグインファイルを探索し、プラグイン仕様の識別子とオプションを読み取り、パス的な仕様を宣言元の設定ファイルからの相対で解決し、ロード同一性によってプラグインの重複を除く。

Members

(static, constant) Options

任意のインラインプラグインオプション(文字列キーで未知の値を持つレコード)のスキーマ。

(static, constant) Spec

プラグイン仕様のスキーマ。単純な識別子文字列、または [identifier, options] のタプル。

Methods

(static) deduplicatePluginOrigins(plugins) → {Array}

ロード上の同一性(npm 仕様はパッケージ名、ローカル仕様は厳密なファイル URL)でプラグインを重複排除し、それぞれ最後に宣言された出現を残す。その際、元の順序と各エントリの完全な来歴を保持する。

Parameters:
NameTypeDescription
pluginsArray

プラグインの origin エントリ。各エントリは spec フィールドを持つ。

Returns:

元の順序を保った、重複排除済みのプラグインエントリ。

Type: 
Array

(static) load(dir) → {Promise.<Array.<string>>}

ディレクトリ内の plugin/ または plugins/ 配下にあるローカルのプラグインファイルを検出する。

Parameters:
NameTypeDescription
dirstring

走査対象のディレクトリ(その plugin/plugins サブディレクトリ)。

Returns:

検出された .js/.mjs プラグインのファイル URL(file://)。

Type: 
Promise.<Array.<string>>

(static) pluginOptions(plugin) → {Object|undefined}

プラグイン仕様からインラインオプションを抽出する(存在する場合)。

Parameters:
NameTypeDescription
pluginstring | Array

プラグイン仕様文字列、または [identifier, options] タプル。

Returns:

オプションオブジェクト。仕様が単なる識別子の場合は undefined。

Type: 
Object | undefined

(static) pluginSpecifier(plugin) → {string}

プラグイン仕様から識別子部分を抽出する。

Parameters:
NameTypeDescription
pluginstring | Array

プラグイン仕様文字列、または [identifier, options] タプル。

Returns:

プラグイン識別子。

Type: 
string

(static) resolvePluginSpec(plugin, configFilepath) → {Promise.<(string|Array)>}

パス形式のプラグイン仕様を、それを宣言した設定ファイルを基準として絶対的な file:// URL(またはそのパッケージエントリ)に解決する。パス以外の仕様(例: npm パッケージ名)はそのまま返す。

Parameters:
NameTypeDescription
pluginstring | Array

プラグイン仕様文字列、または [identifier, options] タプル。

configFilepathstring

プラグインを宣言した設定ファイルのパス。

Returns:

解決済みの仕様。オプションが存在した場合はタプルの形を保持する。

Type: 
Promise.<(string|Array)>