UNPKG

openapi-typescript

Version:

Convert OpenAPI 3.0 & 3.1 schemas to TypeScript

1 lines 2.66 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,WAAA,EAA8C;AACrF,EAAA,MAAM,WAAW,EAAC;AAClB,EAAA,MAAM,eAAe,EAAC;AAEtB,EAAA,KAAA,MAAW,CAAC,GAAA,EAAK,cAAc,CAAA,IAAKA,gBAAA,CAAW,WAAW,CAAA,EAAG;AAC3D,IAAA,KAAA,MAAW,CAAC,MAAA,EAAQ,SAAS,KAAK,MAAA,CAAO,OAAA,CAAQ,cAAc,CAAA,EAAG;AAChE,MAAA,IAAI,CAAC,CAAC,KAAA,EAAO,KAAA,EAAO,MAAA,EAAQ,QAAA,EAAU,SAAA,EAAW,MAAA,EAAQ,OAAA,EAAS,OAAO,CAAA,CAAE,QAAA,CAAS,MAAM,CAAA,EAAG;AAC3F,QAAA;AAAA,MACF;AAGA,MAAA,IAAI,QAAA;AACJ,MAAA,IAAI,UAAU,WAAA,EAAa;AACzB,QAAA,QAAA,GAAW,SAAA,CAAU,WAAA;AAAA,MACvB,CAAA,MAAO;AAEL,QAAA,QAAA,GAAA,CAAY,SAAS,GAAA,EAClB,KAAA,CAAM,GAAG,CAAA,CACT,GAAA,CAAI,CAAC,IAAA,KAAS;AACb,UAAA,MAAM,WAAA,GAAc,KAAK,MAAA,CAAO,CAAC,EAAE,WAAA,EAAY,GAAI,IAAA,CAAK,KAAA,CAAM,CAAC,CAAA;AAI/D,UAAA,OAAO,WAAA,CAAY,OAAA,CAAQ,wBAAA,EAA0B,EAAE,CAAA;AAAA,QACzD,CAAC,CAAA,CACA,IAAA,CAAK,EAAE,CAAA;AAAA,MACZ;AACA,MAAA,QAAA,CAAS,KAAK,GAAG,CAAA;AACjB,MAAA,YAAA,CAAa,IAAA,CAAK;AAAA,QAChB,IAAA,EAAM;AAAA,OACP,CAAA;AAAA,IACH;AAAA,EACF;AAEA,EAAA,OAAOC,SAAA,CAAO,UAAA,EAAY,QAAA,EAAU,YAAA,EAAc;AAAA,IAChD,MAAA,EAAQ;AAAA,GACT,CAAA;AACH;;;;"}