rsshub
Version:
Make RSS Great Again!
53 lines (51 loc) • 2.18 kB
JavaScript
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 };