UNPKG

@graphql-hive/cli

Version:

A CLI util to manage and control your GraphQL Hive

86 lines 2.89 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const core_1 = require("@oclif/core"); const base_command_1 = tslib_1.__importDefault(require("../../base-command")); const config_1 = require("../../helpers/config"); const schema_1 = require("../../helpers/schema"); class SchemaDelete extends base_command_1.default { async run() { try { const { flags, args } = await this.parse(SchemaDelete); const service = args.service; if (!flags.confirm) { const confirmed = await core_1.CliUx.ux.confirm(`Are you sure you want to delete "${service}" from the registry? (y/n)`); if (!confirmed) { this.info('Aborting'); this.exit(0); } } const registry = this.ensure({ key: 'registry', args: flags, defaultValue: config_1.graphqlEndpoint, env: 'HIVE_REGISTRY', }); const token = this.ensure({ key: 'token', args: flags, env: 'HIVE_TOKEN', }); const result = await this.registryApi(registry, token).schemaDelete({ input: { serviceName: service, dryRun: flags.dryRun, }, }); if (result.schemaDelete.__typename === 'SchemaDeleteSuccess') { this.success(`${service} deleted`); this.exit(0); return; } this.fail(`Failed to delete ${service}`); const errors = result.schemaDelete.errors; if (errors) { schema_1.renderErrors.call(this, errors); this.exit(1); } } catch (error) { if (error instanceof core_1.Errors.ExitError) { throw error; } else { this.fail(`Failed to complete`); this.handleFetchError(error); } } } } SchemaDelete.description = 'deletes a schema'; SchemaDelete.flags = { registry: core_1.Flags.string({ description: 'Address of the registry', }), token: core_1.Flags.string({ description: 'API token', }), dryRun: core_1.Flags.boolean({ description: 'Does not delete the service, only reports what it would have done.', default: false, }), confirm: core_1.Flags.boolean({ description: 'Confirm deletion of the service', default: false, }), }; SchemaDelete.args = [ { name: 'service', required: true, description: 'name of the service', hidden: false, }, ]; exports.default = SchemaDelete; //# sourceMappingURL=delete.js.map