openapi-ts-mock-generator
Version:
typescript mock data generator based openapi
1 lines • 2.69 kB
Source Map (JSON)
{"version":3,"sources":["../../src/parsers/openapi-parser.ts"],"sourcesContent":["/**\n * OpenAPI 문서 파싱 관련 유틸리티\n */\n\nimport SwaggerParser from \"@apidevtools/swagger-parser\"\nimport { OpenAPIV3_1 } from \"openapi-types\"\n\n/**\n * OpenAPI 문서를 역참조(dereference)하여 로드\n * 모든 $ref를 실제 스키마로 해석하여 반환\n */\nexport const getOpenAPIDocsDeref = async (\n path: string\n): Promise<OpenAPIV3_1.Document | undefined> => {\n const doc = await SwaggerParser.dereference(path)\n const isOpenApiV3 = \"openapi\" in doc && doc.openapi.startsWith(\"3\")\n if (isOpenApiV3) return doc as OpenAPIV3_1.Document\n return undefined\n}\n\n/**\n * OpenAPI 문서를 번들(bundle)하여 로드\n * 외부 참조를 포함하여 하나의 문서로 통합\n */\nexport const getOpenAPIDocsBundle = async (\n path: string\n): Promise<OpenAPIV3_1.Document | undefined> => {\n const doc = await SwaggerParser.bundle(path)\n const isOpenApiV3 = \"openapi\" in doc && doc.openapi.startsWith(\"3\")\n if (isOpenApiV3) return doc as OpenAPIV3_1.Document\n return undefined\n}\n\n/**\n * OpenAPI 문서의 유효성을 검증\n */\nexport const validateOpenAPIDoc = async (path: string): Promise<boolean> => {\n try {\n await SwaggerParser.validate(path)\n return true\n } catch (error) {\n console.error(\"OpenAPI validation failed:\", error)\n return false\n }\n}\n\n/**\n * OpenAPI 문서에서 스키마 컴포넌트 추출\n */\nexport const extractSchemas = (\n doc: OpenAPIV3_1.Document\n): Record<string, OpenAPIV3_1.SchemaObject> => {\n return doc.components?.schemas || {}\n}\n\n/**\n * OpenAPI 문서에서 경로 정보 추출\n */\nexport const extractPaths = (doc: OpenAPIV3_1.Document): OpenAPIV3_1.PathsObject => {\n return doc.paths || {}\n}\n\n/**\n * OpenAPI 버전 확인\n */\nexport const getOpenAPIVersion = (doc: any): string => {\n return doc.openapi || doc.swagger || \"unknown\"\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAIA,OAAO,mBAAmB;AAOnB,IAAM,sBAAsB,CACjC,SAC8C;AAC9C,QAAM,MAAM,MAAM,cAAc,YAAY,IAAI;AAChD,QAAM,cAAc,aAAa,OAAO,IAAI,QAAQ,WAAW,GAAG;AAClE,MAAI;AAAa,WAAO;AACxB,SAAO;AACT;AAMO,IAAM,uBAAuB,CAClC,SAC8C;AAC9C,QAAM,MAAM,MAAM,cAAc,OAAO,IAAI;AAC3C,QAAM,cAAc,aAAa,OAAO,IAAI,QAAQ,WAAW,GAAG;AAClE,MAAI;AAAa,WAAO;AACxB,SAAO;AACT;AAKO,IAAM,qBAAqB,CAAO,SAAmC;AAC1E,MAAI;AACF,UAAM,cAAc,SAAS,IAAI;AACjC,WAAO;AAAA,EACT,SAAS,OAAO;AACd,YAAQ,MAAM,8BAA8B,KAAK;AACjD,WAAO;AAAA,EACT;AACF;AAKO,IAAM,iBAAiB,CAC5B,QAC6C;AAnD/C;AAoDE,WAAO,SAAI,eAAJ,mBAAgB,YAAW,CAAC;AACrC;AAKO,IAAM,eAAe,CAAC,QAAuD;AAClF,SAAO,IAAI,SAAS,CAAC;AACvB;AAKO,IAAM,oBAAoB,CAAC,QAAqB;AACrD,SAAO,IAAI,WAAW,IAAI,WAAW;AACvC;","names":[]}