UNPKG

@shawnsandy/npm_info

Version:

Eleventy filter that grabs and returns npm package details

32 lines (30 loc) 1.3 kB
const axios = require('axios') module.exports = async( packageName, callback ) => { try { const url = `https://api.npms.io/v2/package/${ packageName }`; const response = await axios.get( url ); const data = response ? response.data.collected.metadata : null const github = response.data.collected.github ? response.data.collected.github : null const npm = response ? response.data.collected.npm : null const source = response ? response.data.collected.source : null const repository = data.links ? data.links.repository : null const stars = github ? github.starsCount : 'n/a' const openIssues = github ? github.issues.openCount : 'n/a' console.log('url', url) const downloads = ` <ul class="npm-info-list"> <li class="npm-info-name"><span>Name:</span> <a href="${repository}" target="_blank">${data.name.toUpperCase()}</a> </li> <li class="npm-info-description">Description:<span> ${data.description}</li> <li class="npm-info-version">Version:<span> ${data.version}</li> <li class="npm-info-stars">Stars Count:<span> ${stars}</li> <li class="npm-info-issues">Open issues:<span> ${openIssues}</li> </ul> ` callback( null, downloads); } catch( error ){ callback( error ); } }