UNPKG

graphql-cli

Version:

Command line tool for common GraphQL development workflows

49 lines 1.85 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.cli = void 0; const tslib_1 = require("tslib"); const yargs_1 = tslib_1.__importDefault(require("yargs")); const globby_1 = tslib_1.__importDefault(require("globby")); const path_1 = require("path"); const common_1 = require("@graphql-cli/common"); const discover_1 = tslib_1.__importDefault(require("./discover")); async function cli() { const program = yargs_1.default .scriptName('graphql') .detectLocale(false) .epilog('Visit https://github.com/Urigo/graphql-cli for more information') .version(); const commandPackageNames = await discoverCommands(); const commandFactories = await Promise.all(commandPackageNames.map(loadCommand)); [discover_1.default, ...commandFactories].forEach((cmd) => { program.command(cmd({ useConfig: common_1.useConfig, useLoaders: common_1.useLoaders, })); }); program.demandCommand().recommendCommands().help().showHelpOnFail(false).argv; } exports.cli = cli; async function discoverCommands() { const commandNames = []; const paths = require.resolve.paths('graphql-cli'); await Promise.all(paths.map(findInDirectory)); async function findInDirectory(directory) { const results = await globby_1.default('*', { cwd: path_1.join(directory, '@graphql-cli'), onlyDirectories: true, deep: 1, ignore: ['common', 'loaders'], }); if (results.length) { commandNames.push(...results); } } // unique names return commandNames.filter((val, i, list) => list.indexOf(val) === i); } function loadCommand(name) { const mod = require(`@graphql-cli/${name}`); return mod.default || mod; } //# sourceMappingURL=index.js.map