invokeAs<T> method

  1. @override
Future<Either<RealtimeFailure, T>> invokeAs<T>(
  1. String methodName, {
  2. required T parser(
    1. dynamic json
    ),
  3. List? args,
  4. Duration? timeout,
})
override

Invocates a hub method and parses the response into type T using parser.

Implementation

@override
Future<Either<RealtimeFailure, T>> invokeAs<T>(
  String methodName, {
  required T Function(dynamic json) parser,
  List<dynamic>? args,
  Duration? timeout,
}) async {
  final raw = await invoke(methodName, args: args, timeout: timeout);
  return raw.fold(
    (failure) => Left(failure),
    (data) {
      try {
        return Right(parser(data));
      } catch (e, st) {
        return Left(RealtimeFailure.parseError(
          message: 'Failed to parse mock response: $e',
          data: data,
          stackTrace: st,
        ));
      }
    },
  );
}