@@ -1114,19 +1114,12 @@ const win32 = {
1114
1114
startDot === end - 1 &&
1115
1115
startDot === startPart + 1 ) ) {
1116
1116
if ( end !== - 1 ) {
1117
- if ( startPart === 0 && isAbsolute )
1118
- ret . base = ret . name = path . slice ( rootEnd , end ) ;
1119
- else
1120
- ret . base = ret . name = path . slice ( startPart , end ) ;
1117
+ const start = ( startPart === 0 && isAbsolute ) ? rootEnd : startPart ;
1118
+ ret . name = path . slice ( start , end ) ;
1121
1119
}
1122
1120
} else {
1123
- if ( startPart === 0 && isAbsolute ) {
1124
- ret . name = path . slice ( rootEnd , startDot ) ;
1125
- ret . base = path . slice ( rootEnd , end ) ;
1126
- } else {
1127
- ret . name = path . slice ( startPart , startDot ) ;
1128
- ret . base = path . slice ( startPart , end ) ;
1129
- }
1121
+ const start = ( startPart === 0 && isAbsolute ) ? rootEnd : startPart ;
1122
+ ret . name = path . slice ( start , startDot ) ;
1130
1123
ret . ext = path . slice ( startDot , end ) ;
1131
1124
}
1132
1125
@@ -1135,6 +1128,22 @@ const win32 = {
1135
1128
else if ( isAbsolute )
1136
1129
ret . dir = path . slice ( 0 , rootEnd ) ;
1137
1130
1131
+ Object . defineProperty ( ret , 'base' , {
1132
+ enumerable : true ,
1133
+ configurable : false ,
1134
+ get ( ) { return this . name + this . ext ; } ,
1135
+ set ( value ) {
1136
+ const li = value . lastIndexOf ( '.' ) ;
1137
+ if ( li > 0 ) {
1138
+ this . ext = value . slice ( li ) ;
1139
+ this . name = value . slice ( 0 , li ) ;
1140
+ } else {
1141
+ this . name = value ;
1142
+ this . ext = '' ;
1143
+ }
1144
+ }
1145
+ } ) ;
1146
+
1138
1147
return ret ;
1139
1148
} ,
1140
1149
@@ -1574,19 +1583,12 @@ const posix = {
1574
1583
startDot === end - 1 &&
1575
1584
startDot === startPart + 1 ) ) {
1576
1585
if ( end !== - 1 ) {
1577
- if ( startPart === 0 && isAbsolute )
1578
- ret . base = ret . name = path . slice ( 1 , end ) ;
1579
- else
1580
- ret . base = ret . name = path . slice ( startPart , end ) ;
1586
+ const start = ( startPart === 0 && isAbsolute ) ? 1 : startPart ;
1587
+ ret . name = path . slice ( start , end ) ;
1581
1588
}
1582
1589
} else {
1583
- if ( startPart === 0 && isAbsolute ) {
1584
- ret . name = path . slice ( 1 , startDot ) ;
1585
- ret . base = path . slice ( 1 , end ) ;
1586
- } else {
1587
- ret . name = path . slice ( startPart , startDot ) ;
1588
- ret . base = path . slice ( startPart , end ) ;
1589
- }
1590
+ const start = ( startPart === 0 && isAbsolute ) ? 1 : startPart ;
1591
+ ret . name = path . slice ( start , startDot ) ;
1590
1592
ret . ext = path . slice ( startDot , end ) ;
1591
1593
}
1592
1594
@@ -1595,6 +1597,22 @@ const posix = {
1595
1597
else if ( isAbsolute )
1596
1598
ret . dir = '/' ;
1597
1599
1600
+ Object . defineProperty ( ret , 'base' , {
1601
+ enumerable : true ,
1602
+ configurable : false ,
1603
+ get ( ) { return this . name + this . ext ; } ,
1604
+ set ( value ) {
1605
+ const li = value . lastIndexOf ( '.' ) ;
1606
+ if ( li > 0 ) {
1607
+ this . ext = value . slice ( li ) ;
1608
+ this . name = value . slice ( 0 , li ) ;
1609
+ } else {
1610
+ this . name = value ;
1611
+ this . ext = '' ;
1612
+ }
1613
+ }
1614
+ } ) ;
1615
+
1598
1616
return ret ;
1599
1617
} ,
1600
1618
0 commit comments