File tree 4 files changed +92
-0
lines changed
generator/codemods/global-api
4 files changed +92
-0
lines changed Original file line number Diff line number Diff line change @@ -11,6 +11,9 @@ module.exports = function(fileInfo, api) {
11
11
require ( './remove-production-tip' ) ( context )
12
12
require ( './remove-vue-use' ) ( context )
13
13
require ( './remove-contextual-h' ) ( context )
14
+ require ( './next-tick' ) ( context )
15
+ require ( './observable' ) ( context )
16
+ require ( './version' ) ( context )
14
17
15
18
// remove extraneous imports
16
19
const removeExtraneousImport = require ( '../utils/remove-extraneous-import' )
Original file line number Diff line number Diff line change
1
+ /**
2
+ * @param {Object } context
3
+ * @param {import('jscodeshift').JSCodeshift } context.j
4
+ * @param {ReturnType<import('jscodeshift').Core> } context.root
5
+ */
6
+ module . exports = function createAppMount ( context ) {
7
+ const { j, root } = context
8
+
9
+ // Vue.nextTick(() => {})
10
+ const nextTickCalls = root . find ( j . CallExpression , n => {
11
+ return (
12
+ n . callee . type === 'MemberExpression' &&
13
+ n . callee . property . name === 'nextTick' &&
14
+ n . callee . object . name === 'Vue'
15
+ )
16
+ } )
17
+
18
+ if ( ! nextTickCalls . length ) {
19
+ return
20
+ }
21
+
22
+ const addImport = require ( '../utils/add-import' )
23
+ addImport ( context , { imported : 'nextTick' } , 'vue' )
24
+
25
+ nextTickCalls . replaceWith ( ( { node } ) => {
26
+ const el = node . arguments [ 0 ]
27
+
28
+ return j . callExpression ( j . identifier ( 'nextTick' ) , [ el ] )
29
+ } )
30
+ }
Original file line number Diff line number Diff line change
1
+ /**
2
+ * @param {Object } context
3
+ * @param {import('jscodeshift').JSCodeshift } context.j
4
+ * @param {ReturnType<import('jscodeshift').Core> } context.root
5
+ */
6
+ module . exports = function createAppMount ( context ) {
7
+ const { j, root } = context
8
+
9
+ // Vue.observable(state)
10
+ const observableCalls = root . find ( j . CallExpression , n => {
11
+ return (
12
+ n . callee . type === 'MemberExpression' &&
13
+ n . callee . property . name === 'observable' &&
14
+ n . callee . object . name === 'Vue'
15
+ )
16
+ } )
17
+
18
+ if ( ! observableCalls . length ) {
19
+ return
20
+ }
21
+
22
+ const addImport = require ( '../utils/add-import' )
23
+ addImport ( context , { imported : 'reactive' } , 'vue' )
24
+
25
+ observableCalls . replaceWith ( ( { node } ) => {
26
+ const el = node . arguments [ 0 ]
27
+
28
+ return j . callExpression ( j . identifier ( 'reactive' ) , [ el ] )
29
+ } )
30
+ }
Original file line number Diff line number Diff line change
1
+ /**
2
+ * @param {Object } context
3
+ * @param {import('jscodeshift').JSCodeshift } context.j
4
+ * @param {ReturnType<import('jscodeshift').Core> } context.root
5
+ */
6
+ module . exports = function createAppMount ( context ) {
7
+ const { j, root } = context
8
+
9
+ // Vue.version
10
+ const versionCalls = root . find ( j . MemberExpression , n => {
11
+ return (
12
+ n . property . name === 'version' &&
13
+ n . object . name === 'Vue'
14
+ )
15
+ } )
16
+
17
+ if ( ! versionCalls . length ) {
18
+ return
19
+ }
20
+
21
+ const addImport = require ( '../utils/add-import' )
22
+ addImport ( context , { imported : 'version' } , 'vue' )
23
+
24
+ versionCalls . replaceWith ( ( { node } ) => {
25
+ const property = node . property . name
26
+
27
+ return j . identifier ( property )
28
+ } )
29
+ }
You can’t perform that action at this time.
0 commit comments