diff --git a/lib/routes/npm/package.js b/lib/routes/npm/package.js index c8119a8a9..d768e4766 100644 --- a/lib/routes/npm/package.js +++ b/lib/routes/npm/package.js @@ -3,7 +3,7 @@ import { art } from '@/utils/render'; import * as path from 'node:path'; export default async (ctx) => { - const name = ctx.req.url.split('package/')[1]; + const name = ctx.req.param('name'); const packageDownloadLastMonthAPI = `https://api.npmjs.org/downloads/point/last-month/${name}`; // 按月统计 const packageDownloadLastWeekAPI = `https://api.npmjs.org/downloads/point/last-week/${name}`; // 按周统计 const packageDownloadLastDayAPI = `https://api.npmjs.org/downloads/point/last-day/${name}`; // 按天统计 @@ -15,14 +15,12 @@ export default async (ctx) => { const packageVersionRes = await got(packageVersionAPI).json(); const packageVersion = packageVersionRes.time; - const packageVersionList = []; - for (const key in packageVersion) { - packageVersionList.push({ + const packageVersionList = Object.keys(packageVersion) + .map((key) => ({ version: key, time: packageVersion[key], - }); - } - packageVersionList.reverse(); + })) + .toReversed(); ctx.set('data', { title: `${name} - npm`, diff --git a/lib/routes/npm/router.js b/lib/routes/npm/router.js index 03da70928..0b04076bb 100644 --- a/lib/routes/npm/router.js +++ b/lib/routes/npm/router.js @@ -1,3 +1,4 @@ export default (router) => { - router.get('package/*', './package'); + // https://github.com/dword-design/package-name-regex/blob/master/src/index.js + router.get('package/:name{(@[a-z0-9-~][a-z0-9-._~]*\\/)?[a-z0-9-~][a-z0-9-._~]*}', './package'); };