UNPKG

1.8 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.makeLogger = void 0;
4const console_1 = require("console");
5var LogLevel;
6(function (LogLevel) {
7 LogLevel[LogLevel["INFO"] = 1] = "INFO";
8 LogLevel[LogLevel["WARN"] = 2] = "WARN";
9 LogLevel[LogLevel["ERROR"] = 3] = "ERROR";
10})(LogLevel || (LogLevel = {}));
11const stderrConsole = new console_1.Console(process.stderr);
12const stdoutConsole = new console_1.Console(process.stdout);
13const doNothingLogger = (_message) => {
14 /* Do nothing */
15};
16const makeLoggerFunc = (options) => options.silent
17 ? (_whereToLog, _message) => {
18 /* Do nothing */
19 }
20 : (whereToLog, message) => whereToLog.log(message);
21const makeExternalLogger = (loaderOptions, logger) => (message) => logger(loaderOptions.logInfoToStdOut ? stdoutConsole : stderrConsole, message);
22const makeLogInfo = (options, logger, green) => LogLevel[options.logLevel] <= LogLevel.INFO
23 ? (message) => logger(options.logInfoToStdOut ? stdoutConsole : stderrConsole, green(message))
24 : doNothingLogger;
25const makeLogError = (options, logger, red) => LogLevel[options.logLevel] <= LogLevel.ERROR
26 ? (message) => logger(stderrConsole, red(message))
27 : doNothingLogger;
28const makeLogWarning = (options, logger, yellow) => LogLevel[options.logLevel] <= LogLevel.WARN
29 ? (message) => logger(stderrConsole, yellow(message))
30 : doNothingLogger;
31function makeLogger(options, colors) {
32 const logger = makeLoggerFunc(options);
33 return {
34 log: makeExternalLogger(options, logger),
35 logInfo: makeLogInfo(options, logger, colors.green),
36 logWarning: makeLogWarning(options, logger, colors.yellow),
37 logError: makeLogError(options, logger, colors.red),
38 };
39}
40exports.makeLogger = makeLogger;