mirror of
https://github.com/lainbo/component-party.git
synced 2026-04-05 04:59:02 +08:00
feat(ui): add button more frameworks
This commit is contained in:
37
scripts/npmDownloadStats.js
Normal file
37
scripts/npmDownloadStats.js
Normal file
@@ -0,0 +1,37 @@
|
||||
import frameworks from "../frameworks.mjs";
|
||||
|
||||
const mainPackageNames = frameworks.map((f) => f.mainPackageName);
|
||||
|
||||
async function getPackageDownloads(packageName) {
|
||||
try {
|
||||
const response = await fetch(
|
||||
`https://api.npmjs.org/downloads/point/last-month/${packageName}`
|
||||
);
|
||||
const data = await response.json();
|
||||
return data.downloads;
|
||||
} catch (error) {
|
||||
console.error(
|
||||
`Failed to fetch download stats for package ${packageName}: `,
|
||||
error
|
||||
);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
async function sortPackagesByDownloads(packages) {
|
||||
try {
|
||||
const downloadStats = await Promise.all(packages.map(getPackageDownloads));
|
||||
|
||||
return packages
|
||||
.map((packageName, index) => ({
|
||||
packageName,
|
||||
downloads: downloadStats[index] || 0,
|
||||
}))
|
||||
.sort((a, b) => b.downloads - a.downloads); // sort in descending order
|
||||
} catch (error) {
|
||||
console.error(`Failed to sort packages: `, error);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
sortPackagesByDownloads(mainPackageNames).then(console.log);
|
||||
Reference in New Issue
Block a user