Skip to content

Instantly share code, notes, and snippets.

@Kurogoma4D
Created January 30, 2023 08:47
Show Gist options
  • Save Kurogoma4D/4a3c27a5e0c1ff2fe9b7863dbaef9b2f to your computer and use it in GitHub Desktop.
Save Kurogoma4D/4a3c27a5e0c1ff2fe9b7863dbaef9b2f to your computer and use it in GitHub Desktop.
StreamProvider inspection.
import 'package:riverpod/riverpod.dart';
final originalStream = StreamProvider.family.autoDispose<String, String>((ref, prefix) {
return Stream.value('$prefix foo');
});
final prefixStore = StateProvider.autoDispose<String?>((_) => null);
final originalListener = StreamProvider.autoDispose<String>((ref) {
final prefix = ref.watch(prefixStore);
if (prefix == null) {
return const Stream.empty();
}
return ref.watch(originalStream(prefix).stream);
});
void main() async {
final container = ProviderContainer();
final value = await container.read(originalStream('#').future);
print('first value: $value');
container.listen(
originalListener,
(_, value) {
print('$value');
},
fireImmediately: true,
);
container.read(prefixStore.notifier).state = '#';
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment