in packages/appsync-modelgen-plugin/src/languages/dart-declaration-block.ts [125:171]
public get string(): string {
let result = '';
if(this._kind) {
let name = '';
if (this._name) {
name = this._name;
}
let extendsStr = '';
let implementsStr = '';
let extensionStr = '';
let annotatesStr = '';
if (this._extendStr.length > 0) {
extendsStr = ` extends ${this._extendStr.join(', ')}`;
}
if (this._implementsStr.length > 0) {
implementsStr = ` implements ${this._implementsStr.join(', ')}`;
}
if(this._extensionType) {
extensionStr = ` on ${this._extensionType}`;
}
if (this._annotations.length > 0) {
annotatesStr = this._annotations.map(a => `@${a}`).join('\n') + '\n';
}
result += `${annotatesStr}${this._kind} ${name}${extendsStr}${implementsStr}${extensionStr} `;
}
const members = this._members.length
? indentMultiline(stripIndent(this._members.map(member => this.printMember(member) + ';').join('\n')))
: null;
const methods = this._methods.length
? indentMultiline(stripIndent(this._methods.map(method => this.printMethod(method)).join('\n\n')))
: null;
const blocks = this._blocks.length ? this._blocks.map(b =>
b._kind ? indentMultiline(b.string) : b.string).join('\n\n') : null;
const before = this._kind ? '{' : '';
const after = this._kind ? '}' : '';
const blockStr = [members, methods, blocks].filter(f => f).join('\n\n');
result += [before, blockStr, after].filter(f => f).join('\n');
return (this._comment ? this._comment : '') + result;
}