{"version":3,"file":"EndpointUtil.mjs","sources":["../../src/utils/EndpointUtil.ts"],"sourcesContent":["import { NamingConvention } from \"./NamingConvention\";\n\nexport namespace EndpointUtil {\n  export const capitalize = (str: string): string =>\n    str.length !== 0 ? str[0].toUpperCase() + str.slice(1).toLowerCase() : str;\n\n  export const pascal = (path: string): string =>\n    splitWithNormalization(path)\n      .filter((str) => str[0] !== \"{\")\n      .map(NamingConvention.pascal)\n      .join(\"\");\n\n  export const splitWithNormalization = (path: string): string[] =>\n    path\n      .split(\"/\")\n      .map((str) => normalize(str.trim()))\n      .filter((str) => !!str.length);\n\n  export const reJoinWithDecimalParameters = (path: string) => {\n    path = path\n      .split(\"/\")\n      .map((str) =>\n        str[0] === \"{\" && str[str.length - 1] === \"}\"\n          ? `:${str.substring(1, str.length - 1)}`\n          : str,\n      )\n      .join(\"/\");\n    return `${path.startsWith(\"/\") ? \"\" : \"/\"}${path}`;\n  };\n\n  export const normalize = (str: string): string => {\n    str = str.split(\".\").join(\"_\").split(\"-\").join(\"_\").trim();\n    if (RESERVED.has(str)) return `_${str}`;\n    else if (str.length !== 0 && \"0\" <= str[0] && str[0] <= \"9\")\n      str = `_${str}`;\n    return str;\n  };\n\n  export const escapeDuplicate =\n    (keep: string[]) =>\n    (change: string): string =>\n      keep.includes(change) ? escapeDuplicate(keep)(`_${change}`) : change;\n}\n\nconst RESERVED: Set<string> = new Set([\n  \"break\",\n  \"case\",\n  \"catch\",\n  \"class\",\n  \"const\",\n  \"continue\",\n  \"debugger\",\n  \"default\",\n  \"delete\",\n  \"do\",\n  \"else\",\n  \"enum\",\n  \"export\",\n  \"extends\",\n  \"false\",\n  \"finally\",\n  \"for\",\n  \"function\",\n  \"if\",\n  \"import\",\n  \"in\",\n  \"instanceof\",\n  \"module\",\n  \"new\",\n  \"null\",\n  \"package\",\n  \"public\",\n  \"private\",\n  \"protected\",\n  \"return\",\n  \"super\",\n  \"switch\",\n  \"this\",\n  \"throw\",\n  \"true\",\n  \"try\",\n  \"typeof\",\n  \"var\",\n  \"void\",\n  \"while\",\n  \"with\",\n]);\n"],"names":["EndpointUtil","capitalize","str","length","toUpperCase","slice","toLowerCase","pascal","path","splitWithNormalization","filter","map","NamingConvention","join","split","normalize","trim","reJoinWithDecimalParameters","substring","startsWith","RESERVED","has","escapeDuplicate","keep","change","includes","Set"],"mappings":";;AAEM,IAAWA;;CAAjB,SAAiBA;IACFA,aAAAC,aAAcC,OACzBA,IAAIC,WAAW,IAAID,IAAI,GAAGE,gBAAgBF,IAAIG,MAAM,GAAGC,gBAAgBJ;IAE5DF,aAAAO,SAAUC,QACrBR,aAAAS,uBAAuBD,MACpBE,OAAQR,OAAQA,IAAI,OAAO,KAC3BS,IAAIC,iBAAiBL,QACrBM,KAAK;IAEGb,aAAAS,yBAA0BD,QACrCA,KACGM,MAAM,KACNH,IAAKT,OAAQF,aAAAe,UAAUb,IAAIc,SAC3BN,OAAQR,SAAUA,IAAIC;IAEdH,aAAAiB,8BAA+BT;QAC1CA,OAAOA,KACJM,MAAM,KACNH,IAAKT,OACJA,IAAI,OAAO,OAAOA,IAAIA,IAAIC,SAAS,OAAO,MACtC,IAAID,IAAIgB,UAAU,GAAGhB,IAAIC,SAAS,OAClCD,KAELW,KAAK;QACR,OAAO,GAAGL,KAAKW,WAAW,OAAO,KAAK,MAAMX;;IAGjCR,aAAAe,YAAab;QACxBA,MAAMA,IAAIY,MAAM,KAAKD,KAAK,KAAKC,MAAM,KAAKD,KAAK,KAAKG;QACpD,IAAII,SAASC,IAAInB,MAAM,OAAO,IAAIA,YAC7B,IAAIA,IAAIC,WAAW,KAAK,OAAOD,IAAI,MAAMA,IAAI,MAAM,KACtDA,MAAM,IAAIA;QACZ,OAAOA;;IAGIF,aAAAsB,kBACVC,QACAC,UACCD,KAAKE,SAASD,UAAUxB,aAAAsB,gBAAgBC,KAAhBvB,CAAsB,IAAIwB,YAAYA;AACnE,EAxCD,CAAiBxB,iBAAAA,eAAY,CAAA;;AA0C7B,MAAMoB,WAAwB,IAAIM,IAAI,EACpC,SACA,QACA,SACA,SACA,SACA,YACA,YACA,WACA,UACA,MACA,QACA,QACA,UACA,WACA,SACA,WACA,OACA,YACA,MACA,UACA,MACA,cACA,UACA,OACA,QACA,WACA,UACA,WACA,aACA,UACA,SACA,UACA,QACA,SACA,QACA,OACA,UACA,OACA,QACA,SACA;;"}