UNPKG

openapi-typescript

Version:

Convert OpenAPI 3.0 & 3.1 schemas to TypeScript

1 lines 2.63 kB
{"version":3,"file":"paths-enum.cjs","sources":["../../src/transform/paths-enum.ts"],"sourcesContent":["import type ts from \"typescript\";\nimport { tsEnum } from \"../lib/ts.js\";\nimport { getEntries } from \"../lib/utils.js\";\nimport type { PathsObject } from \"../types.js\";\n\nexport default function makeApiPathsEnum(pathsObject: PathsObject): ts.EnumDeclaration {\n const enumKeys = [];\n const enumMetaData = [];\n\n for (const [url, pathItemObject] of getEntries(pathsObject)) {\n for (const [method, operation] of Object.entries(pathItemObject)) {\n if (![\"get\", \"put\", \"post\", \"delete\", \"options\", \"head\", \"patch\", \"trace\"].includes(method)) {\n continue;\n }\n\n // Generate a name from the operation ID\n let pathName: string;\n if (operation.operationId) {\n pathName = operation.operationId;\n } else {\n // If the operation ID is not present, construct a name from the method and path\n pathName = (method + url)\n .split(\"/\")\n .map((part) => {\n const capitalised = part.charAt(0).toUpperCase() + part.slice(1);\n\n // Remove any characters not allowed as enum keys, and attempt to remove\n // named parameters.\n return capitalised.replace(/{.*}|:.*|[^a-zA-Z\\d_]+/, \"\");\n })\n .join(\"\");\n }\n enumKeys.push(url);\n enumMetaData.push({\n name: pathName,\n });\n }\n }\n\n return tsEnum(\"ApiPaths\", enumKeys, enumMetaData, {\n export: true,\n });\n}\n"],"names":["getEntries","tsEnum"],"mappings":";;;;;AAKA,SAAwB,iBAAiB,WAA8C,EAAA;AACrF,EAAA,MAAM,WAAW,EAAC;AAClB,EAAA,MAAM,eAAe,EAAC;AAEtB,EAAA,KAAA,MAAW,CAAC,GAAK,EAAA,cAAc,CAAK,IAAAA,gBAAA,CAAW,WAAW,CAAG,EAAA;AAC3D,IAAA,KAAA,MAAW,CAAC,MAAQ,EAAA,SAAS,KAAK,MAAO,CAAA,OAAA,CAAQ,cAAc,CAAG,EAAA;AAChE,MAAA,IAAI,CAAC,CAAC,KAAO,EAAA,KAAA,EAAO,MAAQ,EAAA,QAAA,EAAU,SAAW,EAAA,MAAA,EAAQ,OAAS,EAAA,OAAO,CAAE,CAAA,QAAA,CAAS,MAAM,CAAG,EAAA;AAC3F,QAAA;AAAA;AAIF,MAAI,IAAA,QAAA;AACJ,MAAA,IAAI,UAAU,WAAa,EAAA;AACzB,QAAA,QAAA,GAAW,SAAU,CAAA,WAAA;AAAA,OAChB,MAAA;AAEL,QAAA,QAAA,GAAA,CAAY,SAAS,GAClB,EAAA,KAAA,CAAM,GAAG,CACT,CAAA,GAAA,CAAI,CAAC,IAAS,KAAA;AACb,UAAM,MAAA,WAAA,GAAc,KAAK,MAAO,CAAA,CAAC,EAAE,WAAY,EAAA,GAAI,IAAK,CAAA,KAAA,CAAM,CAAC,CAAA;AAI/D,UAAO,OAAA,WAAA,CAAY,OAAQ,CAAA,wBAAA,EAA0B,EAAE,CAAA;AAAA,SACxD,CACA,CAAA,IAAA,CAAK,EAAE,CAAA;AAAA;AAEZ,MAAA,QAAA,CAAS,KAAK,GAAG,CAAA;AACjB,MAAA,YAAA,CAAa,IAAK,CAAA;AAAA,QAChB,IAAM,EAAA;AAAA,OACP,CAAA;AAAA;AACH;AAGF,EAAO,OAAAC,SAAA,CAAO,UAAY,EAAA,QAAA,EAAU,YAAc,EAAA;AAAA,IAChD,MAAQ,EAAA;AAAA,GACT,CAAA;AACH;;;;"}