UNPKG

rsshub

Version:
53 lines (51 loc) 2.18 kB
import { n as init_esm_shims, t as __dirname } from "./esm-shims-CzJ_djXG.mjs"; import "./config-C37vj7VH.mjs"; import "./dist-BInvbO1W.mjs"; import "./logger-Czu8UMNd.mjs"; import { t as ofetch_default } from "./ofetch-BIyrKU3Y.mjs"; import { t as art } from "./render-BQo6B4tL.mjs"; import path from "node:path"; //#region lib/routes/npm/package.ts init_esm_shims(); const route = { path: "/package/:name{(@[a-z0-9-~][a-z0-9-._~]*/)?[a-z0-9-~][a-z0-9-._~]*}", name: "Package", maintainers: ["Fatpandac"], categories: ["program-update"], example: "/npm/package/rsshub", radar: [{ source: ["www.npmjs.com/package/:name"] }], handler }; async function handler(ctx) { 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}`; const packageVersionAPI = `https://registry.npmjs.org/${name}`; const downloadCountLastMonthRes = await ofetch_default(packageDownloadLastMonthAPI); const downloadCountLastWeekRes = await ofetch_default(packageDownloadLastWeekAPI); const downloadCountLastDayRes = await ofetch_default(packageDownloadLastDayAPI); const packageVersion = (await ofetch_default(packageVersionAPI)).time; const packageVersionList = Object.keys(packageVersion).map((key) => ({ version: key, time: packageVersion[key] })).toReversed(); return { title: `${name} - npm`, link: `https://www.npmjs.com/package/${name}`, description: `${name} - npm`, item: [{ title: `${name} - npm`, description: art(path.join(__dirname, "templates/package-9e02ed4a.art"), { packageDownloadCountLastMonth: downloadCountLastMonthRes.downloads, packageDownloadCountLastWeek: downloadCountLastWeekRes.downloads, packageDownloadCountLastDay: downloadCountLastDayRes.downloads, packageVersion: packageVersionList }), link: `https://www.npmjs.com/package/${name}`, guid: `https://www.npmjs.com/package/${name}${packageVersion.modified}` }] }; } //#endregion export { route };