Files
Remi Rousselet 1566bd03fd Simplify Persist (#4131)
This changes the Persist syntax a bit to simplify its usage.

This removes the `with Persistable`

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **New Features**
- Introduced a new `persistJson` method for JSON-based state
persistence, simplifying how persistence is integrated and allowing for
custom encoding/decoding.
- Added a `key` getter to provide default storage keys for persisted
providers.
- Exposed `NotifierPersistX` and related persistence utilities for
broader use in persistence scenarios.

- **Refactor**
- Unified and updated type signatures for notifiers and persistence
methods, improving type safety and consistency across providers.
- Simplified persistence API usage by removing the need for mixins and
named parameters, favoring direct method calls with positional
arguments.

- **Documentation**
- Updated documentation and code examples to reflect the new persistence
API and usage patterns.

- **Tests**
- Enhanced test coverage to validate the new persistence approach and
updated type signatures.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-31 20:47:38 +02:00

105 lines
2.7 KiB
Dart
Generated

// GENERATED CODE - DO NOT MODIFY BY HAND
// ignore_for_file: non_constant_identifier_names
part of 'codegen.dart';
// **************************************************************************
// RiverpodGenerator
// **************************************************************************
@ProviderFor(other)
const otherProvider = OtherProvider._();
final class OtherProvider extends $FunctionalProvider<int, int>
with $Provider<int> {
const OtherProvider._()
: super(
from: null,
argument: null,
retry: null,
name: r'otherProvider',
isAutoDispose: true,
dependencies: null,
$allTransitiveDependencies: null,
);
@override
String debugGetCreateSourceHash() => _$otherHash();
@$internal
@override
$ProviderElement<int> $createElement($ProviderPointer pointer) =>
$ProviderElement(pointer);
@override
int create(Ref ref) {
return other(ref);
}
/// {@macro riverpod.override_with_value}
Override overrideWithValue(int value) {
return $ProviderOverride(
origin: this,
providerOverride: $ValueProvider<int>(value),
);
}
}
String _$otherHash() => r'5d27b2b1b1c6bd17ba0844f74ade2088611be371';
@ProviderFor(MyNotifier)
const myNotifierProvider = MyNotifierProvider._();
final class MyNotifierProvider extends $NotifierProvider<MyNotifier, int> {
const MyNotifierProvider._()
: super(
from: null,
argument: null,
retry: null,
name: r'myNotifierProvider',
isAutoDispose: true,
dependencies: null,
$allTransitiveDependencies: null,
);
@override
String debugGetCreateSourceHash() => _$myNotifierHash();
@$internal
@override
MyNotifier create() => MyNotifier();
@$internal
@override
$NotifierProviderElement<MyNotifier, int> $createElement(
$ProviderPointer pointer) =>
$NotifierProviderElement(pointer);
/// {@macro riverpod.override_with_value}
Override overrideWithValue(int value) {
return $ProviderOverride(
origin: this,
providerOverride: $ValueProvider<int>(value),
);
}
}
String _$myNotifierHash() => r'353efe22dd5a91b2d036286211ac9e60c9de5f6d';
abstract class _$MyNotifier extends $Notifier<int> {
int build();
@$mustCallSuper
@override
void runBuild() {
final created = build();
final ref = this.ref as $Ref<int>;
final element = ref.element
as $ClassProviderElement<AnyNotifier<int, int>, int, Object?, Object?>;
element.handleValue(ref, created);
}
}
// ignore_for_file: type=lint
// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package