diff --git a/app/components/PackageMetricsBadges.vue b/app/components/PackageMetricsBadges.vue index 46689b51bd..e1535e4936 100644 --- a/app/components/PackageMetricsBadges.vue +++ b/app/components/PackageMetricsBadges.vue @@ -11,34 +11,19 @@ const { data: analysis } = usePackageAnalysis( () => props.version, ) -const moduleFormatLabel = computed(() => { - if (!analysis.value) return null - switch (analysis.value.moduleFormat) { - case 'esm': - return 'ESM' - case 'cjs': - return 'CJS' - case 'dual': - return 'CJS/ESM' - default: - return null - } +// ESM support +const hasEsm = computed(() => { + if (!analysis.value) return false + return analysis.value.moduleFormat === 'esm' || analysis.value.moduleFormat === 'dual' }) -const moduleFormatTooltip = computed(() => { - if (!analysis.value) return '' - switch (analysis.value.moduleFormat) { - case 'esm': - return $t('package.metrics.esm') - case 'cjs': - return $t('package.metrics.cjs') - case 'dual': - return $t('package.metrics.dual') - default: - return $t('package.metrics.unknown_format') - } +// CJS support (only show badge if present, omit if missing) +const hasCjs = computed(() => { + if (!analysis.value) return false + return analysis.value.moduleFormat === 'cjs' || analysis.value.moduleFormat === 'dual' }) +// Types support const hasTypes = computed(() => { if (!analysis.value) return false return analysis.value.types?.kind === 'included' || analysis.value.types?.kind === '@types' @@ -48,11 +33,11 @@ const typesTooltip = computed(() => { if (!analysis.value) return '' switch (analysis.value.types?.kind) { case 'included': - return $t('package.metrics.ts_included') + return $t('package.metrics.types_included') case '@types': - return $t('package.metrics.types_from', { package: analysis.value.types.packageName }) + return $t('package.metrics.types_available', { package: analysis.value.types.packageName }) default: - return '' + return $t('package.metrics.no_types') } }) @@ -68,29 +53,58 @@ const typesHref = computed(() => {