@@ -9,6 +9,7 @@ export interface VarletUIResolverOptions {
9
9
* @default 'vue3'
10
10
*/
11
11
version ?: 'vue3' | 'vue2'
12
+
12
13
/**
13
14
* import style along with components
14
15
*
@@ -23,6 +24,13 @@ export interface VarletUIResolverOptions {
23
24
*/
24
25
directives ?: boolean
25
26
27
+ /**
28
+ * compatible with unplugin-auto-import
29
+ *
30
+ * @default false
31
+ */
32
+ autoImport ?: boolean
33
+
26
34
/**
27
35
* @deprecated use `importStyle: 'css'` instead
28
36
*/
@@ -34,11 +42,15 @@ export interface VarletUIResolverOptions {
34
42
importLess ?: boolean
35
43
}
36
44
45
+ const varFunctions = [ 'Snackbar' , 'Picker' , 'ActionSheet' , 'Dialog' , 'Locale' , 'StyleProvider' ]
46
+ const varDirectives = [ 'Ripple' , 'Lazy' ]
47
+
37
48
export function getResolved ( name : string , options : VarletUIResolverOptions ) : ComponentResolveResult {
38
49
const {
39
50
importStyle = 'css' ,
40
51
importCss = true ,
41
52
importLess,
53
+ autoImport = false ,
42
54
version = 'vue3' ,
43
55
} = options
44
56
@@ -54,13 +66,11 @@ export function getResolved(name: string, options: VarletUIResolverOptions): Com
54
66
55
67
return {
56
68
from : path ,
57
- name : `_${ name } Component` ,
69
+ name : autoImport ? name : `_${ name } Component` ,
58
70
sideEffects,
59
71
}
60
72
}
61
73
62
- const varDirectives = [ 'Ripple' , 'Lazy' ]
63
-
64
74
/**
65
75
* Resolver for VarletUI
66
76
*
@@ -72,6 +82,11 @@ export function VarletUIResolver(options: VarletUIResolverOptions = {}): Compone
72
82
{
73
83
type : 'component' ,
74
84
resolve : ( name : string ) => {
85
+ const { autoImport = false } = options
86
+
87
+ if ( autoImport && varFunctions . includes ( name ) )
88
+ return getResolved ( name , options )
89
+
75
90
if ( name . startsWith ( 'Var' ) )
76
91
return getResolved ( name . slice ( 3 ) , options )
77
92
} ,
0 commit comments