版博士V2.0程序
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

resolvers.ts 887 B

2 jaren geleden
1234567891011121314151617181920212223242526272829
  1. import { isPackageExists } from 'local-pkg'
  2. import type { Resolver } from 'unplugin-auto-import/types'
  3. import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
  4. import type { ComponentResolver } from 'unplugin-vue-components/types'
  5. type Arrayable<T> = T | Array<T>
  6. type Resolvers = Arrayable<Arrayable<Resolver>>
  7. export const AutoImportResolvers: Resolvers = [ElementPlusResolver()]
  8. interface Options {
  9. onlyExist?: [Arrayable<ComponentResolver>, string][]
  10. include?: ComponentResolver[]
  11. }
  12. export const normalizeResolvers = (options: Options = {}) => {
  13. const { onlyExist = [], include = [] } = options
  14. const existedResolvers = []
  15. for (let i = 0; i < onlyExist.length; i++) {
  16. const [resolver, packageName] = onlyExist[i]
  17. if (isPackageExists(packageName)) {
  18. existedResolvers.push(resolver)
  19. }
  20. }
  21. existedResolvers.push(...include)
  22. return existedResolvers
  23. }