Skip to content

Commit cdca660

Browse files
committed
fix: split up dependency count and install size
1 parent 949c209 commit cdca660

File tree

1 file changed

+67
-42
lines changed

1 file changed

+67
-42
lines changed

app/pages/package-timeline/[[org]]/[packageName].vue

Lines changed: 67 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -110,13 +110,14 @@ if (import.meta.client) {
110110
}
111111
112112
interface VersionEvents {
113-
size?: {
113+
installSize?: {
114114
direction: 'increase' | 'decrease'
115115
sizeRatio: number
116116
sizeDelta: number
117+
}
118+
deps?: {
119+
direction: 'increase' | 'decrease'
117120
depDiff: number
118-
sizeThresholdExceeded: boolean
119-
depThresholdExceeded: boolean
120121
}
121122
license?: { from: string; to: string }
122123
esm?: 'added' | 'removed'
@@ -158,17 +159,18 @@ const versionEvents = computed(() => {
158159
const depsIncreased = depDiff > DEP_INCREASE_THRESHOLD
159160
const depsDecreased = depDiff < -DEP_INCREASE_THRESHOLD
160161
161-
if (sizeIncreased || sizeDecreased || depsIncreased || depsDecreased) {
162-
ev.size = {
163-
direction:
164-
(sizeDecreased || depsDecreased) && !sizeIncreased && !depsIncreased
165-
? 'decrease'
166-
: 'increase',
162+
if (sizeIncreased || sizeDecreased) {
163+
ev.installSize = {
164+
direction: sizeDecreased ? 'decrease' : 'increase',
167165
sizeRatio,
168166
sizeDelta: currentSize.totalSize - previousSize.totalSize,
167+
}
168+
}
169+
170+
if (depsIncreased || depsDecreased) {
171+
ev.deps = {
172+
direction: depsDecreased ? 'decrease' : 'increase',
169173
depDiff,
170-
sizeThresholdExceeded: sizeIncreased || sizeDecreased,
171-
depThresholdExceeded: depsIncreased || depsDecreased,
172174
}
173175
}
174176
}
@@ -190,7 +192,7 @@ const versionEvents = computed(() => {
190192
if (current.hasTypes && !previous.hasTypes) ev.types = 'added'
191193
else if (!current.hasTypes && previous.hasTypes) ev.types = 'removed'
192194
193-
if (ev.size || ev.license || ev.esm || ev.types) {
195+
if (ev.installSize || ev.deps || ev.license || ev.esm || ev.types) {
194196
events.set(current.version, ev)
195197
}
196198
}
@@ -258,20 +260,61 @@ useSeoMeta({
258260
class="relative border-s border-border/50 ms-3 mt-2"
259261
>
260262
<template v-for="(ev, _) in [versionEvents.get(entry.version)!]" :key="0">
261-
<!-- Size event -->
262-
<li v-if="ev.size" class="mb-2 ms-4 relative last:mb-0">
263+
<!-- Install size event -->
264+
<li v-if="ev.installSize" class="mb-2 ms-4 relative last:mb-0">
265+
<span
266+
class="absolute -start-[calc(1rem+0.375rem)] top-0.5 flex items-center justify-center w-3 h-3 rounded-full border"
267+
:class="
268+
ev.installSize.direction === 'decrease'
269+
? 'bg-green-500 border-green-600'
270+
: 'bg-amber-500 border-amber-600'
271+
"
272+
>
273+
<span
274+
class="w-2 h-2 text-white"
275+
:class="
276+
ev.installSize.direction === 'decrease'
277+
? 'i-lucide:trending-down'
278+
: 'i-lucide:trending-up'
279+
"
280+
aria-hidden="true"
281+
/>
282+
</span>
283+
<p
284+
class="text-xs"
285+
:class="
286+
ev.installSize.direction === 'decrease'
287+
? 'text-green-700 dark:text-green-400'
288+
: 'text-amber-700 dark:text-amber-400'
289+
"
290+
>
291+
{{
292+
ev.installSize.direction === 'decrease'
293+
? $t('package.timeline.size_decrease', {
294+
percent: Math.abs(Math.round(ev.installSize.sizeRatio * 100)),
295+
size: bytesFormatter.format(Math.abs(ev.installSize.sizeDelta)),
296+
})
297+
: $t('package.timeline.size_increase', {
298+
percent: Math.round(ev.installSize.sizeRatio * 100),
299+
size: bytesFormatter.format(ev.installSize.sizeDelta),
300+
})
301+
}}
302+
</p>
303+
</li>
304+
<!-- Dependency count event -->
305+
<li v-if="ev.deps" class="mb-2 ms-4 relative last:mb-0">
263306
<span
264307
class="absolute -start-[calc(1rem+0.375rem)] top-0.5 flex items-center justify-center w-3 h-3 rounded-full border"
265308
:class="
266-
ev.size.direction === 'decrease'
309+
ev.deps.direction === 'decrease'
267310
? 'bg-green-500 border-green-600'
268311
: 'bg-amber-500 border-amber-600'
269312
"
270313
>
271314
<span
272315
class="w-2 h-2 text-white"
273316
:class="
274-
ev.size.direction === 'decrease'
317+
ev.deps.direction === 'decrease'
275318
? 'i-lucide:trending-down'
276319
: 'i-lucide:trending-up'
277320
"
@@ -281,36 +324,18 @@ useSeoMeta({
281324
<p
282325
class="text-xs"
283326
:class="
284-
ev.size.direction === 'decrease'
327+
ev.deps.direction === 'decrease'
285328
? 'text-green-700 dark:text-green-400'
286329
: 'text-amber-700 dark:text-amber-400'
287330
"
288331
>
289-
<template v-if="ev.size.sizeThresholdExceeded">
290-
{{
291-
ev.size.direction === 'decrease'
292-
? $t('package.timeline.size_decrease', {
293-
percent: Math.abs(Math.round(ev.size.sizeRatio * 100)),
294-
size: bytesFormatter.format(Math.abs(ev.size.sizeDelta)),
295-
})
296-
: $t('package.timeline.size_increase', {
297-
percent: Math.round(ev.size.sizeRatio * 100),
298-
size: bytesFormatter.format(ev.size.sizeDelta),
299-
})
300-
}}
301-
</template>
302-
<template v-if="ev.size.sizeThresholdExceeded && ev.size.depThresholdExceeded">
303-
&middot;
304-
</template>
305-
<template v-if="ev.size.depThresholdExceeded">
306-
{{
307-
ev.size.depDiff > 0
308-
? $t('package.timeline.dep_increase', { count: ev.size.depDiff })
309-
: $t('package.timeline.dep_decrease', {
310-
count: Math.abs(ev.size.depDiff),
311-
})
312-
}}
313-
</template>
332+
{{
333+
ev.deps.depDiff > 0
334+
? $t('package.timeline.dep_increase', { count: ev.deps.depDiff })
335+
: $t('package.timeline.dep_decrease', {
336+
count: Math.abs(ev.deps.depDiff),
337+
})
338+
}}
314339
</p>
315340
</li>
316341
<!-- License change -->

0 commit comments

Comments
 (0)