You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
750 B
34 lines
750 B
4 years ago
|
enum LoggingLevel {
|
||
|
Silent = 0,
|
||
|
Success = 1,
|
||
|
Error = 1,
|
||
|
Warning = 2,
|
||
|
Info = 3,
|
||
|
Debug = 4,
|
||
|
Verbose = 5,
|
||
|
}
|
||
|
|
||
|
const isLoggingLevel = (something: any): something is LoggingLevel => {
|
||
|
return [
|
||
|
LoggingLevel.Silent,
|
||
|
LoggingLevel.Success,
|
||
|
LoggingLevel.Error,
|
||
|
LoggingLevel.Warning,
|
||
|
LoggingLevel.Info,
|
||
|
LoggingLevel.Debug,
|
||
|
LoggingLevel.Verbose
|
||
|
].includes(something)
|
||
|
}
|
||
|
|
||
|
interface LogMessage {
|
||
|
level: LoggingLevel,
|
||
|
date: Date,
|
||
|
output: any,
|
||
|
}
|
||
|
|
||
|
const isLogMessage = (something: any): something is LogMessage => {
|
||
|
return isLoggingLevel(something?.level) && something?.date instanceof Date;
|
||
|
}
|
||
|
|
||
|
export { LoggingLevel, LogMessage, isLoggingLevel, isLogMessage }
|