@@ -4,20 +4,37 @@ import { readFileSync } from 'node:fs'
44import { quasarPath } from './quasar-path.js'
55import { mapQuasarImports , removeQuasarImports , importTransformation } from './js-transform.js'
66
7- const autoImportData = JSON . parse (
8- readFileSync ( join ( quasarPath , 'dist/transforms/auto-import.json' ) , 'utf-8' )
9- )
10-
11- const compRegex = {
12- kebab : new RegExp ( `_resolveComponent\\("${ autoImportData . regex . kebabComponents } "\\)` , 'g' ) ,
13- pascal : new RegExp ( `_resolveComponent\\("${ autoImportData . regex . pascalComponents } "\\)` , 'g' ) ,
14- combined : new RegExp ( `_resolveComponent\\("${ autoImportData . regex . components } "\\)` , 'g' )
7+ let transformState
8+ function useTransformState ( ) {
9+ if ( transformState !== void 0 ) {
10+ return transformState
11+ }
12+
13+ const autoImportData = JSON . parse (
14+ readFileSync ( join ( quasarPath , 'dist/transforms/auto-import.json' ) , 'utf-8' )
15+ )
16+
17+ const compRegex = {
18+ kebab : new RegExp ( `_resolveComponent\\("${ autoImportData . regex . kebabComponents } "\\)` , 'g' ) ,
19+ pascal : new RegExp ( `_resolveComponent\\("${ autoImportData . regex . pascalComponents } "\\)` , 'g' ) ,
20+ combined : new RegExp ( `_resolveComponent\\("${ autoImportData . regex . components } "\\)` , 'g' )
21+ }
22+
23+ const dirRegex = new RegExp ( `_resolveDirective\\("${ autoImportData . regex . directives . replace ( / v - / g, '' ) } "\\)` , 'g' )
24+
25+ transformState = {
26+ autoImportData,
27+ compRegex,
28+ dirRegex
29+ }
30+ return transformState
1531}
1632
17- const dirRegex = new RegExp ( `_resolveDirective\\("${ autoImportData . regex . directives . replace ( / v - / g, '' ) } "\\)` , 'g' )
1833const lengthSortFn = ( a , b ) => b . length - a . length
1934
2035export function vueTransform ( content , autoImportComponentCase , useTreeshaking ) {
36+ const { autoImportData, compRegex, dirRegex } = useTransformState ( )
37+
2138 const importSet = new Set ( )
2239 const importMap = { }
2340
0 commit comments