slightning-coco-widget
Version:
SLIGHTNING 的 CoCo 控件框架。
45 lines (44 loc) • 1.51 kB
JavaScript
import { betterToString, CoCoLogToLineArray } from "../../utils";
import { getDefaultAdapter } from "../adapters/adapter";
export class Logger {
constructor(types, widget) {
this.types = types;
this.adapter = new (getDefaultAdapter().Logger)(types, widget);
}
log(...messages) {
this.outputLog({
messages,
editor: this.adapter.log.bind(this.adapter),
browser: messages.some((message) => ["function", "object"].includes(typeof message)) ? console.log : null
});
}
info(...messages) {
this.outputLog({
messages,
editor: this.adapter.info.bind(this.adapter),
browser: console.info
});
}
warn(...messages) {
this.outputLog({
messages,
editor: this.adapter.warn.bind(this.adapter),
browser: console.warn
});
}
error(...messages) {
this.outputLog({
messages,
editor: this.adapter.error.bind(this.adapter),
browser: console.error
});
}
outputLog({ messages, editor, browser }) {
if (editor != null) {
for (const line of CoCoLogToLineArray(messages.map((message) => typeof message == "string" ? message : betterToString(message)).join(" "))) {
editor(line);
}
}
browser === null || browser === void 0 ? void 0 : browser(`[自定义控件 ${this.types.info.title}]`, ...messages);
}
}