You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
754 B
29 lines
754 B
module.exports = (file, api) => {
|
|
const j = api.jscodeshift
|
|
const root = j(file.source)
|
|
|
|
const appRoots = root.find(j.CallExpression, (node) => {
|
|
if (j.Identifier.check(node.callee) && node.callee.name === 'createApp') {
|
|
return true
|
|
}
|
|
|
|
if (
|
|
j.MemberExpression.check(node.callee) &&
|
|
j.Identifier.check(node.callee.object) &&
|
|
node.callee.object.name === 'Vue' &&
|
|
j.Identifier.check(node.callee.property) &&
|
|
node.callee.property.name === 'createApp'
|
|
) {
|
|
return true
|
|
}
|
|
})
|
|
|
|
appRoots.replaceWith(({ node: createAppCall }) => {
|
|
return j.callExpression(
|
|
j.memberExpression(createAppCall, j.identifier('use')),
|
|
[j.identifier('router')]
|
|
)
|
|
})
|
|
|
|
return root.toSource()
|
|
}
|
|
|