Skip to content
Snippets Groups Projects
Select Git revision
21 results Searching

nuget.js

Blame
  • nuget.js 1.25 KiB
    const got = require('got');
    const xmlParser = require('fast-xml-parser');
    
    module.exports = {
      getVersions,
      getNuspec,
    };
    
    const map = new Map();
    const headers = {};
    
    async function getVersions(name, retries = 5) {
      logger.trace(`getVersions(${name})`);
    
      const url = `https://api.nuget.org/v3-flatcontainer/${name.toLowerCase()}/index.json`;
    
      try {
        const result = (await got(url, {
          cache: process.env.RENOVATE_SKIP_CACHE ? undefined : map,
          json: true,
          retries,
          headers,
        })).body;
    
        return result.versions;
      } catch (err) {
        logger.warn({ err, name }, 'nuget getVersions failures: Unknown error');
        return null;
      }
    }
    
    async function getNuspec(name, version, retries = 5) {
      logger.trace(`getNuspec(${name} - ${version})`);
    
      const url = `https://api.nuget.org/v3-flatcontainer/${name.toLowerCase()}/${version}/${name.toLowerCase()}.nuspec`;
    
      try {
        const result = await got(url, {
          cache: process.env.RENOVATE_SKIP_CACHE ? undefined : map,
          json: false,
          retries,
          headers,
        });
    
        const nuspec = xmlParser.parse(result.body, { ignoreAttributes: false });
    
        return nuspec.package;
      } catch (err) {
        logger.warn({ err, name }, 'nuget getNuspec failures: Unknown error');
        return null;
      }
    }