UNPKG

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