Riverpod Generatorで生成されるProvider名を変える方法
はじめに
最近メジャーバージョンが2に上がり、諸々の機能もそろったことからriverpod_generatorを使い始めた人も多いのではないかと思います。
今回はriverpod_generatorで生成されるProviderの名前を変更する方法を紹介します。
変更方法
プロジェクト直下のbuild.yamlファイルを編集することで生成オプションを変更できます。
build.yamlがない場合は作りましょう。
以下はReadmeそのままです。
targets:
$default:
builders:
riverpod_generator:
options:
# Could be changed to "Pod", such that riverpod_generator
# would generate "countPod" instead of "countProvider"
provider_name_suffix: "Provider" # (default)
# Similar to provider_name_sufix, this is an option for renaming
# providers with parameters ("families").
# This takes precedence over provider_name_suffix.
provider_family_name_suffix: "Provider" # (default)
provider_name_suffixとprovider_family_name_suffixという2つのオプションがあります。
provider_name_suffix
provider_name_suffixは生成されるProviderの名前を変えるオプションです。
通常以下のようなhogeという関数があったとき
String hoge(HogeRef ref) {
return 'hoge';
}
生成されるのはhogeProviderです。
/// See also [hoge].
(hoge)
final hogeProvider = AutoDisposeProvider<String>.internal(
ここでprovider_name_suffixをPodとすると
targets:
$default:
builders:
riverpod_generator:
options:
provider_name_suffix: "Pod"
hogePodが生成されるようになります。
/// See also [hoge].
(hoge)
final hogePod = AutoDisposeProvider<String>.internal(
provider_family_name_suffix
provider_family_name_suffixも生成されるProviderの名前を変えるオプションですが、
こちらはパラメーターをもつProvider(Family Provider)のみの名前を変えます。
以下のようにhogeとfugaという関数があり、fugaにのみパラメーターxがあったとき
String hoge(HogeRef ref) {
return 'hoge';
}
String fuga(HogeRef ref, int x) {
return 'hoge';
}
ここでprovider_family_name_suffixをProviderFamilyとすると
targets:
$default:
builders:
riverpod_generator:
options:
provider_family_name_suffix: "ProviderFamily"
fugaのほうだけfugaProviderFamilyになっています。
/// See also [hoge].
(hoge)
final hogeProvider = AutoDisposeProvider<String>.internal(
/// See also [fuga].
(fuga)
const fugaProviderFamily = FugaFamily();
その他
provider_family_name_suffixはprovider_name_suffixより優先されるので、以下のようにすれば
targets:
$default:
builders:
riverpod_generator:
options:
provider_name_suffix: "Pod"
provider_family_name_suffix: "PodFamily"
hogePodとfugaPodFamilyになります。
/// See also [hoge].
(hoge)
final hogePod = AutoDisposeProvider<String>.internal(
/// See also [fuga].
(fuga)
const fugaPodFamily = FugaFamily();
まとめ
riverpod_generatorで生成されるProvider名を変更する方法を紹介しました。
通常はすべて〇〇Providerになりますが、好みでない人はぜひ設定を変更してみましょう。
Discussion