encode static method

dynamic encode(
  1. dynamic key,
  2. 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;
}