From 46edf522b1bf991749de19980fbfe3c804492372 Mon Sep 17 00:00:00 2001 From: norbiros Date: Fri, 26 Jun 2026 16:52:46 +0200 Subject: [PATCH 1/3] fix: clarify module package links --- app/components/module/ModuleItem.vue | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/components/module/ModuleItem.vue b/app/components/module/ModuleItem.vue index 21062cf3a..5f2cb0c2c 100644 --- a/app/components/module/ModuleItem.vue +++ b/app/components/module/ModuleItem.vue @@ -86,10 +86,16 @@ const items = computed(() => [ target: '_blank' }, { - label: 'View on npm', + label: 'View downloads', icon: 'i-lucide-package', to: `https://npm.chart.dev/${props.module.npm}`, target: '_blank' + }, + { + label: 'View on npm', + icon: 'i-simple-icons-npm', + to: `https://www.npmjs.com/package/${props.module.npm}`, + target: '_blank' } ] ]) From b4a691a5c9ecaedb9a42415418888f6dd906b3f6 Mon Sep 17 00:00:00 2001 From: norbiros Date: Fri, 26 Jun 2026 16:53:35 +0200 Subject: [PATCH 2/3] feat: add npmx module links --- app/components/module/ModuleItem.vue | 6 ++++++ app/pages/modules/[slug].vue | 5 +++++ server/routes/raw/modules.md.get.ts | 3 ++- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/app/components/module/ModuleItem.vue b/app/components/module/ModuleItem.vue index 5f2cb0c2c..d952d593f 100644 --- a/app/components/module/ModuleItem.vue +++ b/app/components/module/ModuleItem.vue @@ -96,6 +96,12 @@ const items = computed(() => [ icon: 'i-simple-icons-npm', to: `https://www.npmjs.com/package/${props.module.npm}`, target: '_blank' + }, + { + label: 'View on npmx', + icon: 'i-simple-icons-npm', + to: `https://npmx.dev/package/${props.module.npm}`, + target: '_blank' } ] ]) diff --git a/app/pages/modules/[slug].vue b/app/pages/modules/[slug].vue index 413615acf..8bf789bd1 100644 --- a/app/pages/modules/[slug].vue +++ b/app/pages/modules/[slug].vue @@ -34,6 +34,11 @@ const links = computed(() => module.value label: module.value.npm, to: `https://npmjs.org/package/${module.value.npm}`, target: '_blank' + }, module.value.npm && { + icon: 'i-simple-icons-npm', + label: 'npmx', + to: `https://npmx.dev/package/${module.value.npm}`, + target: '_blank' }, module.value.learn_more && { icon: 'i-lucide-link', label: 'Learn more', diff --git a/server/routes/raw/modules.md.get.ts b/server/routes/raw/modules.md.get.ts index 4e00e705f..b91ec5630 100644 --- a/server/routes/raw/modules.md.get.ts +++ b/server/routes/raw/modules.md.get.ts @@ -22,7 +22,8 @@ export default defineCachedEventHandler(async (event) => { const links = [ mod.website ? `[Docs](${mod.website})` : '', mod.repo ? `[GitHub](https://github.com/${mod.repo})` : '', - `[npm](https://www.npmjs.com/package/${mod.npm})` + `[npm](https://www.npmjs.com/package/${mod.npm})`, + `[npmx](https://npmx.dev/package/${mod.npm})` ].filter(Boolean).join(' ยท ') lines.push(`### ${mod.npm}`, '') From a45274504d95bb4d42c1cddb0499fde5744bab74 Mon Sep 17 00:00:00 2001 From: norbiros Date: Fri, 26 Jun 2026 23:07:15 +0200 Subject: [PATCH 3/3] fix: guard npm menu items in ModuleItem behind npm field presence --- app/components/module/ModuleItem.vue | 38 +++++++++++++++------------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/app/components/module/ModuleItem.vue b/app/components/module/ModuleItem.vue index d952d593f..f85f0051a 100644 --- a/app/components/module/ModuleItem.vue +++ b/app/components/module/ModuleItem.vue @@ -85,24 +85,26 @@ const items = computed(() => [ to: `https://github.com/${props.module.repo}`, target: '_blank' }, - { - label: 'View downloads', - icon: 'i-lucide-package', - to: `https://npm.chart.dev/${props.module.npm}`, - target: '_blank' - }, - { - label: 'View on npm', - icon: 'i-simple-icons-npm', - to: `https://www.npmjs.com/package/${props.module.npm}`, - target: '_blank' - }, - { - label: 'View on npmx', - icon: 'i-simple-icons-npm', - to: `https://npmx.dev/package/${props.module.npm}`, - target: '_blank' - } + ...(props.module.npm ? [ + { + label: 'View downloads', + icon: 'i-lucide-package', + to: `https://npm.chart.dev/${props.module.npm}`, + target: '_blank' + }, + { + label: 'View on npm', + icon: 'i-simple-icons-npm', + to: `https://www.npmjs.com/package/${props.module.npm}`, + target: '_blank' + }, + { + label: 'View on npmx', + icon: 'i-simple-icons-npm', + to: `https://npmx.dev/package/${props.module.npm}`, + target: '_blank' + } + ] : []) ] ])