UNPKG

@graphql-inspector/cli

Version:

Tooling for GraphQL. Compare GraphQL Schemas, check documents, find breaking changes, find similar types.

107 lines (106 loc) 3.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Logger = exports.chalk = exports.symbols = exports.figures = void 0; exports.bolderize = bolderize; exports.mockLogger = mockLogger; exports.unmockLogger = unmockLogger; const tslib_1 = require("tslib"); const node_console_1 = require("node:console"); const node_stream_1 = require("node:stream"); const chalk_1 = tslib_1.__importDefault(require("chalk")); exports.chalk = chalk_1.default; const env = tslib_1.__importStar(require("std-env")); var figures_1 = require("figures"); Object.defineProperty(exports, "figures", { enumerable: true, get: function () { return tslib_1.__importDefault(figures_1).default; } }); var log_symbols_1 = require("log-symbols"); Object.defineProperty(exports, "symbols", { enumerable: true, get: function () { return tslib_1.__importDefault(log_symbols_1).default; } }); function bolderize(msg) { const findSingleQuotes = /'([^']+)'/gim; const findDoubleQuotes = /"([^"]+)"/gim; return msg .replace(findSingleQuotes, (_, value) => chalk_1.default.bold(value)) .replace(findDoubleQuotes, (_, value) => chalk_1.default.bold(value)); } let mockedFn = null; const canBeFancy = env.hasTTY === true; exports.Logger = { success(msg) { emit('success', msg); }, log(msg) { emit('log', msg); }, table(input) { table(input); }, info(msg) { emit('info', msg); }, error(msg) { emit('error', msg); }, warn(msg) { emit('warn', msg); }, }; function mockLogger(fn) { mockedFn = fn; } function unmockLogger() { mockedFn = null; } function emit(type, msg) { if (mockedFn) { return mockedFn(msg); } if (!canBeFancy) { return console.log(`[${type}]`, msg); } if (type === 'success') { emitSuccess(msg); } else if (type === 'error') { emitError(msg); } else if (type === 'info') { emitInfo(msg); } else if (type === 'warn') { emitWarn(msg); } else { console.log(msg); } } function table(input) { const ts = new node_stream_1.Transform({ transform(chunk, _enc, cb) { cb(null, chunk); }, }); const logger = new node_console_1.Console({ stdout: ts }); logger.table(input); const table = (ts.read() || '').toString(); let result = ''; for (const row of table.split(/[\r\n]+/)) { let r = row.replace(/[^┬]*┬/, '┌'); r = r.replace(/^├─*┼/, '├'); r = r.replace(/│[^│]*/, ''); r = r.replace(/^└─*┴/, '└'); r = r.replace(/'/g, ' '); result += `${r}\n`; } console.log(result); } function emitSuccess(msg) { console.log(chalk_1.default.green('success'), msg); } function emitError(msg) { console.log(chalk_1.default.red('error'), msg); } function emitInfo(msg) { console.log(chalk_1.default.blue('info'), msg); } function emitWarn(msg) { console.log(chalk_1.default.yellow('warning'), msg); }