in packages/appsync-modelgen-plugin/src/languages/swift-declaration-block.ts [356:389]
private generatePropertiesStr(prop: StructProperty): string {
let propertyTypeName = prop.flags.isList ? this.getListType(prop) : prop.type;
let propertyType = propertyTypeName ? `: ${propertyTypeName}${prop.flags.optional ? '?' : ''}` : '';
if (prop.flags.handleListNullabilityTransparently && prop.flags.isList) {
propertyType = propertyTypeName ? `: ${propertyTypeName}${prop.flags.isListNullable ? '?' : ''}` : '';
}
let resultArr: string[] = [
prop.access === 'DEFAULT' ? '' : prop.access,
prop.flags.static ? 'static' : '',
prop.flags.variable ? 'var' : 'let',
`${escapeKeywords(prop.name)}${propertyType}`,
];
const getterStr = prop.getter ? `{\n${indentMultiline(prop.getter)} \n}` : null;
const setterStr = prop.setter ? `{\n${indentMultiline(prop.setter)} \n}` : null;
let getterSetterStr = '';
if (setterStr) {
getterSetterStr = this.mergeSections(
['{', indentMultiline(`set: ${setterStr}`), getterStr ? indentMultiline(`get: ${getterStr}`) : '', '}'],
false,
);
} else if (getterStr) {
getterSetterStr = indentMultiline(getterStr);
}
resultArr.push(getterSetterStr);
if (prop.value) {
resultArr.push('=');
resultArr.push(prop.value);
}
const propDeclaration = resultArr.filter(r => !!r).join(' ');
return this.mergeSections([prop.comment ? `${transformComment(prop.comment)}` : '', propDeclaration], false);
}