@arkts/shared
Version:
ArkTS common utilities package.
94 lines (90 loc) • 3.13 kB
JavaScript
import { createConsola } from "consola/basic";
import kleur from "kleur";
//#region ../language-server/package.json
var version = "1.0.6";
//#endregion
//#region src/log/lsp-reporter.ts
var LspReporter = class {
constructor(debug, prefix) {
this.debug = debug;
this.prefix = prefix;
}
safeStringify(value) {
try {
return JSON.stringify(value);
} catch {
return String(value);
}
}
toString(logObj) {
if (logObj.message) return logObj.message;
if (logObj.args.length === 0) return this.safeStringify(logObj);
return logObj.args.join(" ");
}
getPrefix() {
if (this.prefix) return `<${this.prefix}>`;
return "";
}
log(logObj, _ctx) {
switch (logObj.type) {
case "log":
console.log(kleur.gray(`[${logObj.type.toUpperCase()}] 📅:${logObj.tag} ${this.getPrefix()} ${kleur.dim(logObj.date.toLocaleString())} ${this.toString(logObj)}`));
break;
case "warn":
console.warn(kleur.yellow(`[${logObj.type.toUpperCase()}] ⚠️:${logObj.tag} ${this.getPrefix()} ${kleur.dim(logObj.date.toLocaleString())} ${this.toString(logObj)}`));
break;
case "info":
console.info(kleur.blue(`[${logObj.type.toUpperCase()}] 🔥:${logObj.tag} ${this.getPrefix()} ${kleur.dim(logObj.date.toLocaleString())} ${this.toString(logObj)}`));
break;
case "success":
case "ready":
case "start":
console.log(kleur.green(`[${logObj.type.toUpperCase()}] ✅:${logObj.tag} ${this.getPrefix()} ${kleur.dim(logObj.date.toLocaleString())} ${this.toString(logObj)}`));
break;
case "fail":
case "fatal":
case "error":
console.error(kleur.red(`[${logObj.type.toUpperCase()}] ❌:${logObj.tag} ${this.getPrefix()} ${kleur.dim(logObj.date.toLocaleString())} ${this.toString(logObj)}`));
break;
case "debug":
case "verbose":
case "trace":
if (!this.debug) return;
console.log(kleur.gray(`[${logObj.type.toUpperCase()}] 🐛:${logObj.tag} ${this.getPrefix()} ${kleur.dim(logObj.date.toLocaleString())} ${this.toString(logObj)}`));
break;
case "box":
console.log(kleur.gray(`[${logObj.type.toUpperCase()}] 📦:${logObj.tag} ${this.getPrefix()} ${kleur.dim(logObj.date.toLocaleString())} ${this.toString(logObj)}`));
break;
}
}
};
//#endregion
//#region src/log/lsp-logger.ts
var LanguageServerLogger = class LanguageServerLogger {
logger;
debug = false;
static versionIsLogged = false;
constructor(consolaOptions = {}) {
this.logger = createConsola({
...typeof consolaOptions === "string" ? {} : consolaOptions,
reporters: [new LspReporter(this.debug, typeof consolaOptions === "string" ? consolaOptions : consolaOptions.prefix ?? ""), ...typeof consolaOptions === "string" ? [] : consolaOptions.reporters || []]
});
if (!LanguageServerLogger.versionIsLogged) {
this.logger.info(`ETS Support language server version: ${version}`);
LanguageServerLogger.versionIsLogged = true;
}
}
getConsola() {
return this.logger;
}
setDebug(debug) {
this.debug = debug;
return this;
}
getDebug() {
return this.debug;
}
};
//#endregion
export { LanguageServerLogger };
//# sourceMappingURL=lsp-logger-CF8e27mS.mjs.map