decodeArg method

  1. @override
dynamic decodeArg(
  1. dynamic arg
)
override

Decode a single argument

Implementation

@override
dynamic decodeArg(dynamic arg) {
  if (isNullOrUndefined(arg)) {
    return null;
  }

  if (!isObject(arg)) {
    return arg;
  }

  final map = (arg as Map).cast<String, dynamic>();
  if (!map.containsKey('_type')) {
    return map.map((key, value) => MapEntry(key, decodeArg(value)));
  }

  switch (map['_type']) {
    case 'base64':
      return _decodeBase64(map);
    case 'instance':
      return _decodeInstance(map);
    case 'callback':
      return _decodeCallback(map);
    default:
      return map;
  }
}