UNPKG

simplr-gulp

Version:

Fully functional gulpfile.js implementation. Tailored for Single Page Application. Written in TypeScript.

116 lines (115 loc) 4.06 kB
Object.defineProperty(exports, "__esModule", { value: true }); const colors = require("ansi-colors"); const log = require("fancy-log"); var LogType; (function (LogType) { LogType[LogType["Default"] = 0] = "Default"; LogType[LogType["Error"] = 1] = "Error"; LogType[LogType["Info"] = 2] = "Info"; LogType[LogType["Warning"] = 3] = "Warning"; })(LogType || (LogType = {})); class LoggerType { constructor(type) { this.type = type; } get Type() { return this.type; } } class Logger { showMessage(type, loggerType, ...messages) { let isDefaultLogType = false; let color, typeString; switch (type) { case LogType.Error: { color = colors.styles.red.open; } break; case LogType.Info: { color = colors.styles.cyan.open; } break; case LogType.Warning: { color = colors.styles.yellow.open; } break; default: { color = colors.styles.white.open; isDefaultLogType = true; } } if (!isDefaultLogType) { typeString = LogType[type].toLocaleUpperCase(); } else { typeString = ""; } if (loggerType !== undefined) { typeString = typeString + " " + loggerType.Type; } if (!isDefaultLogType || loggerType !== undefined) { typeString = typeString + ":"; } let resolvedMessages = this.discernWords(type, color, ...messages); log(`${colors.styles.bold.open}${color}${typeString}${resolvedMessages.join(" ")}`, colors.styles.reset.open); } discernWords(type, ...messages) { if (type === LogType.Default || type === LogType.Info) { let resolveMessages = messages.map(message => { if (typeof message === "string") { let msg = message; let openColor = true; while (msg.search("'") !== -1) { if (openColor) { openColor = !openColor; msg = msg.replace("'", colors.styles.magenta.open); } else { openColor = !openColor; msg = msg.replace("'", colors.styles.magenta.close); } } return msg; } return message; }); return resolveMessages; } else { return messages; } } getLoggerTypeFromMessages(messages) { return messages[0] instanceof LoggerType ? messages.shift() : undefined; } log(...messages) { let loggerType = this.getLoggerTypeFromMessages(messages); this.showMessage(LogType.Default, loggerType, ...messages); } error(...messages) { let loggerType = this.getLoggerTypeFromMessages(messages); this.showMessage(LogType.Error, loggerType, ...messages); } info(...messages) { let loggerType = this.getLoggerTypeFromMessages(messages); this.showMessage(LogType.Info, loggerType, ...messages); } warn(...messages) { let loggerType = this.getLoggerTypeFromMessages(messages); this.showMessage(LogType.Warning, loggerType, ...messages); } withType(type) { let loggerType = new LoggerType(type); return { log: this.log.bind(this, loggerType), error: this.error.bind(this, loggerType), info: this.info.bind(this, loggerType), warn: this.warn.bind(this, loggerType) }; } } exports.Logger = Logger; exports.LoggerInstance = new Logger();