UNPKG

gen-jhipster

Version:

Spring Boot + Angular/React/Vue in one handy generator

86 lines (85 loc) 3.23 kB
/** * Copyright 2013-2024 the original author or authors from the JHipster project. * * This file is part of the JHipster project, see https://www.jhipster.tech/ * for more information. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * https://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import chalk from 'chalk'; import { createLogger } from '@yeoman/adapter'; import createDebug from 'debug'; /** * formats the message to be displayed in the console. * @param message the info message to format. */ 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 = 'jhipster:cli'; export const createJHipsterLogger = (options = {}) => { const { namespace = 'jhipster' } = 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'); // Need this early if (debugEnabled) { logger.verboseInfo('Debug logging is on'); } } if (debugEnabled) { logger.debugger.enabled = true; } return logger; };