1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var logSymbols = require("log-symbols");
|
4 | var chalk_1 = require("chalk");
|
5 | var indent = require("indent-string");
|
6 | var core_1 = require("@graphql-inspector/core");
|
7 | function getSymbol(level) {
|
8 | var _a;
|
9 | var symbols = (_a = {},
|
10 | _a[core_1.CriticalityLevel.Dangerous] = logSymbols.warning,
|
11 | _a[core_1.CriticalityLevel.Breaking] = logSymbols.error,
|
12 | _a[core_1.CriticalityLevel.NonBreaking] = logSymbols.success,
|
13 | _a);
|
14 | return symbols[level];
|
15 | }
|
16 | exports.getSymbol = getSymbol;
|
17 | function renderChange(change) {
|
18 | return [getSymbol(change.criticality.level), bolderize(change.message)];
|
19 | }
|
20 | exports.renderChange = renderChange;
|
21 | function bolderize(msg) {
|
22 | var findSingleQuotes = /\'([^']+)\'/gim;
|
23 | var findDoubleQuotes = /\"([^"]+)\"/gim;
|
24 | return msg
|
25 | .replace(findSingleQuotes, function (_, value) { return chalk_1.default.bold(value); })
|
26 | .replace(findDoubleQuotes, function (_, value) { return chalk_1.default.bold(value); });
|
27 | }
|
28 | exports.bolderize = bolderize;
|
29 | function renderInvalidDocument(invalidDoc) {
|
30 | var errors = invalidDoc.errors
|
31 | .map(function (e) { return " - " + bolderize(e.message); })
|
32 | .join('\n');
|
33 | return [
|
34 | chalk_1.default.redBright('error'),
|
35 | "in " + invalidDoc.source.name + ":\n\n",
|
36 | errors,
|
37 | '\n\n',
|
38 | ];
|
39 | }
|
40 | exports.renderInvalidDocument = renderInvalidDocument;
|
41 | function renderDeprecatedUsageInDocument(invalidDoc, isCritical) {
|
42 | if (isCritical === void 0) { isCritical = false; }
|
43 | var deprecated = invalidDoc.deprecated
|
44 | .map(function (e) { return " - " + bolderize(e.message); })
|
45 | .join('\n');
|
46 | return [
|
47 | isCritical ? chalk_1.default.redBright('error') : chalk_1.default.yellowBright('warn'),
|
48 | "in " + invalidDoc.source.name + ":\n\n",
|
49 | deprecated,
|
50 | '\n\n',
|
51 | ];
|
52 | }
|
53 | exports.renderDeprecatedUsageInDocument = renderDeprecatedUsageInDocument;
|
54 | var ConsoleRenderer = (function () {
|
55 | function ConsoleRenderer() {
|
56 | }
|
57 | ConsoleRenderer.prototype.emit = function () {
|
58 | var msgs = [];
|
59 | for (var _i = 0; _i < arguments.length; _i++) {
|
60 | msgs[_i] = arguments[_i];
|
61 | }
|
62 | console.log.apply(console, msgs);
|
63 | };
|
64 | ConsoleRenderer.prototype.coverage = function (coverage) {
|
65 | this.success('Schema coverage based on documents:\n');
|
66 | for (var typeName in coverage.types) {
|
67 | if (coverage.types.hasOwnProperty(typeName)) {
|
68 | var typeCoverage = coverage.types[typeName];
|
69 | this.emit(chalk_1.default.grey(core_1.getTypePrefix(typeCoverage.type)), chalk_1.default.bold("" + typeName), chalk_1.default.grey('{'));
|
70 | for (var childName in typeCoverage.children) {
|
71 | if (typeCoverage.children.hasOwnProperty(childName)) {
|
72 | var childCoverage = typeCoverage.children[childName];
|
73 | if (childCoverage.hits) {
|
74 | this.emit(indent(childName, 2), chalk_1.default.italic.grey("x " + childCoverage.hits));
|
75 | }
|
76 | else {
|
77 | this.emit(chalk_1.default.redBright(indent(childName, 2)), chalk_1.default.italic.grey('x 0'));
|
78 | }
|
79 | }
|
80 | }
|
81 | this.emit(chalk_1.default.grey('}\n'));
|
82 | }
|
83 | }
|
84 | };
|
85 | ConsoleRenderer.prototype.success = function () {
|
86 | var msgs = [];
|
87 | for (var _i = 0; _i < arguments.length; _i++) {
|
88 | msgs[_i] = arguments[_i];
|
89 | }
|
90 | console.log("\n" + chalk_1.default.greenBright('success') + " " + msgs.join(' '));
|
91 | };
|
92 | ConsoleRenderer.prototype.error = function () {
|
93 | var msgs = [];
|
94 | for (var _i = 0; _i < arguments.length; _i++) {
|
95 | msgs[_i] = arguments[_i];
|
96 | }
|
97 | console.log("\n" + chalk_1.default.redBright('error') + " " + msgs.join(' '));
|
98 | };
|
99 | return ConsoleRenderer;
|
100 | }());
|
101 | exports.ConsoleRenderer = ConsoleRenderer;
|
102 |
|
\ | No newline at end of file |