UNPKG

slightning-coco-widget

Version:

SLIGHTNING 的 CoCo 控件框架。

45 lines (44 loc) 1.51 kB
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); } }