decode static method

dynamic decode(
  1. dynamic data,
  2. dynamic resolver(
    1. String path
    )
)

Implementation

static decode(data, Function(String path) resolver) {
  if (data is String) {
    if (!data.startsWith('$link:/')) return data;
    final res = resolver(data.replaceFirst('$link:/', ''));
    return decode(res, resolver);
  }

  if (data is List) {
    return data.map((value) {
      return decode(value, resolver);
    }).toList();
  }

  if (data is Map<String, dynamic>) {
    return data.map((key, value) {
      return MapEntry(key, decode(value, resolver));
    });
  }
  return data;
}