UNPKG

@keyshade/cli

Version:
100 lines (86 loc) 2.29 kB
import type { CommandActionData, CommandArgument, CommandOption } from '@/types/command/command.types' import BaseCommand from '@/commands/base.command' import { Logger } from '@/util/logger' import ControllerInstance from '@/util/controller-instance' export default class RollbackVariable extends BaseCommand { getName(): string { return 'rollback' } getDescription(): string { return 'Rollbacks a variable' } getArguments(): CommandArgument[] { return [ { name: '<Variable Slug>', description: 'Slug of the variable that you want to rollback' } ] } getOptions(): CommandOption[] { return [ { short: '-v', long: '--version <string>', description: 'Version of the variable to which you want to rollback' }, { short: '-e', long: '--environment <string>', description: 'Slug of the environment of the variable to which you want to rollback' } ] } getUsage(): string { return `keyshade variable rollback <variable slug> [options] Rollback a variable keyshade variable rollback variable-1 --version 2 --environment dev ` } canMakeHttpRequests(): boolean { return true } async action({ args, options }: CommandActionData): Promise<void> { const [variableSlug] = args const { environment, version } = await this.parseInput(options) const { data, error, success } = await ControllerInstance.getInstance().variableController.rollbackVariable( { environmentSlug: environment, version, variableSlug }, this.headers ) if (success) { Logger.info( `Variable rolled back by ${data.count} versions successfully!` ) } else { this.logError(error) } } private async parseInput(options: CommandActionData['options']): Promise<{ environment: string version: number }> { const { environment, version } = options if (!environment) { Logger.error('Environment slug is required') process.exit(1) } if (!version) { Logger.error('Version is required') process.exit(1) } return { environment, version: parseInt(version, 10) } } }