@arkts/shared
Version:
ArkTS common utilities package.
84 lines (80 loc) • 3.54 kB
JavaScript
const require_lsp_logger = require('./lsp-logger-Dy_sO8QF.js');
const kleur = require_lsp_logger.__toESM(require("kleur"));
const vscode = require_lsp_logger.__toESM(require("vscode"));
//#region ../vscode/package.json
var version = "1.0.26";
//#endregion
//#region src/log/ext-reporter.ts
var OutputChannelReporter = class {
constructor(outputChannel, prefix) {
this.outputChannel = outputChannel;
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(" ");
}
log(logObj, _ctx) {
switch (logObj.type) {
case "log":
this.outputChannel.appendLine(kleur.default.gray(`[${logObj.type.toUpperCase()}] 📅:${this.prefix ? ` <${this.prefix}>` : ""}${logObj.tag} ${kleur.default.dim(logObj.date.toLocaleString())} ${this.toString(logObj)}`));
break;
case "warn":
this.outputChannel.appendLine(kleur.default.yellow(`[${logObj.type.toUpperCase()}] ⚠️:${this.prefix ? ` <${this.prefix}>` : ""}${logObj.tag} ${kleur.default.dim(logObj.date.toLocaleString())} ${this.toString(logObj)}`));
break;
case "info":
this.outputChannel.appendLine(kleur.default.blue(`[${logObj.type.toUpperCase()}] 🔥:${this.prefix ? ` <${this.prefix}>` : ""}${logObj.tag} ${kleur.default.dim(logObj.date.toLocaleString())} ${this.toString(logObj)}`));
break;
case "success":
case "ready":
case "start":
this.outputChannel.appendLine(kleur.default.green(`[${logObj.type.toUpperCase()}] ✅:${this.prefix ? ` <${this.prefix}>` : ""}${logObj.tag} ${kleur.default.dim(logObj.date.toLocaleString())} ${this.toString(logObj)}`));
break;
case "fail":
case "fatal":
case "error":
this.outputChannel.appendLine(kleur.default.red(`[${logObj.type.toUpperCase()}] ❌:${this.prefix ? ` <${this.prefix}>` : ""}${logObj.tag} ${kleur.default.dim(logObj.date.toLocaleString())} ${this.toString(logObj)}`));
break;
case "debug":
case "verbose":
case "trace":
this.outputChannel.appendLine(kleur.default.gray(`[${logObj.type.toUpperCase()}] 🐛:${this.prefix ? ` <${this.prefix}>` : ""}${logObj.tag} ${kleur.default.dim(logObj.date.toLocaleString())} ${this.toString(logObj)}`));
break;
case "box":
this.outputChannel.appendLine(kleur.default.gray(`[${logObj.type.toUpperCase()}] 📦:${this.prefix ? ` <${this.prefix}>` : ""}${logObj.tag} ${kleur.default.dim(logObj.date.toLocaleString())} ${this.toString(logObj)}`));
break;
}
}
};
//#endregion
//#region src/log/extension-logger.ts
var ExtensionLogger = class ExtensionLogger extends require_lsp_logger.LanguageServerLogger {
static outputChannel;
static extensionVersionIsLogged = false;
constructor() {
const outputChannel = ExtensionLogger.outputChannel ? ExtensionLogger.outputChannel : vscode.window.createOutputChannel(`ETS Support Powered by Naily`, "log");
super({
reporters: [new OutputChannelReporter(outputChannel, "Naily's ETS Support")],
prefix: "Naily's ETS Support"
});
ExtensionLogger.outputChannel = outputChannel;
if (!ExtensionLogger.extensionVersionIsLogged) {
this.getConsola().info(`ETS Support Plugin version: ${version}`);
ExtensionLogger.extensionVersionIsLogged = true;
}
}
getOutputChannel() {
return ExtensionLogger.outputChannel;
}
};
//#endregion
exports.ExtensionLogger = ExtensionLogger;
//# sourceMappingURL=vscode.js.map