encode static method
Implementation
static Map<String, dynamic> encode(String path, data) {
final Map<String, dynamic> subTweaks = {};
if (data is List<dynamic>) {
final currentLinks = [];
for (var i = 0; i < data.length; i++) {
final seg = data[i];
final now = DateTime.now();
final epoch = now.microsecondsSinceEpoch;
final lock = epoch.toRadixString(16);
capture(seg) {
if (seg is Map<String, dynamic>) {
return seg..[Album.srcKey] = '$path/$lock';
}
}
currentLinks.add('$link:/$path/$lock');
subTweaks.addAll(encode('$path/$lock', capture(seg)));
}
return subTweaks..[path] = currentLinks;
}
if (data is Map<String, dynamic>) {
final currentLinks = {};
for (final seg in data.entries) {
final key = seg.key;
final val = seg.value;
currentLinks[seg.key] = '$link:/$path/$key';
subTweaks.addAll(encode('$path/$key', val));
}
return subTweaks..[path] = currentLinks;
}
return subTweaks..[path] = data;
}