@graphql-inspector/cli
Version:
Tooling for GraphQL. Compare GraphQL Schemas, check documents, find breaking changes, find similar types.
76 lines (75 loc) • 2.5 kB
JavaScript
#!/usr/bin/env node
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const yargs_1 = tslib_1.__importDefault(require("yargs"));
const commands_1 = require("@graphql-inspector/commands");
const config_1 = require("@graphql-inspector/config");
const loaders_1 = require("@graphql-inspector/loaders");
const logger_1 = require("@graphql-inspector/logger");
async function main() {
const config = await (0, config_1.useConfig)();
const loaders = (0, loaders_1.useLoaders)(config);
const commands = (0, commands_1.useCommands)({ config, loaders });
const root = yargs_1.default
.scriptName('graphql-inspector')
.detectLocale(false)
.epilog('Visit https://graphql-inspector.com for more information')
.version()
.options({
r: {
alias: 'require',
describe: 'Require modules',
type: 'array',
},
t: {
alias: 'token',
describe: 'Access Token',
type: 'string',
},
h: {
alias: 'header',
describe: 'Http Header',
type: 'array',
},
hl: {
alias: 'left-header',
describe: 'Http Header - Left',
type: 'array',
},
hr: {
alias: 'right-header',
describe: 'Http Header - Right',
type: 'array',
},
});
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
commands
.reduce((cli, cmd) => cli.command(cmd), root)
.demandCommand()
.recommendCommands()
.help()
.showHelpOnFail(false)
.fail((msg, error) => {
if (msg.includes('Unknown argument:')) {
const commandName = msg.replace('Unknown argument: ', '').toLowerCase();
logger_1.Logger.error(`Command '${commandName}' not found`);
if (config_1.availableCommands.includes(commandName)) {
logger_1.Logger.log(` Try to install @graphql-inspector/${commandName}-command`);
}
}
else if (msg.includes('Not enough')) {
logger_1.Logger.error(msg);
logger_1.Logger.info('Specify --help for available options');
}
else {
logger_1.Logger.error(msg);
}
if (error) {
throw error;
}
process.exit(1);
})
.strict(true).argv;
}
main();