@redocly/openapi-core
Version:
See https://github.com/Redocly/redocly-cli
54 lines • 1.86 kB
JavaScript
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