@@ -28,33 +28,47 @@ module.exports = function(fileInfo, api) {
28
28
addImport ( context , { imported : 'createRouter' } , 'vue-router' )
29
29
newVueRouter . replaceWith ( ( { node } ) => {
30
30
// mode: 'history' -> history: createWebHistory(), etc
31
+ let historyMode = 'createWebHashHistory'
32
+ let baseValue
31
33
node . arguments [ 0 ] . properties = node . arguments [ 0 ] . properties . map ( p => {
32
34
if ( p . key . name === 'mode' ) {
33
35
const mode = p . value . value
34
- let initializer
35
36
if ( mode === 'hash' ) {
36
- initializer = 'createWebHashHistory'
37
+ historyMode = 'createWebHashHistory'
37
38
} else if ( mode === 'history' ) {
38
- initializer = 'createWebHistory'
39
+ historyMode = 'createWebHistory'
39
40
} else if ( mode === 'abstract' ) {
40
- initializer = 'createMemoryHistory'
41
+ historyMode = 'createMemoryHistory'
41
42
} else {
42
43
console . error (
43
44
`mode must be one of 'hash', 'history', or 'abstract'`
44
45
)
45
46
return p
46
47
}
47
-
48
- addImport ( context , { imported : initializer } , 'vue-router' )
49
- return j . objectProperty (
50
- j . identifier ( 'history' ) ,
51
- j . callExpression ( j . identifier ( initializer ) , [ ] )
52
- )
48
+ return
49
+ } else if ( p . key . name === 'base' ) {
50
+ baseValue = p . value
51
+ return
53
52
}
54
53
55
54
return p
56
55
} )
57
56
57
+ // add the default mode with a hash history
58
+ addImport ( context , { imported : historyMode } , 'vue-router' )
59
+ node . arguments [ 0 ] . properties = node . arguments [ 0 ] . properties . filter (
60
+ p => ! ! p
61
+ )
62
+ node . arguments [ 0 ] . properties . unshift (
63
+ j . objectProperty (
64
+ j . identifier ( 'history' ) ,
65
+ j . callExpression (
66
+ j . identifier ( historyMode ) ,
67
+ baseValue ? [ baseValue ] : [ ]
68
+ )
69
+ )
70
+ )
71
+
58
72
return j . callExpression ( j . identifier ( 'createRouter' ) , node . arguments )
59
73
} )
60
74
removeExtraneousImport ( context , localVueRouter )
0 commit comments