From 8a71b3ddd409ce6ef0e3cc6ffe9c1fb11d9d09b8 Mon Sep 17 00:00:00 2001 From: Amio Date: Fri, 28 Jul 2023 17:12:04 +0800 Subject: [PATCH] feat: migrate /open-vsx --- libs/badge-list.ts | 3 +-- libs/badge-list2.ts | 2 ++ next.config.js | 1 + {api- => pages/api}/open-vsx.ts | 14 ++++++++++---- vercel.json | 4 ---- 5 files changed, 14 insertions(+), 10 deletions(-) rename {api- => pages/api}/open-vsx.ts (79%) diff --git a/libs/badge-list.ts b/libs/badge-list.ts index 2082a14..acc1942 100644 --- a/libs/badge-list.ts +++ b/libs/badge-list.ts @@ -29,7 +29,6 @@ export const liveBadgeList = [ 'pub', 'shards', 'wapm', - 'open-vsx', 'snapcraft', // CI 'circleci', @@ -58,7 +57,7 @@ export const liveBadgeList = [ 'liberapay', ] -export async function loadBadgeMeta () { +export async function loadBadgeMeta() { const liveBadgeExamples = await Promise.all(liveBadgeList.map(async id => { const mod = await import(rel('../api-', id)) const { title, examples, handlers } = mod.default.meta diff --git a/libs/badge-list2.ts b/libs/badge-list2.ts index fcfe319..72a97b6 100644 --- a/libs/badge-list2.ts +++ b/libs/badge-list2.ts @@ -12,6 +12,7 @@ import codecov from '../pages/api/codecov' import travis from '../pages/api/travis' import chromeWebStore from '../pages/api/chrome-web-store' import vsMarketplace from '../pages/api/vs-marketplace' +import openVsx from '../pages/api/open-vsx' import hackage from '../pages/api/hackage' import pypi from '../pages/api/pypi' import peertube from '../pages/api/peertube' @@ -29,6 +30,7 @@ export default { amo: amo.meta, npm: npm.meta, crates: crates.meta, + 'open-vsx': openVsx.meta, 'chrome-web-store': chromeWebStore.meta, 'vs-marketplace': vsMarketplace.meta, hackage: hackage.meta, diff --git a/next.config.js b/next.config.js index cabd514..c418a45 100644 --- a/next.config.js +++ b/next.config.js @@ -50,6 +50,7 @@ const nextConfig = { '/npm', '/crates', '/winget', + '/open-vsx', '/chrome-web-store', '/vs-marketplace', '/hackage', diff --git a/api-/open-vsx.ts b/pages/api/open-vsx.ts similarity index 79% rename from api-/open-vsx.ts rename to pages/api/open-vsx.ts index 457dfb4..a163b87 100644 --- a/api-/open-vsx.ts +++ b/pages/api/open-vsx.ts @@ -1,7 +1,7 @@ import millify from 'millify' -import got from '../libs/got' -import { version, versionColor } from '../libs/utils' -import { createBadgenHandler, PathArgs } from '../libs/create-badgen-handler' +import got from '../../libs/got' +import { version, versionColor } from '../../libs/utils' +import { createBadgenHandler, PathArgs } from '../../libs/create-badgen-handler-next' export default createBadgenHandler({ title: 'Open VSX', @@ -17,7 +17,7 @@ export default createBadgenHandler({ } }) -async function handler ({ topic, pkg, namespace }: PathArgs) { +async function handler({ topic, pkg, namespace }: PathArgs) { const endpoint = `https://open-vsx.org/api/${namespace}/${pkg}` const data = await got(endpoint).json() @@ -54,5 +54,11 @@ async function handler ({ topic, pkg, namespace }: PathArgs) { status: millify(data.reviewCount), color: 'green' } + default: + return { + subject: 'open-vsx', + status: 'unknown topic', + color: 'grey' + } } } diff --git a/vercel.json b/vercel.json index 7dbf538..4154681 100644 --- a/vercel.json +++ b/vercel.json @@ -122,10 +122,6 @@ "source": "/opam/:match*", "destination": "https://v2022.badgen.net/opam/:match*" }, - { - "source": "/open-vsx/:match*", - "destination": "https://v2022.badgen.net/open-vsx/:match*" - }, { "source": "/opencollective/:match*", "destination": "https://v2022.badgen.net/opencollective/:match*"