@graphql-markdown/cli
Version:
NodeJS CLI for generating Markdown documentation from a GraphQL schema.
44 lines (43 loc) • 1.45 kB
JavaScript
;
/**
* Entry point for the GraphQL Markdown CLI.
* Loads configuration from graphql-config and sets up command-line interface.
* @module
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.graphQLConfigExtension = exports.EXTENSION_NAME = void 0;
const commander_1 = require("commander");
const graphql_config_1 = require("graphql-config");
const _1 = require(".");
/**
* Name of the GraphQL Markdown extension for graphql-config
*/
exports.EXTENSION_NAME = "graphql-markdown";
/**
* GraphQL config extension declaration for GraphQL Markdown
* @returns Extension configuration object
*/
const graphQLConfigExtension = () => {
return { name: exports.EXTENSION_NAME };
};
exports.graphQLConfigExtension = graphQLConfigExtension;
void (async () => {
const config = await (0, graphql_config_1.loadConfig)({
extensions: [exports.graphQLConfigExtension],
throwOnMissing: true,
throwOnEmpty: true,
});
const program = new commander_1.Command();
const projects = config?.projects
? Object.keys(config.projects)
: ["default"];
// build commands for each project declared in graphql-config file
for (const project of projects) {
const cmd = (0, _1.getGraphQLMarkdownCli)({
id: project,
}, undefined, true);
program.addCommand(cmd);
}
await program.parseAsync(process.argv);
})();