UNPKG

@graphql-hive/cli

Version:

A CLI util to manage and control your GraphQL Hive

47 lines 2.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.minifySchema = exports.loadSchema = exports.renderChanges = exports.renderErrors = void 0; const tslib_1 = require("tslib"); const colors_1 = tslib_1.__importDefault(require("colors")); const graphql_1 = require("graphql"); const code_file_loader_1 = require("@graphql-tools/code-file-loader"); const graphql_file_loader_1 = require("@graphql-tools/graphql-file-loader"); const json_file_loader_1 = require("@graphql-tools/json-file-loader"); const load_1 = require("@graphql-tools/load"); const url_loader_1 = require("@graphql-tools/url-loader"); const sdk_1 = require("../sdk"); const indent = ' '; const criticalityMap = { [sdk_1.CriticalityLevel.Breaking]: colors_1.default.red('-'), [sdk_1.CriticalityLevel.Safe]: colors_1.default.green('-'), [sdk_1.CriticalityLevel.Dangerous]: colors_1.default.yellow('-'), }; function renderErrors(errors) { this.fail(`Detected ${errors.total} error${errors.total > 1 ? 's' : ''}`); this.log(''); errors.nodes.forEach(error => { this.log(String(indent), colors_1.default.red('-'), this.bolderize(error.message)); }); } exports.renderErrors = renderErrors; function renderChanges(changes) { this.info(`Detected ${changes.total} change${changes.total > 1 ? 's' : ''}`); this.log(''); changes.nodes.forEach(change => { this.log(indent, criticalityMap[change.criticality], this.bolderize(change.message)); }); } exports.renderChanges = renderChanges; async function loadSchema(file) { const sources = await (0, load_1.loadTypedefs)(file, { cwd: process.cwd(), loaders: [new code_file_loader_1.CodeFileLoader(), new graphql_file_loader_1.GraphQLFileLoader(), new json_file_loader_1.JsonFileLoader(), new url_loader_1.UrlLoader()], }); return (0, graphql_1.print)((0, graphql_1.concatAST)(sources.map(s => s.document))); } exports.loadSchema = loadSchema; function minifySchema(schema) { return schema.replace(/\s+/g, ' ').trim(); } exports.minifySchema = minifySchema; //# sourceMappingURL=schema.js.map