UNPKG

@capawesome/cli

Version:

The Capawesome Cloud Command Line Interface (CLI) to manage Live Updates and more.

85 lines (84 loc) 3.31 kB
import appBuildsService from '../../../services/app-builds.js'; import { withAuth } from '../../../utils/auth.js'; import { isInteractive } from '../../../utils/environment.js'; import { defineCommand, defineOptions } from '@robingenz/zli'; import consola from 'consola'; import { z } from 'zod'; export default defineCommand({ description: 'Set native version constraints on a web build.', options: defineOptions(z.object({ appId: z .string({ message: 'App ID must be a UUID.', }) .uuid({ message: 'App ID must be a UUID.', }) .optional() .describe('The app ID of the build.'), buildId: z .string({ message: 'Build ID must be a UUID.', }) .uuid({ message: 'Build ID must be a UUID.', }) .optional() .describe('The build ID to update.'), androidEq: z.coerce .string() .optional() .describe('The exact Android version code (`versionCode`) that the build supports.'), androidMax: z.coerce .string() .optional() .describe('The maximum Android version code (`versionCode`) that the build supports.'), androidMin: z.coerce .string() .optional() .describe('The minimum Android version code (`versionCode`) that the build supports.'), iosEq: z .string() .optional() .describe('The exact iOS bundle version (`CFBundleVersion`) that the build supports.'), iosMax: z .string() .optional() .describe('The maximum iOS bundle version (`CFBundleVersion`) that the build supports.'), iosMin: z .string() .optional() .describe('The minimum iOS bundle version (`CFBundleVersion`) that the build supports.'), })), action: withAuth(async (options) => { const { appId, buildId, androidEq, androidMax, androidMin, iosEq, iosMax, iosMin } = options; if (!appId) { if (!isInteractive()) { consola.error('You must provide an app ID when running in non-interactive environment.'); process.exit(1); } consola.error('You must provide an app ID with the `--app-id` flag.'); process.exit(1); } if (!buildId) { if (!isInteractive()) { consola.error('You must provide a build ID when running in non-interactive environment.'); process.exit(1); } consola.error('You must provide a build ID with the `--build-id` flag.'); process.exit(1); } consola.start('Setting native version constraints...'); await appBuildsService.update({ appId, appBuildId: buildId, eqAndroidAppVersionCode: androidEq, maxAndroidAppVersionCode: androidMax, minAndroidAppVersionCode: androidMin, eqIosAppVersionCode: iosEq, maxIosAppVersionCode: iosMax, minIosAppVersionCode: iosMin, }); consola.success('Native version constraints set successfully.'); }), });