File tree Expand file tree Collapse file tree 3 files changed +19
-6
lines changed Expand file tree Collapse file tree 3 files changed +19
-6
lines changed Original file line number Diff line number Diff line change 1
1
{
2
2
"name" : " next-router-segments" ,
3
- "version" : " 1.0.3 " ,
3
+ "version" : " 1.0.4 " ,
4
4
"description" : " Parsing Next.js pathname to structured segments, which you can use in various ways." ,
5
5
"files" : [
6
6
" lib/**/*"
Original file line number Diff line number Diff line change 1
- export const getRouteSegments = ( pathname : string ) => {
2
- const segments = pathname . split ( '/' ) . filter ( ( segment ) => segment || segment === '' ) ;
1
+ export interface RouteSegment {
2
+ slug : string ;
3
+ url : string ;
4
+ name : string ;
5
+ }
6
+
7
+ export const getRouteSegments = ( pathname : string ) : RouteSegment [ ] => {
8
+ const segmentsSet = new Set < string > ( ) ;
9
+ pathname . split ( '/' ) . filter ( ( segment ) => {
10
+ if ( segment || segment === '' ) {
11
+ segmentsSet . add ( segment ) ;
12
+ return true ;
13
+ }
14
+ return false ;
15
+ } ) ;
3
16
4
- return segments . map ( ( segment , index ) => {
17
+ return Array . from ( segmentsSet ) . map ( ( segment , index ) => {
5
18
const slug = segment || 'home' ;
6
- const urlSegments = segments . slice ( 0 , index + 1 ) ;
19
+ const urlSegments = Array . from ( segmentsSet ) . slice ( 0 , index + 1 ) ;
7
20
const url = urlSegments . length > 1 ? `${ urlSegments . join ( '/' ) } ` : '/' ;
8
21
const name = segment
9
22
? segment
Original file line number Diff line number Diff line change 1
1
{
2
2
"compilerOptions" : {
3
- "target" : " es5 " ,
3
+ "target" : " esnext " ,
4
4
"module" : " commonjs" ,
5
5
"declaration" : true ,
6
6
"outDir" : " ./lib" ,
You can’t perform that action at this time.
0 commit comments