aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/packages/turbo-codemod/src/commands/migrate/steps/getLatestVersion.ts
diff options
context:
space:
mode:
author简律纯 <hsiangnianian@outlook.com>2023-04-28 01:36:44 +0800
committer简律纯 <hsiangnianian@outlook.com>2023-04-28 01:36:44 +0800
commitdd84b9d64fb98746a230cd24233ff50a562c39c9 (patch)
treeb583261ef00b3afe72ec4d6dacb31e57779a6faf /packages/turbo-codemod/src/commands/migrate/steps/getLatestVersion.ts
parent0b46fcd72ac34382387b2bcf9095233efbcc52f4 (diff)
downloadHydroRoll-dd84b9d64fb98746a230cd24233ff50a562c39c9.tar.gz
HydroRoll-dd84b9d64fb98746a230cd24233ff50a562c39c9.zip
Diffstat (limited to 'packages/turbo-codemod/src/commands/migrate/steps/getLatestVersion.ts')
-rw-r--r--packages/turbo-codemod/src/commands/migrate/steps/getLatestVersion.ts31
1 files changed, 31 insertions, 0 deletions
diff --git a/packages/turbo-codemod/src/commands/migrate/steps/getLatestVersion.ts b/packages/turbo-codemod/src/commands/migrate/steps/getLatestVersion.ts
new file mode 100644
index 0000000..a6ab7e6
--- /dev/null
+++ b/packages/turbo-codemod/src/commands/migrate/steps/getLatestVersion.ts
@@ -0,0 +1,31 @@
+import axios from "axios";
+
+import type { MigrateCommandOptions } from "../types";
+
+const REGISTRY = "https://registry.npmjs.org";
+
+async function getPackageDetails({ packageName }: { packageName: string }) {
+ try {
+ const result = await axios.get(`${REGISTRY}/${packageName}`);
+ return result.data;
+ } catch (err) {
+ throw new Error(`Unable to fetch the latest version of ${packageName}`);
+ }
+}
+
+export default async function getLatestVersion({
+ to,
+}: MigrateCommandOptions): Promise<string | undefined> {
+ const packageDetails = await getPackageDetails({ packageName: "turbo" });
+ const { "dist-tags": tags, versions } = packageDetails;
+
+ if (to) {
+ if (tags[to] || versions[to]) {
+ return to;
+ } else {
+ throw new Error(`turbo@${to} does not exist`);
+ }
+ }
+
+ return tags.latest as string;
+}