UNPKG

next-router-segments

Version:

Parsing Next.js pathname to structured segments, which you can use in various ways.

27 lines (26 loc) 928 B
"use strict"; 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;