hassio-nextcloud-backup/nextcloud_backup/backend/src/tools/messageManager.ts
2024-08-13 16:42:55 +02:00

42 lines
1.0 KiB
TypeScript

import { DateTime } from "luxon";
import { Message, MessageType } from "../types/message.js";
const maxMessageLength = 255;
class MessageManager {
private messages: Message[] = [];
public addMessage(type: MessageType, message: string, detail?: string, isImportant = false) {
this.messages.push({
message: message,
type: type,
time: DateTime.now(),
viewed: !isImportant,
detail: detail
});
if (this.messages.length > maxMessageLength) {
this.messages.shift();
}
}
public error(message: string, detail?: string) {
this.addMessage(MessageType.ERROR, message, detail, true);
}
public warn(message: string, detail?: string) {
this.addMessage(MessageType.WARN, message, detail);
}
public info(message: string, detail?: string) {
this.addMessage(MessageType.INFO, message, detail);
}
public success(message: string, detail?: string) {
this.addMessage(MessageType.SUCCESS, message, detail);
}
}
const messageManager = new MessageManager();
export default messageManager;