{"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(\n    route: string,\n    name: string,\n    isParam: boolean,\n    pattern?: string | RegExp,\n    isFile: boolean = false\n) {\n    const fileIsIndex = isFile && name.trim().toLowerCase() === \"index\";\n\n    name = fileIsIndex ? \"\" : buildRouteWithOneLeadingSlash(name.trim());\n    route = buildRouteWithOneLeadingSlash(route);\n\n    if (pattern) {\n        let raw = pattern.toString()\n            .replace(REGEX_LEFT_SLASH_REGEX, \"\")\n            .replace(REGEX_RIGHT_SLASH_AND_FLAGS_REGEX, \"\");\n\n        pattern = `(${raw})`;\n    }\n\n    let endpoint = `${route}${name}`;\n\n    if (pattern) {\n        endpoint = isParam\n            ? `${endpoint}${pattern}`\n            : `${endpoint}/${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,kBACZ,OACA,MACA,SACA,SACA,SAAkB,OACpB;AACE,QAAM,cAAc,UAAU,KAAK,KAAK,EAAE,YAAY,MAAM;AAE5D,SAAO,cAAc,KAAK,8BAA8B,KAAK,KAAK,CAAC;AACnE,UAAQ,8BAA8B,KAAK;AAE3C,MAAI,SAAS;AACT,QAAI,MAAM,QAAQ,SAAS,EACtB,QAAQ,wBAAwB,EAAE,EAClC,QAAQ,mCAAmC,EAAE;AAElD,cAAU,IAAI,GAAG;AAAA,EACrB;AAEA,MAAI,WAAW,GAAG,KAAK,GAAG,IAAI;AAE9B,MAAI,SAAS;AACT,eAAW,UACL,GAAG,QAAQ,GAAG,OAAO,KACrB,GAAG,QAAQ,IAAI,OAAO;AAAA,EAChC;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":[]}