diff options
author | Ven <vendicated@riseup.net> | 2022-11-14 16:22:50 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-14 16:22:50 +0100 |
commit | a96f8a89f36ccb980334da2274385373aa3ffb24 (patch) | |
tree | e520f3be75eb2bbd9f3c4d3427f16861b8d7ab6c /src/utils/Logger.ts | |
parent | 4642b54260a2258d8d0925dcfb5c6934fcf10835 (diff) | |
download | Vencord-a96f8a89f36ccb980334da2274385373aa3ffb24.tar.gz Vencord-a96f8a89f36ccb980334da2274385373aa3ffb24.tar.bz2 Vencord-a96f8a89f36ccb980334da2274385373aa3ffb24.zip |
MessageLogger: fixes + ignoreSelf & ignoreBots option (#213)
Diffstat (limited to 'src/utils/Logger.ts')
-rw-r--r-- | src/utils/Logger.ts | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/src/utils/Logger.ts b/src/utils/Logger.ts new file mode 100644 index 0000000..88ebb43 --- /dev/null +++ b/src/utils/Logger.ts @@ -0,0 +1,67 @@ +/* + * Vencord, a modification for Discord's desktop app + * Copyright (c) 2022 Vendicated and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. +*/ + +export default class Logger { + /** + * Returns the console format args for a title with the specified background colour and black text + * @param color Background colour + * @param title Text + * @returns Array. Destructure this into {@link Logger}.errorCustomFmt or console.log + * + * @example logger.errorCustomFmt(...Logger.makeTitleElements("white", "Hello"), "World"); + */ + static makeTitle(color: string, title: string): [string, ...string[]] { + return ["%c %c %s ", "", `background: ${color}; color: black; font-weight: bold; border-radius: 5px;`, title]; + } + + constructor(public name: string, public color: string = "white") { } + + private _log(level: "log" | "error" | "warn" | "info" | "debug", levelColor: string, args: any[], customFmt = "") { + console[level]( + `%c Vencord %c %c ${this.name} ${customFmt}`, + `background: ${levelColor}; color: black; font-weight: bold; border-radius: 5px;`, + "", + `background: ${this.color}; color: black; font-weight: bold; border-radius: 5px;` + , ...args + ); + } + + public log(...args: any[]) { + this._log("log", "#a6d189", args); + } + + public info(...args: any[]) { + this._log("info", "#a6d189", args); + } + + public error(...args: any[]) { + this._log("error", "#e78284", args); + } + + public errorCustomFmt(fmt: string, ...args: any[]) { + this._log("error", "#e78284", args, fmt); + } + + public warn(...args: any[]) { + this._log("warn", "#e5c890", args); + } + + public debug(...args: any[]) { + this._log("debug", "#eebebe", args); + } +} |