$select<T extends HypenGeneratedData, I, S> method
S
$select<T extends HypenGeneratedData, I, S>(
- Object key,
- T build(), {
- required S select(
- I snapshot
- Stream<
S> pipe(- Stream<
S> source
- Stream<
- Object? actionKey,
override
Implementation
@override
S $select<T extends HypenGeneratedData, I, S>(
Object key,
T Function() build, {
required S Function(I snapshot) select,
Stream<S> Function(Stream<S> source)? pipe,
Object? actionKey,
}) {
assert(isBuilding, 'You can not use [select] on an async manner.');
final info = $read(key, build, actionKey: actionKey);
final stream = info.$stream as HypenStream<I>;
final transform = pipe ?? (s) => s;
final transformed = transform(
stream.map(select),
);
return watchData(
key,
select(info.$snapshot() as I),
transformed: transformed,
);
}