Skip to content

Commit

Permalink
fix(AutoGenerateImports): avoiding dependency conflicts
Browse files Browse the repository at this point in the history
  • Loading branch information
markthree committed Sep 10, 2023
1 parent 0dfe7c7 commit 8b53749
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 12 deletions.
42 changes: 31 additions & 11 deletions examples/vue/src/auto-imports.d.ts
Original file line number Diff line number Diff line change
@@ -1,24 +1,37 @@
// Generated by 'unplugin-auto-import'
// We suggest you to commit this file into source control
/* eslint-disable */
/* prettier-ignore */
// @ts-nocheck
// noinspection JSUnusedGlobalSymbols
// Generated by unplugin-auto-import
export {}
declare global {
const $: typeof import('vue/macros')['$']
const $$: typeof import('vue/macros')['$$']
const $computed: typeof import('vue/macros')['$computed']
const $customRef: typeof import('vue/macros')['$customRef']
const $ref: typeof import('vue/macros')['$ref']
const $shallowRef: typeof import('vue/macros')['$shallowRef']
const $toRef: typeof import('vue/macros')['$toRef']
const EffectScope: typeof import('vue')['EffectScope']
const acceptHMRUpdate: typeof import('pinia')['acceptHMRUpdate']
const bar: typeof import('/Code/Work/vite-auto-import-resolvers/examples/vue/shared/bar')['default']
const bar: typeof import('../shared/bar')['default']
const computed: typeof import('vue')['computed']
const counterStore: typeof import('/Code/Work/vite-auto-import-resolvers/examples/vue/src/stores/counterStore')['default']
const counterStore: typeof import('./stores/counterStore')['default']
const createApp: typeof import('vue')['createApp']
const createPinia: typeof import('pinia')['createPinia']
const customRef: typeof import('vue')['customRef']
const defineAsyncComponent: typeof import('vue')['defineAsyncComponent']
const defineComponent: typeof import('vue')['defineComponent']
const defineStore: typeof import('pinia')['defineStore']
const effectScope: typeof import('vue')['effectScope']
const EffectScope: typeof import('vue')['EffectScope']
const foo: typeof import('/Code/Work/vite-auto-import-resolvers/examples/vue/shared/foo')['default']
const foo: typeof import('../shared/foo')['default']
const getActivePinia: typeof import('pinia')['getActivePinia']
const getCurrentInstance: typeof import('vue')['getCurrentInstance']
const getCurrentScope: typeof import('vue')['getCurrentScope']
const h: typeof import('vue')['h']
const inject: typeof import('vue')['inject']
const isProxy: typeof import('vue')['isProxy']
const isReactive: typeof import('vue')['isReactive']
const isReadonly: typeof import('vue')['isReadonly']
const isRef: typeof import('vue')['isRef']
const mapActions: typeof import('pinia')['mapActions']
Expand Down Expand Up @@ -55,17 +68,24 @@ declare global {
const toRaw: typeof import('vue')['toRaw']
const toRef: typeof import('vue')['toRef']
const toRefs: typeof import('vue')['toRefs']
const toValue: typeof import('vue')['toValue']
const triggerRef: typeof import('vue')['triggerRef']
const unref: typeof import('vue')['unref']
const useAttrs: typeof import('vue')['useAttrs']
const useBar: typeof import('/Code/Work/vite-auto-import-resolvers/examples/vue/src/composables/useBar')['default']
const useBar: typeof import('./composables/useBar')['default']
const useCssModule: typeof import('vue')['useCssModule']
const useCssVars: typeof import('vue')['useCssVars']
const useFoo: typeof import('/Code/Work/vite-auto-import-resolvers/examples/vue/src/composables/useFoo')['default']
const useJack: typeof import('/Code/Work/vite-auto-import-resolvers/examples/vue/src/composables/use-jack')['default']
const useK: typeof import('/Code/Work/vite-auto-import-resolvers/examples/vue/src/composables/use-k')['default']
const useFoo: typeof import('./composables/useFoo')['default']
const useJack: typeof import('./composables/use-jack')['default']
const useK: typeof import('./composables/use-k')['default']
const useSlots: typeof import('vue')['useSlots']
const watch: typeof import('vue')['watch']
const watchEffect: typeof import('vue')['watchEffect']
const watchPostEffect: typeof import('vue')['watchPostEffect']
const watchSyncEffect: typeof import('vue')['watchSyncEffect']
}
// for type re-export
declare global {
// @ts-ignore
export type { Component, ComponentPublicInstance, ComputedRef, InjectionKey, PropType, Ref, VNode, WritableComputedRef } from 'vue'
}
export {}
15 changes: 14 additions & 1 deletion src/auto.ts
Original file line number Diff line number Diff line change
Expand Up @@ -58,14 +58,27 @@ export const AutoGenerateImports = (
],
exclude = [],
} = options || {};
return include.filter((preset: any) => {
const presets = include.filter((preset: any) => {
if (exclude.includes(preset)) {
return false;
}
return isPackageExists(preset);
});
if (presets.includes('vue') && presets.includes("vue-demi")) {
deleteArrayItem(presets, 'vue-demi')
}
return presets
};


function deleteArrayItem<T = unknown>(arr: T[], item: T) {
const index = arr.findIndex(v => v === item)
if (index !== -1) {
arr.splice(index, 1)
}
}


export const vue3Presets = [
'vue',
'vuex',
Expand Down

0 comments on commit 8b53749

Please sign in to comment.