encode static method
dynamic
encode(
- dynamic key,
- dynamic input
Implementation
static dynamic encode(key, input) {
//.*
if (key == Album.srcKey) return input;
if (key == 'createTime') return input;
if (key == 'updateTime') return input;
if (input == null) return {nan: input};
if (input is bool) return {boolean: input};
if (input is int) return {integer: input.toString()};
if (input is double) return {float: input};
if (input is String) return {string: input};
if (input is DateTime) return {stamp: input.toIso8601String()};
//..list
if (input is List<dynamic>) {
mipmap(v) => encode('*', v);
return {array: input.map(mipmap)};
}
//..hash
if (input is Map<String, dynamic>) {
mipmap(k, v) => MapEntry(k, encode(k, v));
if (key == 'doc*') return input.map(mipmap);
if (key == 'fields') return input.map(mipmap);
return {hashmap: input.map(mipmap)}; //.*original
}
return input;
}