UNPKG

oazapfts

Version:

OpenApi TypeScript client generator

1 lines 2.86 kB
{"version":3,"file":"index.cjs","sources":["../src/index.ts"],"sourcesContent":["import * as cg from \"./tscodegen\";\nimport ApiGenerator from \"./generate\";\nimport ts from \"typescript\";\nimport SwaggerParser from \"@apidevtools/swagger-parser\";\nimport converter from \"swagger2openapi\";\nimport { OpenAPI, OpenAPIV3 } from \"openapi-types\";\n\nexport { cg };\n\nexport const optsArgumentStyles = [\"positional\", \"object\"];\nexport type Opts = {\n include?: string[];\n exclude?: string[];\n optimistic?: boolean;\n unionUndefined?: boolean;\n useEnumType?: boolean;\n mergeReadWriteOnly?: boolean;\n argumentStyle?: (typeof optsArgumentStyles)[number];\n};\n\nexport function generateAst(\n doc: OpenAPIV3.Document,\n opts: Opts,\n isConverted: boolean,\n) {\n return new ApiGenerator(doc, opts, isConverted).generateApi();\n}\n\nexport function printAst(ast: ts.SourceFile) {\n return cg.printFile(ast);\n}\n\nexport async function generateSource(spec: string, opts: Opts = {}) {\n var { doc, isConverted } = await parseSpec(spec);\n const ast = generateAst(doc, opts, isConverted);\n const { title, version } = doc.info;\n const preamble = [\"$&\", title, version].filter(Boolean).join(\"\\n * \");\n const src = printAst(ast);\n return src.replace(/^\\/\\*\\*/, preamble);\n}\n\nfunction isOpenApiV3(doc: OpenAPI.Document): doc is OpenAPIV3.Document {\n return \"openapi\" in doc && doc.openapi.startsWith(\"3\");\n}\n\nexport async function parseSpec(spec: string) {\n const doc = await SwaggerParser.bundle(spec);\n if (isOpenApiV3(doc)) {\n return {\n doc,\n isConverted: false,\n };\n } else {\n const converted = await converter.convertObj(doc, {});\n return {\n doc: converted.openapi as OpenAPIV3.Document,\n isConverted: true,\n };\n }\n}\n"],"names":["optsArgumentStyles","generateAst","doc","opts","isConverted","ApiGenerator","printAst","ast","cg.printFile","generateSource","_0","__async","spec","parseSpec","title","version","preamble","isOpenApiV3","SwaggerParser","converter"],"mappings":"+YASaA,EAAqB,CAAC,aAAc,QAAQ,EAWzC,SAAAC,EACdC,EACAC,EACAC,EACA,CACA,OAAO,IAAIC,EAAa,aAAAH,EAAKC,EAAMC,CAAW,EAAE,YAAY,CAC9D,CAEO,SAASE,EAASC,EAAoB,CACpC,OAAAC,EAAAA,UAAaD,CAAG,CACzB,CAEA,SAAsBE,EAAeC,EAA+B,QAAAC,EAAA,yBAA/BC,EAAcT,EAAa,GAAI,CAClE,GAAI,CAAE,IAAAD,EAAK,YAAAE,CAAgB,EAAA,MAAMS,EAAUD,CAAI,EAC/C,MAAML,EAAMN,EAAYC,EAAKC,EAAMC,CAAW,EACxC,CAAE,MAAAU,EAAO,QAAAC,CAAQ,EAAIb,EAAI,KACzBc,EAAW,CAAC,KAAMF,EAAOC,CAAO,EAAE,OAAO,OAAO,EAAE,KAAK;AAAA,IAAO,EAE7D,OADKT,EAASC,CAAG,EACb,QAAQ,UAAWS,CAAQ,CACxC,GAEA,SAASC,EAAYf,EAAkD,CACrE,MAAO,YAAaA,GAAOA,EAAI,QAAQ,WAAW,GAAG,CACvD,CAEA,SAAsBW,EAAUD,EAAc,QAAAD,EAAA,sBAC5C,MAAMT,EAAM,MAAMgB,EAAc,OAAON,CAAI,EACvC,OAAAK,EAAYf,CAAG,EACV,CACL,IAAAA,EACA,YAAa,EACf,EAGO,CACL,KAFgB,MAAMiB,EAAU,WAAWjB,EAAK,CAAA,CAAE,GAEnC,QACf,YAAa,EACf,CAEJ"}