Table of Contents

Code Formatter

How to write a code formatter

reference: https://www.ntietz.com/blog/writing-basic-code-formatter/

prettier is based on this paper

code gen

type LowcodeInterface = {
  identifier: string;
  fields: { name: string, type: string, comment?: string }[];
  comment?: string;
}

function printField(field: { name: string, type: string, comment?: string }) {
  return (field.comment ? '  /* ' + field.comment + ' */' + "\n" : "")
          + "  " + field.name + ": " + field.type;
}

function printInterface(lowcodeInterface: LowcodeInterface) {
  return (lowcodeInterface.comment ? '/* ' + lowcodeInterface.comment + " */\n" : "")
          + "interface " + lowcodeInterface.identifier + " {\n"
          + lowcodeInterface.fields.map(printField).join('\n') 
          + "\n}";
}

export { printInterface };