New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@moderate-cli/get-npm-info

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@moderate-cli/get-npm-info - npm Package Compare versions

Comparing version

to
0.1.15

77

lib/index.js
'use strict';
const axios = require('axios')
const axios = require('axios');
const urlJoin = require('url-join');
const semver = require('semver')
const semver = require('semver');
// 通过npm api 获得信息
function getNpmInfo(npmName, registry) {
if (!npmName) {
return null
return null;
}
const registryUrl = registry || getDefaultRegistry();
const npmInfoUrl = urlJoin(registryUrl, npmName)
return axios.get(npmInfoUrl).then((response) => {
const {status, data} = response;
if (status == 200) {
return data
const npmInfoUrl = urlJoin(registryUrl, npmName);
return axios.get(npmInfoUrl).then(response => {
if (response.status === 200) {
return response.data;
}
return null
return null;
}).catch(err => {
return Promise.reject(err)
})
return Promise.reject(err);
});
}
// 获得npm版本信息
function getDefaultRegistry(isOriginal = false) {
return isOriginal ? 'https://registry.npmjs.org' : 'https://registry.npm.taobao.org';
}
async function getNpmVersions(npmName, registry) {
const data = await getNpmInfo(npmName, registry);
if (data) {
return Object.keys(data.versions)
return Object.keys(data.versions);
} else {
return [null]
return [];
}
}
function getDefaultRegistry(isOriginal) {
return isOriginal ? 'https://registry.npmjs.org' : 'https://registry.npm.taobao.org'
}
// 获得npm版本信息
function getSemverVersions(baseVersion, versions) {
versions = versions
.filter((version) => semver.satisfies(version, `^${baseVersion}`))
.sort((a, b) => {
if (semver.gt(b, a)) {
return 1
} else {
return -1
}
})
return versions;
return versions
.filter(version => semver.satisfies(version, `>${baseVersion}`))
.sort((a, b) => semver.gt(b, a) ? 1 : -1);
}
async function getNpmSemverVersion(baseVersion, npmName, registry) {
const versions = await getNpmVersions(npmName, registry)
const newVersions = getSemverVersions(baseVersion, versions)
if(newVersions?.length){
return newVersions[0]
const versions = await getNpmVersions(npmName, registry);
const newVersions = getSemverVersions(baseVersion, versions);
if (newVersions && newVersions.length > 0) {
return newVersions[0];
}
return null
return null;
}
async function getNpmLatestVersion(npmName, registry) {
let versions = await getNpmVersions(npmName, registry);
if (versions) {
return versions.sort((a, b) => semver.gt(b, a))[0];
}
return null;
}
module.exports = {
getNpmInfo, getNpmVersions, getNpmSemverVersion
}
getNpmInfo,
getNpmVersions,
getNpmSemverVersion,
getDefaultRegistry,
getNpmLatestVersion,
};
{
"name": "@moderate-cli/get-npm-info",
"version": "0.1.13",
"version": "0.1.15",
"description": "> TODO: description",

@@ -31,3 +31,3 @@ "author": "qanglee <545540710@qq.com>",

},
"gitHead": "ece3ba490e25304117329e80fc460ccff8ef8c6f",
"gitHead": "312cd6bcb81c0797f01879e53e0d9a09ee7d6182",
"publishConfig": {

@@ -34,0 +34,0 @@ "access": "public"