From 4657fe8ccc912eec11f1c5e65d1138699fae598d Mon Sep 17 00:00:00 2001 From: zernonia Date: Mon, 6 Nov 2023 12:12:54 +0800 Subject: [PATCH] fix: missing dependencies after import --- apps/www/__registry__/index.ts | 24 +++++++++---------- apps/www/src/lib/registry/registry.ts | 11 ++++++++- apps/www/src/public/registry/index.json | 11 ++++++--- .../registry/styles/default/calendar.json | 3 ++- .../public/registry/styles/default/input.json | 4 +++- .../registry/styles/default/textarea.json | 4 +++- .../registry/styles/new-york/calendar.json | 3 ++- .../registry/styles/new-york/input.json | 4 +++- .../registry/styles/new-york/textarea.json | 4 +++- 9 files changed, 46 insertions(+), 22 deletions(-) diff --git a/apps/www/__registry__/index.ts b/apps/www/__registry__/index.ts index 61fbc8ca..68423122 100644 --- a/apps/www/__registry__/index.ts +++ b/apps/www/__registry__/index.ts @@ -615,22 +615,22 @@ export const Index = { name: 'ActivityGoal', type: 'components:example', registryDependencies: ['button', 'card', 'themes', 'config'], - component: () => import('../src/lib/registry/default/example/Cards/ActivityGoal.vue').then(m => m.default), - files: ['../src/lib/registry/default/example/Cards/ActivityGoal.vue'], + component: () => import('../src/lib/registry/default/example/ActivityGoal.vue').then(m => m.default), + files: ['../src/lib/registry/default/example/ActivityGoal.vue'], }, DataTable: { name: 'DataTable', type: 'components:example', registryDependencies: ['button', 'checkbox', 'dropdown-menu', 'input', 'table', 'card', 'utils'], - component: () => import('../src/lib/registry/default/example/Cards/DataTable.vue').then(m => m.default), - files: ['../src/lib/registry/default/example/Cards/DataTable.vue'], + component: () => import('../src/lib/registry/default/example/DataTable.vue').then(m => m.default), + files: ['../src/lib/registry/default/example/DataTable.vue'], }, Metric: { name: 'Metric', type: 'components:example', registryDependencies: ['card', 'config'], - component: () => import('../src/lib/registry/default/example/Cards/Metric.vue').then(m => m.default), - files: ['../src/lib/registry/default/example/Cards/Metric.vue'], + component: () => import('../src/lib/registry/default/example/Metric.vue').then(m => m.default), + files: ['../src/lib/registry/default/example/Metric.vue'], }, }, 'new-york': { @@ -1247,22 +1247,22 @@ export const Index = { name: 'ActivityGoal', type: 'components:example', registryDependencies: ['button', 'card', 'themes', 'config'], - component: () => import('../src/lib/registry/new-york/example/Cards/ActivityGoal.vue').then(m => m.default), - files: ['../src/lib/registry/new-york/example/Cards/ActivityGoal.vue'], + component: () => import('../src/lib/registry/new-york/example/ActivityGoal.vue').then(m => m.default), + files: ['../src/lib/registry/new-york/example/ActivityGoal.vue'], }, DataTable: { name: 'DataTable', type: 'components:example', registryDependencies: ['button', 'checkbox', 'dropdown-menu', 'input', 'table', 'card', 'utils'], - component: () => import('../src/lib/registry/new-york/example/Cards/DataTable.vue').then(m => m.default), - files: ['../src/lib/registry/new-york/example/Cards/DataTable.vue'], + component: () => import('../src/lib/registry/new-york/example/DataTable.vue').then(m => m.default), + files: ['../src/lib/registry/new-york/example/DataTable.vue'], }, Metric: { name: 'Metric', type: 'components:example', registryDependencies: ['card', 'config'], - component: () => import('../src/lib/registry/new-york/example/Cards/Metric.vue').then(m => m.default), - files: ['../src/lib/registry/new-york/example/Cards/Metric.vue'], + component: () => import('../src/lib/registry/new-york/example/Metric.vue').then(m => m.default), + files: ['../src/lib/registry/new-york/example/Metric.vue'], }, }, } diff --git a/apps/www/src/lib/registry/registry.ts b/apps/www/src/lib/registry/registry.ts index 748d46d9..959c5f21 100644 --- a/apps/www/src/lib/registry/registry.ts +++ b/apps/www/src/lib/registry/registry.ts @@ -6,10 +6,15 @@ import type { Registry } from '../../lib/registry' const DEPENDENCIES = new Map([ ['radix-vue', []], + ['@vueuse/core', []], ['v-calendar', []], ['@tanstack/vue-table', []], ['vee-validate', ['@vee-validate/zod', 'zod']], ]) +// Some dependencies latest tag were not compatible with Vue3. +const DEPENDENCIES_WITH_TAGS = new Map([ + ['v-calendar', 'v-calendar@next'], +]) const REGISTRY_DEPENDENCY = '@/' type ArrayItem = T extends Array ? X : never @@ -139,8 +144,12 @@ async function getDependencies(filename: string) { Object.values(compiled.imports!).forEach((value) => { const source = value.source const peerDeps = DEPENDENCIES.get(source) + const taggedDeps = DEPENDENCIES_WITH_TAGS.get(source) if (peerDeps !== undefined) { - dependencies.add(source) + if (taggedDeps !== undefined) + dependencies.add(taggedDeps) + else + dependencies.add(source) peerDeps.forEach(dep => dependencies.add(dep)) } diff --git a/apps/www/src/public/registry/index.json b/apps/www/src/public/registry/index.json index 328d58fd..6ea8e2e7 100644 --- a/apps/www/src/public/registry/index.json +++ b/apps/www/src/public/registry/index.json @@ -108,7 +108,8 @@ { "name": "calendar", "dependencies": [ - "v-calendar" + "@vueuse/core", + "v-calendar@next" ], "registryDependencies": [ "utils" @@ -302,7 +303,9 @@ }, { "name": "input", - "dependencies": [], + "dependencies": [ + "@vueuse/core" + ], "registryDependencies": [ "utils" ], @@ -590,7 +593,9 @@ }, { "name": "textarea", - "dependencies": [], + "dependencies": [ + "@vueuse/core" + ], "registryDependencies": [ "utils" ], diff --git a/apps/www/src/public/registry/styles/default/calendar.json b/apps/www/src/public/registry/styles/default/calendar.json index c68836fc..c7900517 100644 --- a/apps/www/src/public/registry/styles/default/calendar.json +++ b/apps/www/src/public/registry/styles/default/calendar.json @@ -1,7 +1,8 @@ { "name": "calendar", "dependencies": [ - "v-calendar" + "@vueuse/core", + "v-calendar@next" ], "registryDependencies": [ "utils" diff --git a/apps/www/src/public/registry/styles/default/input.json b/apps/www/src/public/registry/styles/default/input.json index 18fff2de..9aff41dc 100644 --- a/apps/www/src/public/registry/styles/default/input.json +++ b/apps/www/src/public/registry/styles/default/input.json @@ -1,6 +1,8 @@ { "name": "input", - "dependencies": [], + "dependencies": [ + "@vueuse/core" + ], "registryDependencies": [ "utils" ], diff --git a/apps/www/src/public/registry/styles/default/textarea.json b/apps/www/src/public/registry/styles/default/textarea.json index 66db3556..78d5ea2f 100644 --- a/apps/www/src/public/registry/styles/default/textarea.json +++ b/apps/www/src/public/registry/styles/default/textarea.json @@ -1,6 +1,8 @@ { "name": "textarea", - "dependencies": [], + "dependencies": [ + "@vueuse/core" + ], "registryDependencies": [ "utils" ], diff --git a/apps/www/src/public/registry/styles/new-york/calendar.json b/apps/www/src/public/registry/styles/new-york/calendar.json index 20c70f6f..129f9fcd 100644 --- a/apps/www/src/public/registry/styles/new-york/calendar.json +++ b/apps/www/src/public/registry/styles/new-york/calendar.json @@ -1,7 +1,8 @@ { "name": "calendar", "dependencies": [ - "v-calendar" + "@vueuse/core", + "v-calendar@next" ], "registryDependencies": [ "utils" diff --git a/apps/www/src/public/registry/styles/new-york/input.json b/apps/www/src/public/registry/styles/new-york/input.json index e26c8877..7bce11f9 100644 --- a/apps/www/src/public/registry/styles/new-york/input.json +++ b/apps/www/src/public/registry/styles/new-york/input.json @@ -1,6 +1,8 @@ { "name": "input", - "dependencies": [], + "dependencies": [ + "@vueuse/core" + ], "registryDependencies": [ "utils" ], diff --git a/apps/www/src/public/registry/styles/new-york/textarea.json b/apps/www/src/public/registry/styles/new-york/textarea.json index dd29f891..1f8441be 100644 --- a/apps/www/src/public/registry/styles/new-york/textarea.json +++ b/apps/www/src/public/registry/styles/new-york/textarea.json @@ -1,6 +1,8 @@ { "name": "textarea", - "dependencies": [], + "dependencies": [ + "@vueuse/core" + ], "registryDependencies": [ "utils" ],