UNPKG

@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
#!/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();