buildToMap method

Future<void> buildToMap(
  1. ClassDeclaration clazz,
  2. MemberDeclarationBuilder builder
)

Implementation

Future<void> buildToMap(ClassDeclaration clazz, MemberDeclarationBuilder builder) async {
  List<FieldDeclaration> properties = await validFields(clazz, builder);

  if (properties.isEmpty) {
    builder.declareInType(DeclarationCode.fromString(asCode("""
  /// Converts this object to a Map<String, dynamic>
  Map<String, dynamic> toMap() => {};
  """)));
  } else {
    builder.declareInType(DeclarationCode.fromString(asCode("""
  /// Converts this object to a Map<String, dynamic>
  Map<String, dynamic> toMap() => {
    ${properties.map((i) => "\"${i.identifier.name.substring(1)}\": ${_toMap(
        i, builder)}").join(",\n      ")}
  };
  """)));
  }
}