PicList/scripts/check-dep.js

39 lines
1.1 KiB
JavaScript
Raw Normal View History

2023-08-27 10:48:08 -04:00
const ncu = require('npm-check-updates')
const axios = require('axios')
async function getRepositoryInfo (packageName) {
try {
const { data } = await axios.get(`https://registry.npmjs.org/${packageName}`)
const repository = data.repository
if (repository && repository.url) {
const gitUrl = repository.url.replace('git+', '').replace('.git', '')
const isGitHub = gitUrl.includes('github.com')
return isGitHub ? `${gitUrl}/releases` : gitUrl
}
} catch (error) {
console.error(`Error fetching repository info for ${packageName}: ${error.message}`)
}
return null
}
async function checkUpdates () {
const updated = await ncu.run({
packageFile: './package.json',
upgrade: false
})
if (!Object.keys(updated).length) {
console.log('All dependencies are up-to-date!')
return
}
console.log('Dependencies that need to be updated:')
for (const [key] of Object.entries(updated)) {
const repoUrl = await getRepositoryInfo(key)
console.log(`${key}: ${updated[key]} ${repoUrl ? `- [GitHub/Repo](${repoUrl})` : ''}`)
}
}
checkUpdates().catch(err => console.error(err))