From ac13464d4db04b10228ab73e4f4939ca1c2fd8ff Mon Sep 17 00:00:00 2001 From: "sunny.ll" Date: Wed, 10 Sep 2025 16:18:34 +0800 Subject: [PATCH] Enhance package command options to include packageId and packageVersion; improve package selection logic with error handling for missing packages. --- cli.json | 6 ++++++ src/package.ts | 14 ++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/cli.json b/cli.json index aac3483..e5dca43 100644 --- a/cli.json +++ b/cli.json @@ -66,6 +66,12 @@ "options": { "appId": { "hasValue": true + }, + "packageVersion": { + "hasValue": true + }, + "packageId": { + "hasValue": true } } }, diff --git a/src/package.ts b/src/package.ts index 1956d9a..6567078 100644 --- a/src/package.ts +++ b/src/package.ts @@ -217,10 +217,9 @@ export const packageCommands = { options, }: { args: string[]; - options: { appId?: string }; + options: { appId?: string, packageId?: string, packageVersion?: string }; }) => { - let packageId = args[0]; - let { appId } = options; + let { appId, packageId, packageVersion } = options; if (!appId) { const platform = await getPlatform(); @@ -229,7 +228,14 @@ export const packageCommands = { // If no packageId provided as argument, let user choose from list if (!packageId) { - const selectedPackage = await choosePackage(appId); + const allPkgs = await getAllPackages(appId); + if (!allPkgs) { + throw new Error(t('noPackagesFound', { appId })); + } + const selectedPackage = allPkgs.find((pkg) => pkg.version === packageVersion); + if (!selectedPackage) { + throw new Error(t('packageNotFound', { packageVersion })); + } packageId = selectedPackage.id; }