From 8824a24e15df32fc873020a9cd57260f62758ebd Mon Sep 17 00:00:00 2001 From: Jacob Bolda Date: Mon, 15 Jul 2024 11:48:40 -0500 Subject: [PATCH] covector published pkg check with built-in API call (#1541) --- .changes/config.json | 14 ++++- .scripts/covector/package-latest-version.cjs | 60 -------------------- 2 files changed, 12 insertions(+), 62 deletions(-) delete mode 100644 .scripts/covector/package-latest-version.cjs diff --git a/.changes/config.json b/.changes/config.json index 78bcd57b..cd74af5c 100644 --- a/.changes/config.json +++ b/.changes/config.json @@ -3,12 +3,22 @@ "pkgManagers": { "javascript": { "version": true, - "getPublishedVersion": "node ../../.scripts/covector/package-latest-version.cjs npm ${ pkgFile.pkg.name } ${ pkgFile.pkg.version }", + "getPublishedVersion": { + "use": "fetch:check", + "options": { + "url": "https://registry.npmjs.com/${ pkg.pkg }/${ pkg.pkgFile.version }" + } + }, "publish": ["pnpm build", "pnpm publish --access public --no-git-checks"] }, "rust": { "version": true, - "getPublishedVersion": "node ../../.scripts/covector/package-latest-version.cjs cargo ${ pkgFile.pkg.package.name } ${ pkgFile.pkg.package.version }", + "getPublishedVersion": { + "use": "fetch:check", + "options": { + "url": "https://crates.io/api/v1/crates/${ pkg.pkg }/${ pkg.pkgFile.version }" + } + }, "publish": [ { "command": "cargo package --no-verify", diff --git a/.scripts/covector/package-latest-version.cjs b/.scripts/covector/package-latest-version.cjs deleted file mode 100644 index fde1d4c0..00000000 --- a/.scripts/covector/package-latest-version.cjs +++ /dev/null @@ -1,60 +0,0 @@ -#!/usr/bin/env node -// Copyright 2019-2023 Tauri Programme within The Commons Conservancy -// SPDX-License-Identifier: Apache-2.0 -// SPDX-License-Identifier: MIT - -/* -This script is solely intended to be run as part of the `covector publish` step to -check the latest version of a crate, considering the current minor version. -*/ - -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(".")); - -let url = null; -switch (kind) { - case "cargo": - url = `https://crates.io/api/v1/crates/${packageName}`; - break; - case "npm": - url = `https://registry.npmjs.org/${packageName}`; - break; - default: - 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)", - }, -}; - -https.get(url, options, (response) => { - let chunks = []; - response.on("data", function (chunk) { - chunks.push(chunk); - }); - - response.on("end", function () { - const data = JSON.parse(chunks.join("")); - if (kind === "cargo") { - if (data.versions) { - const versions = data.versions.filter((v) => v.num.startsWith(target)); - console.log(versions.length ? versions[0].num : "0.0.0"); - } else { - console.log("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"); - } - }); -});