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() |
|
}
|
|
|