@@ -5,7 +5,7 @@ const sortObject = require('./util/sortObject')
5
5
const writeFileTree = require ( './util/writeFileTree' )
6
6
const inferRootOptions = require ( './util/inferRootOptions' )
7
7
const normalizeFilePaths = require ( './util/normalizeFilePaths' )
8
- const injectImportsAndOptions = require ( './util/injectImportsAndOptions ' )
8
+ const runCodemod = require ( './util/runCodemod ' )
9
9
const { toShortPluginId, matchesPluginId } = require ( '@vue/cli-shared-utils' )
10
10
const ConfigTransform = require ( './ConfigTransform' )
11
11
@@ -215,11 +215,25 @@ module.exports = class Generator {
215
215
216
216
// handle imports and root option injections
217
217
Object . keys ( files ) . forEach ( file => {
218
- files [ file ] = injectImportsAndOptions (
219
- files [ file ] ,
220
- this . imports [ file ] ,
221
- this . rootOptions [ file ]
222
- )
218
+ let imports = this . imports [ file ]
219
+ imports = imports instanceof Set ? Array . from ( imports ) : imports
220
+ if ( imports && imports . length > 0 ) {
221
+ files [ file ] = runCodemod (
222
+ require ( './util/codemods/injectImports' ) ,
223
+ { path : file , source : files [ file ] } ,
224
+ { imports }
225
+ )
226
+ }
227
+
228
+ let injections = this . rootOptions [ file ]
229
+ injections = injections instanceof Set ? Array . from ( injections ) : injections
230
+ if ( injections && injections . length > 0 ) {
231
+ files [ file ] = runCodemod (
232
+ require ( './util/codemods/injectOptions' ) ,
233
+ { path : file , source : files [ file ] } ,
234
+ { injections }
235
+ )
236
+ }
223
237
} )
224
238
225
239
for ( const postProcess of this . postProcessFilesCbs ) {
0 commit comments