UNPKG

one

Version:

One is a React framework for web, iOS, and Android apps.

1 lines • 3.67 kB
{"version":3,"file":"sortRoutes.js","names":[],"sources":["esm/router/sortRoutes.js"],"sourcesContent":["import { matchGroupName } from \"./matchers\";\nfunction sortDynamicConvention(a, b) {\n if (a.deep && !b.deep) {\n return 1;\n }\n if (!a.deep && b.deep) {\n return -1;\n }\n return 0;\n}\nfunction sortRoutes(a, b) {\n const aDynamicSegments = getDynamicSegments(a);\n const bDynamicSegments = getDynamicSegments(b);\n if (aDynamicSegments.length && !bDynamicSegments.length) {\n return 1;\n }\n if (!aDynamicSegments.length && bDynamicSegments.length) {\n return -1;\n }\n if (aDynamicSegments.length && bDynamicSegments.length) {\n if (aDynamicSegments.length !== bDynamicSegments.length) {\n return bDynamicSegments.length - aDynamicSegments.length;\n }\n for (let i = 0; i < aDynamicSegments.length; i++) {\n const aDynamic = aDynamicSegments[i];\n const bDynamic = bDynamicSegments[i];\n if (aDynamic.notFound && bDynamic.notFound) {\n const s2 = sortDynamicConvention(aDynamic, bDynamic);\n if (s2) {\n return s2;\n }\n }\n if (aDynamic.notFound && !bDynamic.notFound) {\n return 1;\n }\n if (!aDynamic.notFound && bDynamic.notFound) {\n return -1;\n }\n const s = sortDynamicConvention(aDynamic, bDynamic);\n if (s) {\n return s;\n }\n }\n return 0;\n }\n const aIndex = a.route === \"index\" || matchGroupName(a.route) != null;\n const bIndex = b.route === \"index\" || matchGroupName(b.route) != null;\n if (aIndex && !bIndex) {\n return -1;\n }\n if (!aIndex && bIndex) {\n return 1;\n }\n return a.route.length - b.route.length;\n}\nfunction getDynamicSegments(route) {\n return [\n ...route.dynamic || [],\n ...route.layouts?.flatMap((layout) => layout.dynamic || []) || []\n ];\n}\nfunction sortRoutesWithInitial(initialRouteName) {\n return (a, b) => {\n if (initialRouteName) {\n if (a.route === initialRouteName) {\n return -1;\n }\n if (b.route === initialRouteName) {\n return 1;\n }\n }\n return sortRoutes(a, b);\n };\n}\nexport {\n sortRoutes,\n sortRoutesWithInitial\n};\n//# sourceMappingURL=sortRoutes.js.map\n"],"mappings":";;;AACA,SAAS,sBAAsB,GAAG,GAAG;CACnC,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM;EACrB,OAAO;CACT;CACA,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM;EACrB,OAAO,CAAC;CACV;CACA,OAAO;AACT;AACA,SAAS,WAAW,GAAG,GAAG;CACxB,MAAM,mBAAmB,mBAAmB,CAAC;CAC7C,MAAM,mBAAmB,mBAAmB,CAAC;CAC7C,IAAI,iBAAiB,UAAU,CAAC,iBAAiB,QAAQ;EACvD,OAAO;CACT;CACA,IAAI,CAAC,iBAAiB,UAAU,iBAAiB,QAAQ;EACvD,OAAO,CAAC;CACV;CACA,IAAI,iBAAiB,UAAU,iBAAiB,QAAQ;EACtD,IAAI,iBAAiB,WAAW,iBAAiB,QAAQ;GACvD,OAAO,iBAAiB,SAAS,iBAAiB;EACpD;EACA,KAAK,IAAI,IAAI,GAAG,IAAI,iBAAiB,QAAQ,KAAK;GAChD,MAAM,WAAW,iBAAiB;GAClC,MAAM,WAAW,iBAAiB;GAClC,IAAI,SAAS,YAAY,SAAS,UAAU;IAC1C,MAAM,KAAK,sBAAsB,UAAU,QAAQ;IACnD,IAAI,IAAI;KACN,OAAO;IACT;GACF;GACA,IAAI,SAAS,YAAY,CAAC,SAAS,UAAU;IAC3C,OAAO;GACT;GACA,IAAI,CAAC,SAAS,YAAY,SAAS,UAAU;IAC3C,OAAO,CAAC;GACV;GACA,MAAM,IAAI,sBAAsB,UAAU,QAAQ;GAClD,IAAI,GAAG;IACL,OAAO;GACT;EACF;EACA,OAAO;CACT;CACA,MAAM,SAAS,EAAE,UAAU,WAAW,eAAe,EAAE,KAAK,KAAK;CACjE,MAAM,SAAS,EAAE,UAAU,WAAW,eAAe,EAAE,KAAK,KAAK;CACjE,IAAI,UAAU,CAAC,QAAQ;EACrB,OAAO,CAAC;CACV;CACA,IAAI,CAAC,UAAU,QAAQ;EACrB,OAAO;CACT;CACA,OAAO,EAAE,MAAM,SAAS,EAAE,MAAM;AAClC;AACA,SAAS,mBAAmB,OAAO;CACjC,OAAO,CACL,GAAG,MAAM,WAAW,CAAC,GACrB,GAAG,MAAM,SAAS,SAAS,WAAW,OAAO,WAAW,CAAC,CAAC,KAAK,CAAC,CAClE;AACF;AACA,SAAS,sBAAsB,kBAAkB;CAC/C,QAAQ,GAAG,MAAM;EACf,IAAI,kBAAkB;GACpB,IAAI,EAAE,UAAU,kBAAkB;IAChC,OAAO,CAAC;GACV;GACA,IAAI,EAAE,UAAU,kBAAkB;IAChC,OAAO;GACT;EACF;EACA,OAAO,WAAW,GAAG,CAAC;CACxB;AACF"}