next-router-segments
Version:
Parsing Next.js pathname to structured segments, which you can use in various ways.
27 lines (26 loc) • 928 B
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.getRouteSegments = void 0;
const getRouteSegments = (pathname) => {
const segmentsSet = new Set();
pathname.split('/').filter((segment) => {
if (segment || segment === '') {
segmentsSet.add(segment);
return true;
}
return false;
});
return Array.from(segmentsSet).map((segment, index) => {
const slug = segment || 'home';
const urlSegments = Array.from(segmentsSet).slice(0, index + 1);
const url = urlSegments.length > 1 ? `${urlSegments.join('/')}` : '/';
const name = segment
? segment
.split('-')
.map((word) => word.charAt(0).toUpperCase() + word.slice(1))
.join(' ')
: 'Home';
return { slug, url, name };
});
};
exports.getRouteSegments = getRouteSegments;
;