forked from silverwind/updates
implement directory support - fixes #49
This commit is contained in:
parent
02d4ced84b
commit
31152e41ca
File diff suppressed because it is too large
Load Diff
1
fixtures/npm/preset-env
Normal file
1
fixtures/npm/preset-env
Normal file
File diff suppressed because one or more lines are too long
32
test.js
32
test.js
@ -160,8 +160,8 @@ test("latest", makeTest("-j", {
|
||||
},
|
||||
"@babel/preset-env": {
|
||||
old: "7.0.0",
|
||||
new: "7.7.6",
|
||||
info: "https://github.com/babel/babel/tree/master/packages/babel-preset-env",
|
||||
new: "7.11.5",
|
||||
info: "https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env",
|
||||
},
|
||||
"updates": {
|
||||
old: "6941e05",
|
||||
@ -172,8 +172,8 @@ test("latest", makeTest("-j", {
|
||||
peerDependencies: {
|
||||
"@babel/preset-env": {
|
||||
old: "~6.0.0",
|
||||
new: "~7.7.6",
|
||||
info: "https://github.com/babel/babel/tree/master/packages/babel-preset-env"
|
||||
new: "~7.11.5",
|
||||
info: "https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env"
|
||||
}
|
||||
},
|
||||
}));
|
||||
@ -212,8 +212,8 @@ test("greatest", makeTest("-j -g", {
|
||||
},
|
||||
"@babel/preset-env": {
|
||||
old: "7.0.0",
|
||||
new: "7.7.6",
|
||||
info: "https://github.com/babel/babel/tree/master/packages/babel-preset-env",
|
||||
new: "7.11.5",
|
||||
info: "https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env",
|
||||
},
|
||||
"updates": {
|
||||
old: "6941e05",
|
||||
@ -224,8 +224,8 @@ test("greatest", makeTest("-j -g", {
|
||||
peerDependencies: {
|
||||
"@babel/preset-env": {
|
||||
old: "~6.0.0",
|
||||
new: "~7.7.6",
|
||||
info: "https://github.com/babel/babel/tree/master/packages/babel-preset-env"
|
||||
new: "~7.11.5",
|
||||
info: "https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env"
|
||||
}
|
||||
}
|
||||
}));
|
||||
@ -269,8 +269,8 @@ test("prerelease", makeTest("-j -g -p", {
|
||||
},
|
||||
"@babel/preset-env": {
|
||||
old: "7.0.0",
|
||||
new: "7.7.6",
|
||||
info: "https://github.com/babel/babel/tree/master/packages/babel-preset-env",
|
||||
new: "7.11.5",
|
||||
info: "https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env",
|
||||
},
|
||||
"updates": {
|
||||
old: "6941e05",
|
||||
@ -281,8 +281,8 @@ test("prerelease", makeTest("-j -g -p", {
|
||||
peerDependencies: {
|
||||
"@babel/preset-env": {
|
||||
old: "~6.0.0",
|
||||
new: "~7.7.6",
|
||||
info: "https://github.com/babel/babel/tree/master/packages/babel-preset-env"
|
||||
new: "~7.11.5",
|
||||
info: "https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env"
|
||||
}
|
||||
},
|
||||
}));
|
||||
@ -326,8 +326,8 @@ test("release", makeTest("-j -R", {
|
||||
},
|
||||
"@babel/preset-env": {
|
||||
old: "7.0.0",
|
||||
new: "7.7.6",
|
||||
info: "https://github.com/babel/babel/tree/master/packages/babel-preset-env",
|
||||
new: "7.11.5",
|
||||
info: "https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env",
|
||||
},
|
||||
"updates": {
|
||||
old: "6941e05",
|
||||
@ -338,8 +338,8 @@ test("release", makeTest("-j -R", {
|
||||
peerDependencies: {
|
||||
"@babel/preset-env": {
|
||||
old: "~6.0.0",
|
||||
new: "~7.7.6",
|
||||
info: "https://github.com/babel/babel/tree/master/packages/babel-preset-env"
|
||||
new: "~7.11.5",
|
||||
info: "https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env"
|
||||
},
|
||||
},
|
||||
}));
|
||||
|
32
updates.js
32
updates.js
@ -364,17 +364,43 @@ async function fetchInfo(name, type, originalRegistry) {
|
||||
}
|
||||
}
|
||||
|
||||
// https://github.com/babel/babel/tree/master/packages/babel-preset-env
|
||||
|
||||
function getInfoUrl({repository, homepage}, registry, name) {
|
||||
let infoUrl;
|
||||
|
||||
if (registry === "https://npm.pkg.github.com") {
|
||||
return `https://github.com/${name.replace(/^@/, "")}`;
|
||||
} else if (repository) {
|
||||
const url = typeof repository === "string" ? repository : repository.url;
|
||||
|
||||
const info = hostedGitInfo(url);
|
||||
if (info && info.browse) return info.browse();
|
||||
if (repository && repository.url && /^https?:/.test(repository.url)) return repository.url;
|
||||
if (info && info.browse) {
|
||||
// https://github.com/babel/babel
|
||||
infoUrl = info.browse();
|
||||
}
|
||||
|
||||
if (infoUrl && repository.directory && info.treepath) {
|
||||
// https://github.com/babel/babel/tree/HEAD/packages/babel-cli
|
||||
infoUrl = `${infoUrl}/${info.treepath}/HEAD/${repository.directory}`;
|
||||
}
|
||||
|
||||
if (!infoUrl && repository && repository.url && /^https?:/.test(repository.url)) {
|
||||
infoUrl = repository.url;
|
||||
}
|
||||
}
|
||||
let url = infoUrl || homepage || "";
|
||||
|
||||
// force https for github.com
|
||||
if (url) {
|
||||
const u = new URL(url);
|
||||
if (u.hostname === "github.com" && u.protocol === "http:") {
|
||||
u.protocol = "https:";
|
||||
url = String(u);
|
||||
}
|
||||
}
|
||||
|
||||
return homepage || "";
|
||||
return url;
|
||||
}
|
||||
|
||||
function finish(obj, opts = {}) {
|
||||
|
Loading…
Reference in New Issue
Block a user