{"version":3,"file":"export-typescript.mjs","names":[],"sources":["../../../src/common/schema/export-typescript.ts"],"sourcesContent":["import type { Type } from './schema'\nimport { assert } from '../assert'\nimport { objectMap } from '../data/object'\nimport { isSchemaObjectFlat } from './utils'\n\n// declare module './schema' {\n//   interface TypeMeta {\n//     argShort?: string\n//     argDesc?: string\n//   }\n// }\n\nconst mapTypescriptType = {\n  int: 'number',\n} as any\n\nexport function schemaExportTypescriptInterface<T>(schema: Type<T>, name: string = 'Example'): string {\n  assert(isSchemaObjectFlat(schema), 'schema should be a flat object')\n\n  const lines: string[] = [\n    `interface ${name} {`,\n  ]\n\n  objectMap(schema._object!, (key, schema: Type<any>) => {\n    const s = `  ${key}${schema._optional === true ? '?' : ''}: ${mapTypescriptType[schema.type] ?? schema.type}`\n    // if (schema._default != null)\n    //   s += ` = ${schema._default}`\n    lines.push(s)\n  })\n\n  lines.push('}')\n\n  return lines.join('\\n')\n}\n"],"mappings":";;;;;AAYA,MAAM,oBAAoB,EACxB,KAAK,UACN;AAED,SAAgB,gCAAmC,QAAiB,OAAe,WAAmB;AACpG,QAAO,mBAAmB,OAAO,EAAE,iCAAiC;CAEpE,MAAM,QAAkB,CACtB,aAAa,KAAK,IACnB;AAED,WAAU,OAAO,UAAW,KAAK,WAAsB;EACrD,MAAM,IAAI,KAAK,MAAM,OAAO,cAAc,OAAO,MAAM,GAAG,IAAI,kBAAkB,OAAO,SAAS,OAAO;AAGvG,QAAM,KAAK,EAAE;GACb;AAEF,OAAM,KAAK,IAAI;AAEf,QAAO,MAAM,KAAK,KAAK"}