Skip to content

Commit 6fda482

Browse files
committed
chore: resolve base imports
1 parent 17ae71b commit 6fda482

File tree

4 files changed

+39
-8
lines changed

4 files changed

+39
-8
lines changed

src/config.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ const allImports: PresetImport[] = [
3333
...allImportsWithStyle.map((name) => {
3434
return [name, getComponentPath(name)] as PresetImport
3535
}),
36+
]
37+
38+
const allBaseImports: PresetImport[] = [
3639
['ID_INJECTION_KEY', 'es/hooks/use-id/index.mjs'],
3740
['ZINDEX_INJECTION_KEY', 'es/hooks/use-z-index/index.mjs'],
3841
['provideGlobalConfig', 'es/components/config-provider/src/hooks/use-global-config.mjs']
@@ -103,6 +106,7 @@ export const defaults: ModuleOptions = {
103106
subComponents: allSubComponents,
104107
directives: allDirectives,
105108
imports: allImports,
109+
baseImports: allBaseImports,
106110
importStyle: 'css',
107111
themes: [],
108112
noStylesComponents: allNoStylesComponents,

src/core/imports.ts

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,34 @@
11
import { addImportsSources } from '@nuxt/kit'
22
import { iconLibraryName, libraryName } from '../config'
33
import { genIconPresets, resolvePath, toArray } from '../utils'
4-
import type { ModuleOptions } from '../types'
4+
import type { ModuleOptions, PresetImport } from '../types'
5+
6+
function _resolveImports(...imports: PresetImport[]) {
7+
imports.forEach(async ([name, path]) => {
8+
addImportsSources({
9+
from: await resolvePath(`${libraryName}/${path}`),
10+
imports: toArray(name)
11+
})
12+
})
13+
}
514

615
export async function resolveImports (config: ModuleOptions) {
716
const { imports, icon } = config
817
const icons = icon !== false ? genIconPresets(icon) : []
918
const allImports = new Set(imports)
1019
const allIcons = new Set(icons)
1120

12-
allImports.forEach(async ([name, path]) => {
13-
addImportsSources({
14-
from: await resolvePath(`${libraryName}/${path}`),
15-
imports: toArray(name)
16-
})
17-
})
21+
_resolveImports(...allImports)
1822

1923
addImportsSources({
2024
from: await resolvePath(iconLibraryName),
2125
imports: [...allIcons]
2226
})
2327
}
28+
29+
export function resolveBaseImports(config: ModuleOptions) {
30+
const { baseImports } = config
31+
32+
_resolveImports(...baseImports)
33+
}
34+

src/module.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ import {
1111
resolveTeleports,
1212
resolveThemes,
1313
transformPlugin,
14-
localePlugin
14+
localePlugin,
15+
resolveBaseImports,
1516
} from './core/index'
1617
import type { ModuleOptions } from './types'
1718
export type { ModuleOptions } from './types'
@@ -30,6 +31,7 @@ export default defineNuxtModule<ModuleOptions>({
3031

3132
resolveOptions()
3233
resolveThemes(options)
34+
resolveBaseImports(options)
3335
nuxt.options.imports.autoImport !== false && resolveImports(options)
3436
nuxt.options.components !== false && resolveComponents(options)
3537

src/types.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,20 @@ export interface ModuleOptions extends TransformOptions {
7171
* ```
7272
*/
7373
imports: PresetImport[]
74+
/**
75+
*
76+
* List of imports that will be imported whether if autoImports is disabled.
77+
*
78+
* @default
79+
* ```ts
80+
* [
81+
* ["ID_INJECTION_KEY", "es/hooks/use-id/index.mjs"],
82+
* ["ZINDEX_INJECTION_KEY", "es/hooks/use-z-index/index.mjs"],
83+
* ["provideGlobalConfig", "es/components/config-provider/src/hooks/use-global-config.mjs"],
84+
* ]
85+
* ```
86+
*/
87+
baseImports: PresetImport[]
7488
/**
7589
* import style css or sass(scss) with components
7690
*

0 commit comments

Comments
 (0)