UNPKG

5.15 kBJavaScriptView Raw
1"use strict";
2var __read = (this && this.__read) || function (o, n) {
3 var m = typeof Symbol === "function" && o[Symbol.iterator];
4 if (!m) return o;
5 var i = m.call(o), r, ar = [], e;
6 try {
7 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8 }
9 catch (error) { e = { error: error }; }
10 finally {
11 try {
12 if (r && !r.done && (m = i["return"])) m.call(i);
13 }
14 finally { if (e) throw e.error; }
15 }
16 return ar;
17};
18var __spread = (this && this.__spread) || function () {
19 for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
20 return ar;
21};
22Object.defineProperty(exports, "__esModule", { value: true });
23/* eslint-disable @typescript-eslint/no-explicit-any */
24var fs_1 = require("fs");
25var path_1 = require("path");
26var util_1 = require("util");
27var LOG_FILE_NAME = "lit-plugin.log";
28var LoggingLevel;
29(function (LoggingLevel) {
30 LoggingLevel[LoggingLevel["OFF"] = 0] = "OFF";
31 LoggingLevel[LoggingLevel["ERROR"] = 1] = "ERROR";
32 LoggingLevel[LoggingLevel["WARN"] = 2] = "WARN";
33 LoggingLevel[LoggingLevel["DEBUG"] = 3] = "DEBUG";
34 LoggingLevel[LoggingLevel["VERBOSE"] = 4] = "VERBOSE";
35})(LoggingLevel = exports.LoggingLevel || (exports.LoggingLevel = {}));
36/**
37 * This class takes care of logging while fixing issues regarding the type script service logger.
38 * It logs to a file called "log.txt" in the root of this project.
39 */
40var Logger = /** @class */ (function () {
41 function Logger() {
42 this.level = LoggingLevel.OFF;
43 this.logPath = path_1.join(process.cwd(), LOG_FILE_NAME);
44 }
45 Object.defineProperty(Logger.prototype, "cwd", {
46 set: function (cwd) {
47 this.logPath = path_1.join(cwd, LOG_FILE_NAME);
48 },
49 enumerable: true,
50 configurable: true
51 });
52 /**
53 * Resets the log file.
54 */
55 Logger.prototype.resetLogs = function () {
56 if (this.level > LoggingLevel.OFF) {
57 fs_1.writeFileSync(this.logPath, "");
58 }
59 };
60 /**
61 * Logs if this.level >= DEBUG
62 * @param args
63 */
64 Logger.prototype.debug = function () {
65 var args = [];
66 for (var _i = 0; _i < arguments.length; _i++) {
67 args[_i] = arguments[_i];
68 }
69 this.appendLogWithLevel.apply(this, __spread([LoggingLevel.DEBUG], args));
70 };
71 /**
72 * Logs if this.level >= ERROR
73 * @param args
74 */
75 Logger.prototype.error = function () {
76 var args = [];
77 for (var _i = 0; _i < arguments.length; _i++) {
78 args[_i] = arguments[_i];
79 }
80 this.appendLogWithLevel.apply(this, __spread([LoggingLevel.ERROR], args));
81 };
82 /**
83 * Logs if level >= WARN
84 * @param args
85 */
86 Logger.prototype.warn = function () {
87 var args = [];
88 for (var _i = 0; _i < arguments.length; _i++) {
89 args[_i] = arguments[_i];
90 }
91 this.appendLogWithLevel.apply(this, __spread([LoggingLevel.WARN], args));
92 };
93 /**
94 * Logs if level >= VERBOSE
95 * @param args
96 */
97 Logger.prototype.verbose = function () {
98 var args = [];
99 for (var _i = 0; _i < arguments.length; _i++) {
100 args[_i] = arguments[_i];
101 }
102 this.appendLogWithLevel.apply(this, __spread([LoggingLevel.VERBOSE], args));
103 };
104 /**
105 * Appends a log if this.level > level
106 * @param level
107 * @param args
108 */
109 Logger.prototype.appendLogWithLevel = function (level) {
110 var args = [];
111 for (var _i = 1; _i < arguments.length; _i++) {
112 args[_i - 1] = arguments[_i];
113 }
114 if (this.level >= level) {
115 var prefix = this.getLogLevelPrefix(level);
116 this.appendLog.apply(this, __spread([prefix], args));
117 }
118 };
119 /**
120 * Appends a log entry to the log file.
121 * @param prefix
122 * @param args
123 */
124 Logger.prototype.appendLog = function (prefix) {
125 var args = [];
126 for (var _i = 1; _i < arguments.length; _i++) {
127 args[_i - 1] = arguments[_i];
128 }
129 fs_1.appendFileSync(this.logPath, "" + prefix + util_1.inspect(args, {
130 colors: true,
131 depth: 6,
132 breakLength: 50,
133 maxArrayLength: 10
134 }) + "\n");
135 };
136 Logger.prototype.getLogLevelPrefix = function (level) {
137 return "[" + new Date().toLocaleString() + "] " + this.getLogLevelSeverityPrefix(level) + "] ";
138 };
139 Logger.prototype.getLogLevelSeverityPrefix = function (level) {
140 switch (level) {
141 case LoggingLevel.VERBOSE:
142 return "\x1b[36m VERBOSE \x1b[0m"; // CYAN
143 case LoggingLevel.DEBUG:
144 return "\x1b[33m DEBUG \x1b[0m"; // YELLOW
145 case LoggingLevel.WARN:
146 return "\x1b[35m WARN \x1b[0m"; // PURPLE
147 case LoggingLevel.ERROR:
148 return "\x1b[31m ERROR \x1b[0m"; // RED
149 case LoggingLevel.OFF:
150 return "";
151 }
152 };
153 return Logger;
154}());
155exports.Logger = Logger;
156exports.logger = new Logger();