|
|
|
@ -8,47 +8,49 @@ This script is solely intended to be run as part of the `covector publish` step
|
|
|
|
|
check the latest version of a crate, considering the current minor version.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
const https = require('https')
|
|
|
|
|
const https = require("https");
|
|
|
|
|
|
|
|
|
|
const kind = process.argv[2]
|
|
|
|
|
const packageName = process.argv[3]
|
|
|
|
|
const packageVersion = process.argv[4]
|
|
|
|
|
const target = packageVersion.substring(0, packageVersion.lastIndexOf('.'))
|
|
|
|
|
const kind = process.argv[2];
|
|
|
|
|
const packageName = process.argv[3];
|
|
|
|
|
const packageVersion = process.argv[4];
|
|
|
|
|
const target = packageVersion.substring(0, packageVersion.lastIndexOf("."));
|
|
|
|
|
|
|
|
|
|
let url = null
|
|
|
|
|
let url = null;
|
|
|
|
|
switch (kind) {
|
|
|
|
|
case 'cargo':
|
|
|
|
|
url = `https://crates.io/api/v1/crates/${packageName}`
|
|
|
|
|
case "cargo":
|
|
|
|
|
url = `https://crates.io/api/v1/crates/${packageName}`;
|
|
|
|
|
break;
|
|
|
|
|
case 'npm':
|
|
|
|
|
url = `https://registry.npmjs.org/${packageName}`
|
|
|
|
|
case "npm":
|
|
|
|
|
url = `https://registry.npmjs.org/${packageName}`;
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
throw new Error('unexpected kind ' + kind)
|
|
|
|
|
throw new Error("unexpected kind " + kind);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const options = {
|
|
|
|
|
headers: {
|
|
|
|
|
'Content-Type': 'application/json',
|
|
|
|
|
'Accept': 'application/json',
|
|
|
|
|
'User-Agent': 'tauri (https://github.com/tauri-apps/tauri)'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
"Content-Type": "application/json",
|
|
|
|
|
Accept: "application/json",
|
|
|
|
|
"User-Agent": "tauri (https://github.com/tauri-apps/tauri)",
|
|
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
https.get(url, options, (response) => {
|
|
|
|
|
let chunks = []
|
|
|
|
|
response.on('data', function (chunk) {
|
|
|
|
|
chunks.push(chunk)
|
|
|
|
|
})
|
|
|
|
|
let chunks = [];
|
|
|
|
|
response.on("data", function (chunk) {
|
|
|
|
|
chunks.push(chunk);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
response.on('end', function () {
|
|
|
|
|
const data = JSON.parse(chunks.join(''))
|
|
|
|
|
if (kind === 'cargo') {
|
|
|
|
|
const versions = data.versions.filter(v => v.num.startsWith(target))
|
|
|
|
|
console.log(versions.length ? versions[0].num : '0.0.0')
|
|
|
|
|
} else if (kind === 'npm') {
|
|
|
|
|
const versions = Object.keys(data.versions).filter(v => v.startsWith(target))
|
|
|
|
|
console.log(versions[versions.length - 1] || '0.0.0')
|
|
|
|
|
response.on("end", function () {
|
|
|
|
|
const data = JSON.parse(chunks.join(""));
|
|
|
|
|
if (kind === "cargo") {
|
|
|
|
|
const versions = data.versions.filter((v) => v.num.startsWith(target));
|
|
|
|
|
console.log(versions.length ? versions[0].num : "0.0.0");
|
|
|
|
|
} else if (kind === "npm") {
|
|
|
|
|
const versions = Object.keys(data.versions).filter((v) =>
|
|
|
|
|
v.startsWith(target)
|
|
|
|
|
);
|
|
|
|
|
console.log(versions[versions.length - 1] || "0.0.0");
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|