generator-begcode
Version:
Spring Boot + Angular/React/Vue in one handy generator
64 lines (63 loc) • 2.34 kB
JavaScript
import chalk from 'chalk';
import { createLogger } from '@yeoman/adapter';
import createDebug from 'debug';
const addPrefixToParameters = (prefix, ...args) => {
args[0] = `${prefix} ${args[0]}`;
return args;
};
const formatWarningMessageHeader = (...args) => addPrefixToParameters(chalk.yellow.bold('WARNING!'), ...args);
const formatErrorMessageHeader = (...args) => addPrefixToParameters(chalk.red.bold('ERROR!'), ...args);
const formatFatalMessageHeader = (...args) => addPrefixToParameters(chalk.red.bold('FATAL!'), ...args);
const formatInfoMessageHeader = (...args) => addPrefixToParameters(chalk.green('INFO!'), ...args);
export const CLI_LOGGER = 'begcode:cli';
export const createJHipsterLogger = (options = {}) => {
const { namespace = 'begcode' } = options;
const debug = createDebug(namespace);
const customJHipsterLogger = {
debugger: debug,
debug(msg, ...args) {
this.debugger(msg, ...args);
},
warn(...args) {
this.writeln(...formatWarningMessageHeader(...args));
return this;
},
verboseInfo(...args) {
this.writeln(...formatInfoMessageHeader(...args));
return this;
},
log(...args) {
this.writeln(...args);
return this;
},
error(msg, error) {
const errorMessage = formatErrorMessageHeader(msg);
this.console.error(...errorMessage);
if (error) {
this.console.error(error);
}
process.exitCode = 1;
},
fatal(msg, trace) {
const fatalMessage = formatFatalMessageHeader(msg);
this.console.error(...fatalMessage);
if (trace) {
this.console.error(trace);
}
process.exit(1);
},
};
const logger = createLogger({ ...options, loggers: customJHipsterLogger });
const cliLogger = namespace === CLI_LOGGER;
let debugEnabled = options.debugEnabled;
if (cliLogger) {
debugEnabled = debugEnabled || process.argv.includes('-d') || process.argv.includes('--debug');
if (debugEnabled) {
logger.verboseInfo('Debug logging is on');
}
}
if (debugEnabled) {
logger.debugger.enabled = true;
}
return logger;
};