UNPKG

file-routing-expressjs

Version:

A dependency-free, flexible, system-based file routing for Express.

1 lines 2.6 kB
{"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":[]}