@graphql-hive/cli
Version:
A CLI util to manage and control your GraphQL Hive
86 lines • 2.89 kB
JavaScript
;
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