UNPKG

@redocly/openapi-core

Version:

See https://github.com/Redocly/redocly-cli

54 lines 1.86 kB
import * as colorette from 'colorette'; import { isBrowser, env } from './env.js'; import { identity } from './utils.js'; export const RESET_ESCAPE_CODE_IN_TERMINAL = env.NO_COLOR ? '' : '\x1B[0m'; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore this works but some types are not working export const colorOptions = colorette.options; export const colorize = new Proxy(colorette, { get(target, prop) { if (isBrowser) { return identity; } return target[prop]; }, }); class Logger { info(str) { return isBrowser ? console.info(str) : process.stderr.write(str); } warn(str) { return isBrowser ? console.warn(str) : process.stderr.write(colorize.yellow(str)); } error(str) { return isBrowser ? console.error(str) : process.stderr.write(colorize.red(str)); } output(str) { return isBrowser ? console.log(str) : process.stdout.write(str); } printNewLine() { if (isBrowser) { console.log('\n'); } else { process.stdout.write(`${RESET_ESCAPE_CODE_IN_TERMINAL}\n`); } } printSeparator(separator) { const windowWidth = process.stdout.columns || 80; const coloredSeparator = isBrowser ? separator : colorize.gray(separator); const separatorLine = coloredSeparator .repeat(Math.ceil(windowWidth / separator.length)) .slice(0, windowWidth); return isBrowser ? console.log(separatorLine) : process.stdout.write(separatorLine); } indent(str, level) { const indentChar = isBrowser ? ' ' : '\xa0'; return str .split('\n') .map((line) => indentChar.repeat(level) + line) .join('\n'); } } export const logger = new Logger(); //# sourceMappingURL=logger.js.map