{"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;;;;"}