UNPKG

ts-lit-plugin

Version:

Typescript plugin that adds type checking and code completion to lit-html

157 lines (156 loc) 5.15 kB
"use strict"; var __read = (this && this.__read) || function (o, n) { var m = typeof Symbol === "function" && o[Symbol.iterator]; if (!m) return o; var i = m.call(o), r, ar = [], e; try { while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); } catch (error) { e = { error: error }; } finally { try { if (r && !r.done && (m = i["return"])) m.call(i); } finally { if (e) throw e.error; } } return ar; }; var __spread = (this && this.__spread) || function () { for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i])); return ar; }; Object.defineProperty(exports, "__esModule", { value: true }); /* eslint-disable @typescript-eslint/no-explicit-any */ var fs_1 = require("fs"); var path_1 = require("path"); var util_1 = require("util"); var LOG_FILE_NAME = "lit-plugin.log"; var LoggingLevel; (function (LoggingLevel) { LoggingLevel[LoggingLevel["OFF"] = 0] = "OFF"; LoggingLevel[LoggingLevel["ERROR"] = 1] = "ERROR"; LoggingLevel[LoggingLevel["WARN"] = 2] = "WARN"; LoggingLevel[LoggingLevel["DEBUG"] = 3] = "DEBUG"; LoggingLevel[LoggingLevel["VERBOSE"] = 4] = "VERBOSE"; })(LoggingLevel = exports.LoggingLevel || (exports.LoggingLevel = {})); /** * This class takes care of logging while fixing issues regarding the type script service logger. * It logs to a file called "log.txt" in the root of this project. */ var Logger = /** @class */ (function () { function Logger() { this.level = LoggingLevel.OFF; this.logPath = path_1.join(process.cwd(), LOG_FILE_NAME); } Object.defineProperty(Logger.prototype, "cwd", { set: function (cwd) { this.logPath = path_1.join(cwd, LOG_FILE_NAME); }, enumerable: true, configurable: true }); /** * Resets the log file. */ Logger.prototype.resetLogs = function () { if (this.level > LoggingLevel.OFF) { fs_1.writeFileSync(this.logPath, ""); } }; /** * Logs if this.level >= DEBUG * @param args */ Logger.prototype.debug = function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } this.appendLogWithLevel.apply(this, __spread([LoggingLevel.DEBUG], args)); }; /** * Logs if this.level >= ERROR * @param args */ Logger.prototype.error = function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } this.appendLogWithLevel.apply(this, __spread([LoggingLevel.ERROR], args)); }; /** * Logs if level >= WARN * @param args */ Logger.prototype.warn = function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } this.appendLogWithLevel.apply(this, __spread([LoggingLevel.WARN], args)); }; /** * Logs if level >= VERBOSE * @param args */ Logger.prototype.verbose = function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } this.appendLogWithLevel.apply(this, __spread([LoggingLevel.VERBOSE], args)); }; /** * Appends a log if this.level > level * @param level * @param args */ Logger.prototype.appendLogWithLevel = function (level) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } if (this.level >= level) { var prefix = this.getLogLevelPrefix(level); this.appendLog.apply(this, __spread([prefix], args)); } }; /** * Appends a log entry to the log file. * @param prefix * @param args */ Logger.prototype.appendLog = function (prefix) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } fs_1.appendFileSync(this.logPath, "" + prefix + util_1.inspect(args, { colors: true, depth: 6, breakLength: 50, maxArrayLength: 10 }) + "\n"); }; Logger.prototype.getLogLevelPrefix = function (level) { return "[" + new Date().toISOString() + " " + this.getLogLevelSeverityPrefix(level) + "] "; }; Logger.prototype.getLogLevelSeverityPrefix = function (level) { switch (level) { case LoggingLevel.VERBOSE: return "\x1b[36m VERBOSE \x1b[0m"; // CYAN case LoggingLevel.DEBUG: return "\x1b[35m DEBUG \x1b[0m"; // PURPLE case LoggingLevel.WARN: return "\x1b[33m WARN \x1b[0m"; // YELLOW case LoggingLevel.ERROR: return "\x1b[31m ERROR \x1b[0m"; // RED case LoggingLevel.OFF: return ""; } }; return Logger; }()); exports.Logger = Logger; exports.logger = new Logger();