private generateArgsStr()

in packages/appsync-modelgen-plugin/src/languages/swift-declaration-block.ts [338:354]


  private generateArgsStr(args: MethodArgument[]): string {
    const res: string[] = args.reduce((acc: string[], arg) => {
      const type = arg.flags.isList ? this.getListType(arg) : escapeKeywords(arg.type);
      if (arg.flags.handleListNullabilityTransparently) {
        const isArgOptional = arg.flags.isList ? arg.flags.isListNullable : arg.flags.optional
        const val: string | null = arg.value ? arg.value : isArgOptional ? 'nil' : arg.flags.isList ? '[]' : null;
        acc.push([escapeKeywords(arg.name), ': ', type, isArgOptional ? '?' : '', val ? ` = ${val}` : ''].join(''));
      }
      else {
        const val: string | null = arg.value ? arg.value : arg.flags.isList ? '[]' : arg.flags.optional ? 'nil' : null;
        acc.push([escapeKeywords(arg.name), ': ', type, arg.flags.optional ? '?' : '', val ? ` = ${val}` : ''].join(''));
      }
      return acc;
    }, []);

    return res.length > 1 ? indentMultiline(res.join(',\n')) : res.join(',');
  }