mcpField
R
riverpod-overrides

riverpod-overrides

github.com/serverpod開発1078 回インストール34 週間前に更新
リポジトリ

riverpod-overrides について

riverpod-overridesは、FlutterとDartでコンテナ単位のオーバーライドを使い、Riverpodプロバイダーの動作を変更する方法を解説するスキルです。実装・値・ビルドのオーバーライドや、Familyの一部または全体への適用を扱います。

主な機能

  1. 01ProviderScopeまたはProviderContainerで設定
  2. 02実装・値・ビルドのオーバーライド
  3. 03Familyの引数単位または全体をオーバーライド
  4. 04テストや環境別の設定に利用

活用シーン

  1. 01テストでプロバイダーに固定値を渡す
  2. 02デバッグ時にプロバイダーの動作を差し替える
  3. 03環境ごとにプロバイダーを設定する

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/serverpod/skills-registry --skill riverpod-overrides

インストール後、Claude Code で/riverpod-overridesを入力して読み込まれたか確認します。

詳細

Riverpod — プロバイダーのオーバーライド

手順

すべてのプロバイダーは、動作を変更するためにオーバーライドできます。オーバーライドは、overrides パラメーターを使用してコンテナー(Flutter では ProviderScope、Dart では ProviderContainer)に設定します。テスト、デバッグ、環境の切り替え、またはスコープ設定(riverpod-scoping を参照)にオーバーライドを使用します。

オーバーライドの設定場所
  • Flutter: overrides を ProviderScope に渡します(通常はルート、またはサブツリーの周囲に設定します)。
  • Dart: overrides を ProviderContainer に渡します。
オーバーライドのメソッド

各プロバイダーの型には、名前が overrideWith で始まるメソッドが用意されています。例:

  • overrideWith — 新しい実装を指定します(例:値を返す関数や状態を構築する関数)。
  • overrideWithValue — 固定値で置き換えます(例:FutureProvider/StreamProvider の場合)。
  • overrideWithBuild — カスタムのビルドロジックを指定します(例:StreamProvider の場合)。

正確なメソッドについては、プロバイダーの API を確認してください(例:Provider.overrideWith、FutureProvider.overrideWithValue)。

例:カウンターをオーバーライドする
// Flutter
void main() {
  runApp(
    ProviderScope(
      overrides: [
        counterProvider.overrideWith((ref) => 42),
      ],
      child: MyApp(),
    ),
  );
}

// Dart
final container = ProviderContainer(
  overrides: [
    counterProvider.overrideWith((ref) => 42),
  ],
);
Family のオーバーライド
  • 単一のパラメーター: 特定の引数をオーバーライドします:userProvider('123').overrideWith((ref) => User(name: 'User 123'))。
  • すべてのパラメーター: Family 全体をオーバーライドします:userProvider.overrideWith((ref, arg) => User(name: 'User $arg'))。

その他のテストパターンについては、riverpod-family と riverpod-testing を参照してください。

コメント