UNPKG

@redocly/openapi-core

Version:

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

56 lines 1.92 kB
import * as colorette from 'colorette'; import { isBrowser } from './env.js'; import { identity } from './utils/identity.js'; // 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 { // Add a space to ensure the line is not empty in GitHub CI environments, otherwise it will be hidden process.stdout.write(' \n'); } } printSeparator(separator) { const windowWidth = process.stdout.columns || 80; const separatorLine = separator .repeat(Math.ceil(windowWidth / separator.length)) .slice(0, windowWidth); const coloredSeparatorLine = isBrowser ? separatorLine : colorize.gray(separatorLine); return isBrowser ? console.log(coloredSeparatorLine) : process.stdout.write(coloredSeparatorLine); } 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