Skip to content

Commit 4a7bf17

Browse files
author
Alan Wang
authored
fix: don't remove Vue.use in other expression (#60)
1 parent d626fb5 commit 4a7bf17

File tree

2 files changed

+21
-9
lines changed

2 files changed

+21
-9
lines changed

transformations/__tests__/remove-vue-use.spec.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,13 @@ defineInlineTest(
3838
`app.use(router);`,
3939
`don't remove app.use`
4040
)
41+
42+
defineInlineTest(
43+
transform,
44+
{
45+
removablePlugins: ['VueRouter'],
46+
},
47+
`process.env.NODE_ENV === 'development' ? Vue.use(VueRouter) : null`,
48+
`process.env.NODE_ENV === 'development' ? Vue.use(VueRouter) : null`,
49+
`don't remove Vue.use in other expression`
50+
)

transformations/remove-vue-use.ts

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,17 +33,19 @@ export const transformAST: ASTTransformation<Params> = (
3333
})
3434

3535
const removedPlugins: string[] = []
36-
const removableUseCalls = vueUseCalls.filter(({ node }) => {
37-
if (j.Identifier.check(node.arguments[0])) {
38-
const plugin = node.arguments[0].name
39-
if (removablePlugins?.includes(plugin)) {
40-
removedPlugins.push(plugin)
41-
return true
36+
const removableUseCalls = vueUseCalls
37+
.filter(path => path.parent.parent.value.type === 'Program')
38+
.filter(({ node }) => {
39+
if (j.Identifier.check(node.arguments[0])) {
40+
const plugin = node.arguments[0].name
41+
if (removablePlugins?.includes(plugin)) {
42+
removedPlugins.push(plugin)
43+
return true
44+
}
4245
}
43-
}
4446

45-
return false
46-
})
47+
return false
48+
})
4749

4850
removableUseCalls.remove()
4951

0 commit comments

Comments
 (0)