in packages/appsync-modelgen-plugin/src/visitors/appsync-dart-visitor.ts [464:515]
protected generateToStringMethod(model: CodeGenModel, declarationBlock: DartDeclarationBlock): void {
//toString
const fields = this.getNonConnectedField(model);
declarationBlock.addClassMethod(
'toString',
'String',
[],
[
'var buffer = new StringBuffer();',
'',
`buffer.write("${this.getModelName(model)} {");`,
...fields.map((field, index) => {
const fieldDelimiter = ', ';
const varName = this.getFieldName(field);
const fieldName = `${this.isNullSafety() && field.name !== 'id' ? '_' : ''}${this.getFieldName(field)}`;
let toStringVal = '';
if (this.isEnumType(field)) {
if (field.isList) {
toStringVal = this.isNullSafety()
? `(${fieldName} != null ? ${fieldName}!.map((e) => enumToString(e)).toString() : "null")`
: `${fieldName}?.map((e) => enumToString(e)).toString()`;
} else {
toStringVal = `(${fieldName} != null ? enumToString(${fieldName})${this.isNullSafety() ? '!' : ''} : "null")`;
}
} else {
const fieldNativeType = this.getNativeType(field);
switch (fieldNativeType) {
case 'String':
toStringVal = `"$${fieldName}"`;
break;
case this.scalars['AWSDate']:
case this.scalars['AWSTime']:
case this.scalars['AWSDateTime']:
toStringVal = `(${fieldName} != null ? ${fieldName}${this.isNullSafety() ? '!' : ''}.format() : "null")`;
break;
default:
toStringVal = `(${fieldName} != null ? ${fieldName}${this.isNullSafety() ? '!' : ''}.toString() : "null")`;
}
}
if (index !== fields.length - 1) {
return `buffer.write("${varName}=" + ${toStringVal} + "${fieldDelimiter}");`;
}
return `buffer.write("${varName}=" + ${toStringVal});`;
}),
`buffer.write("}");`,
'',
'return buffer.toString();',
].join('\n'),
undefined,
['override'],
);
}