{"version":3,"sources":["../../src/helpers/builders.ts"],"sourcesContent":["import path from \"path\";\nimport { filenameIsJSorTS, pathExistsAndIsFile } from \"./validators\";\nimport { removeLeadingBackSlashesFromName } from \"./cleaners\";\nimport { REGEX_RIGHT_SLASH_AND_FLAGS_REGEX, REGEX_LEFT_SLASH_REGEX } from \"../constants/regex\";\n\nexport function buildRoutePattern(route: string, name: string, isParam: boolean, pattern?: string | RegExp, isFile: boolean = false) {\n    const fileIsIndex = isFile && name.trim().toLowerCase() === \"index\";\n\n    name = fileIsIndex ? \"\" : buildRouteWithOneLeadingSlash(name.trim());\n    route = buildRouteWithOneLeadingSlash(route);\n    pattern = pattern ? `(${pattern.toString().replace(REGEX_LEFT_SLASH_REGEX, \"\").replace(REGEX_RIGHT_SLASH_AND_FLAGS_REGEX, \"\")})` : undefined;\n\n    let endpoint =`${route}${name}`;\n\n    if(pattern) {\n        endpoint = endpoint + (isParam ? pattern : `/${pattern}`)\n    }\n\n    return buildRouteWithOneLeadingSlash(endpoint);\n}\n\nexport function buildRouteWithOneLeadingSlash(value: string) {\n    return `/${removeLeadingBackSlashesFromName(value)}`;\n}\n\nexport function filenameToJSorTS(dir: string, filename: string) {\n    if(filenameIsJSorTS(filename)) {\n        const file = path.join(dir, filename);\n        if(pathExistsAndIsFile(file)) return file;\n    } else {\n        const jsFile = path.join(dir, `${filename}.js`);\n        const tsFile = path.join(dir, `${filename}.ts`);\n\n        if(pathExistsAndIsFile(jsFile)) {\n            return jsFile;\n        }\n\n        if(pathExistsAndIsFile(tsFile)) {\n            return tsFile;\n        }\n    }\n\n    return undefined;\n}"],"mappings":"AAAA,OAAO,UAAU;AACjB,SAAS,kBAAkB,2BAA2B;AACtD,SAAS,wCAAwC;AACjD,SAAS,mCAAmC,8BAA8B;AAEnE,SAAS,kBAAkB,OAAe,MAAc,SAAkB,SAA2B,SAAkB,OAAO;AACjI,QAAM,cAAc,UAAU,KAAK,KAAK,EAAE,YAAY,MAAM;AAE5D,SAAO,cAAc,KAAK,8BAA8B,KAAK,KAAK,CAAC;AACnE,UAAQ,8BAA8B,KAAK;AAC3C,YAAU,UAAU,IAAI,QAAQ,SAAS,EAAE,QAAQ,wBAAwB,EAAE,EAAE,QAAQ,mCAAmC,EAAE,CAAC,MAAM;AAEnI,MAAI,WAAU,GAAG,KAAK,GAAG,IAAI;AAE7B,MAAG,SAAS;AACR,eAAW,YAAY,UAAU,UAAU,IAAI,OAAO;AAAA,EAC1D;AAEA,SAAO,8BAA8B,QAAQ;AACjD;AAEO,SAAS,8BAA8B,OAAe;AACzD,SAAO,IAAI,iCAAiC,KAAK,CAAC;AACtD;AAEO,SAAS,iBAAiB,KAAa,UAAkB;AAC5D,MAAG,iBAAiB,QAAQ,GAAG;AAC3B,UAAM,OAAO,KAAK,KAAK,KAAK,QAAQ;AACpC,QAAG,oBAAoB,IAAI,EAAG,QAAO;AAAA,EACzC,OAAO;AACH,UAAM,SAAS,KAAK,KAAK,KAAK,GAAG,QAAQ,KAAK;AAC9C,UAAM,SAAS,KAAK,KAAK,KAAK,GAAG,QAAQ,KAAK;AAE9C,QAAG,oBAAoB,MAAM,GAAG;AAC5B,aAAO;AAAA,IACX;AAEA,QAAG,oBAAoB,MAAM,GAAG;AAC5B,aAAO;AAAA,IACX;AAAA,EACJ;AAEA,SAAO;AACX;","names":[]}