Skip to content

Commit 3ecdead

Browse files
authored
fix: default to only resolve components (#193)
1 parent bb6dbeb commit 3ecdead

File tree

3 files changed

+16
-8
lines changed

3 files changed

+16
-8
lines changed

src/core/helpers/libraryResolver.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import fs from 'fs'
22
import { dirname, join } from 'path'
33
import Debug from 'debug'
4-
import { ComponentResolver, UILibraryOptions } from '../../types'
4+
import { ComponentResolverObject, UILibraryOptions } from '../../types'
55
import { camelCase, kebabCase, resolveImportPath } from '../utils'
66

77
const debug = Debug('unplugin-vue-components:helper:library')
@@ -26,7 +26,7 @@ export function tryLoadVeturTags(name: string): string[] | undefined {
2626
}
2727
}
2828

29-
export function LibraryResolver(options: UILibraryOptions): ComponentResolver {
29+
export function LibraryResolver(options: UILibraryOptions): ComponentResolverObject {
3030
const {
3131
name: libraryName,
3232
entries = tryLoadVeturTags(options.name),

src/core/options.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { join, resolve } from 'path'
22
import { slash, toArray } from '@antfu/utils'
33
import { isPackageExists } from 'local-pkg'
4-
import { ResolvedOptions, Options } from '../types'
4+
import { ResolvedOptions, Options, ComponentResolver, ComponentResolverObject } from '../types'
55
import { LibraryResolver } from './helpers/libraryResolver'
66

77
export const defaultOptions: Omit<Required<Options>, 'include' | 'exclude' | 'transformer' | 'globs' |'directives'> = {
@@ -21,10 +21,14 @@ export const defaultOptions: Omit<Required<Options>, 'include' | 'exclude' | 'tr
2121
allowOverrides: false,
2222
}
2323

24+
function normalizeResolvers(resolvers: (ComponentResolver | ComponentResolver[])[]): ComponentResolverObject[] {
25+
return toArray(resolvers).flat().map(r => typeof r === 'function' ? { resolve: r, type: 'component' } : r)
26+
}
27+
2428
export function resolveOptions(options: Options, root: string): ResolvedOptions {
2529
const resolved = Object.assign({}, defaultOptions, options) as ResolvedOptions
2630
resolved.libraries = toArray(resolved.libraries).map(i => typeof i === 'string' ? { name: i } : i)
27-
resolved.resolvers = toArray(resolved.resolvers).flat()
31+
resolved.resolvers = normalizeResolvers(resolved.resolvers)
2832
resolved.resolvers.push(...resolved.libraries.map(lib => LibraryResolver(lib)))
2933
resolved.extensions = toArray(resolved.extensions)
3034

@@ -60,7 +64,9 @@ export function resolveOptions(options: Options, root: string): ResolvedOptions
6064
resolved.transformer = options.transformer || getVueVersion() || 'vue3'
6165
resolved.directives = (typeof options.directives === 'boolean')
6266
? options.directives
63-
: getVueVersion() === 'vue3'
67+
: !resolved.resolvers.some(i => i.type === 'directive')
68+
? false
69+
: getVueVersion() === 'vue3'
6470

6571
return resolved
6672
}

src/types.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,12 @@ export interface ComponentInfo extends ImportInfo {
1616

1717
export type ComponentResolveResult = Awaitable<string | ComponentInfo | null | undefined | void>
1818

19-
export type ComponentResolver = {
19+
export type ComponentResolverFunction = (name: string) => ComponentResolveResult
20+
export type ComponentResolverObject = {
2021
type: 'component' | 'directive'
21-
resolve: (name: string) => ComponentResolveResult
22+
resolve: ComponentResolverFunction
2223
}
24+
export type ComponentResolver = ComponentResolverFunction | ComponentResolverObject
2325
export interface UILibraryOptions {
2426
name: string
2527
prefix?: string
@@ -142,7 +144,7 @@ export type ResolvedOptions = Omit<
142144
Required<Options>,
143145
'resolvers'|'libraries'|'extensions'|'dirs'|'globalComponentsDeclaration'
144146
> & {
145-
resolvers: ComponentResolver[]
147+
resolvers: ComponentResolverObject[]
146148
libraries: UILibraryOptions[]
147149
extensions: string[]
148150
dirs: string[]

0 commit comments

Comments
 (0)