mirror of
https://github.com/Kuingsmile/PicList.git
synced 2025-01-22 14:28:12 -05:00
39 lines
1.1 KiB
JavaScript
39 lines
1.1 KiB
JavaScript
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))
|