Skip to content

Commit 4ef7e21

Browse files
authored
feat(vite): packages info for session compare (#162)
1 parent 9bbe587 commit 4ef7e21

File tree

2 files changed

+35
-6
lines changed

2 files changed

+35
-6
lines changed
-4.53 KB
Loading

packages/vite/src/app/pages/compare/[sessions]/index.vue

Lines changed: 35 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,31 @@ const params = useRoute().params as {
1111
1212
const rpc = useRpc()
1313
const sessions = ref<SessionCompareContext[]>([])
14+
const packages = ref<{ total: number, duplicated: number }[]>([])
15+
16+
async function getPackages(id: string) {
17+
const packages = await rpc.value.call('vite:rolldown:get-packages', { session: id })
18+
const duplicatedPackages = packages.filter(p => p.duplicated)
19+
return {
20+
total: packages.length,
21+
duplicated: duplicatedPackages.length,
22+
}
23+
}
1424
1525
onMounted(async () => {
1626
isLoading.value = true
27+
const sessionIds = params.sessions.split(',')
1728
18-
const summary = await rpc.value.call(
19-
'vite:rolldown:get-session-compare-summary',
20-
{ sessions: params.sessions.split(',') },
21-
)
29+
const [summary, ..._packages] = await Promise.all([
30+
rpc.value.call(
31+
'vite:rolldown:get-session-compare-summary',
32+
{ sessions: sessionIds },
33+
),
34+
...sessionIds.map(id => getPackages(id)),
35+
])
2236
2337
sessions.value = summary
38+
packages.value = _packages
2439
2540
isLoading.value = false
2641
})
@@ -60,6 +75,20 @@ const comparisonMetrics = computed(() => {
6075
current: sessionB?.modules ?? 0,
6176
previous: sessionA?.modules ?? 0,
6277
},
78+
{
79+
name: 'Packages',
80+
description: 'Total number of packages',
81+
icon: 'i-ph-package-duotone',
82+
current: packages.value?.[1]?.total ?? 0,
83+
previous: packages.value?.[0]?.total ?? 0,
84+
},
85+
{
86+
name: 'Duplicated Packages',
87+
description: 'Total number of duplicated packages',
88+
icon: 'i-ph-package-duotone',
89+
current: packages.value?.[1]?.duplicated ?? 0,
90+
previous: packages.value?.[0]?.duplicated ?? 0,
91+
},
6392
{
6493
name: 'Plugins',
6594
description: 'Total number of plugins',
@@ -100,8 +129,8 @@ const comparisonMetrics = computed(() => {
100129
</div>
101130
<!-- meta info -->
102131
<CompareSessionMeta :sessions="normalizedSessions" />
103-
<div grid="~ cols-4 gap5" w-full pt3>
104-
<div v-for="(item, index) of comparisonMetrics" :key="item.name" :class="index < 2 ? 'col-span-2' : 'col-span-1'" border="~ base rounded" p4 flex="~ col" gap2>
132+
<div grid="~ cols-6 gap5" w-full pt3>
133+
<div v-for="(item, index) of comparisonMetrics" :key="item.name" :class="index < 2 ? 'col-span-3' : 'col-span-2'" border="~ base rounded" p4 flex="~ col" gap2>
105134
<CompareMetricCard v-bind="item" />
106135
</div>
107136
</div>

0 commit comments

Comments
 (0)