@boon4681/giri 0.0.3-alpha-4 → 0.0.3-alpha-5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +37 -7
- package/dist/cli.js.map +1 -1
- package/dist/index.js +37 -7
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -688,6 +688,42 @@ function urlSegment(segment) {
|
|
|
688
688
|
}
|
|
689
689
|
return { value: segment };
|
|
690
690
|
}
|
|
691
|
+
function segmentRanks(segments) {
|
|
692
|
+
const ranks = [];
|
|
693
|
+
for (const segment of segments) {
|
|
694
|
+
const converted = urlSegment(segment);
|
|
695
|
+
if (!converted.value) {
|
|
696
|
+
continue;
|
|
697
|
+
}
|
|
698
|
+
if (converted.param?.catchAll) {
|
|
699
|
+
ranks.push({ rank: 2, text: converted.param.name });
|
|
700
|
+
} else if (converted.param) {
|
|
701
|
+
ranks.push({ rank: 1, text: converted.param.name });
|
|
702
|
+
} else {
|
|
703
|
+
ranks.push({ rank: 0, text: converted.value });
|
|
704
|
+
}
|
|
705
|
+
}
|
|
706
|
+
return ranks;
|
|
707
|
+
}
|
|
708
|
+
function compareRoutes(left, right) {
|
|
709
|
+
const leftRanks = segmentRanks(left.routeSegments);
|
|
710
|
+
const rightRanks = segmentRanks(right.routeSegments);
|
|
711
|
+
const shared = Math.min(leftRanks.length, rightRanks.length);
|
|
712
|
+
for (let i = 0; i < shared; i++) {
|
|
713
|
+
const a = leftRanks[i];
|
|
714
|
+
const b = rightRanks[i];
|
|
715
|
+
if (a.rank !== b.rank) {
|
|
716
|
+
return a.rank - b.rank;
|
|
717
|
+
}
|
|
718
|
+
if (a.rank === 0 && a.text !== b.text) {
|
|
719
|
+
return a.text.localeCompare(b.text);
|
|
720
|
+
}
|
|
721
|
+
}
|
|
722
|
+
if (leftRanks.length !== rightRanks.length) {
|
|
723
|
+
return leftRanks.length - rightRanks.length;
|
|
724
|
+
}
|
|
725
|
+
return METHOD_ORDER.indexOf(left.method) - METHOD_ORDER.indexOf(right.method);
|
|
726
|
+
}
|
|
691
727
|
function pathFromSegments(segments) {
|
|
692
728
|
const pathSegments = [];
|
|
693
729
|
const params = [];
|
|
@@ -764,13 +800,7 @@ async function scanRoutes(routesDir) {
|
|
|
764
800
|
sharedFiles: sharedFilesForDir(routesDir, routeDir, sharedCache)
|
|
765
801
|
});
|
|
766
802
|
}
|
|
767
|
-
return routes.sort(
|
|
768
|
-
const pathOrder = left.path.localeCompare(right.path);
|
|
769
|
-
if (pathOrder !== 0) {
|
|
770
|
-
return pathOrder;
|
|
771
|
-
}
|
|
772
|
-
return METHOD_ORDER.indexOf(left.method) - METHOD_ORDER.indexOf(right.method);
|
|
773
|
-
});
|
|
803
|
+
return routes.sort(compareRoutes);
|
|
774
804
|
}
|
|
775
805
|
|
|
776
806
|
// src/types.ts
|