import type { Logger, HandlerType } from '../logger' export function isAuthorized(status: StatusType, handlerType: HandlerType, logger: Logger) { const loggerHandler = logger.getHandler() const sanitizedHandlerType = Array.isArray(loggerHandler) ? loggerHandler : [loggerHandler] return STATUS_PRIORITIES[status] >= STATUS_PRIORITIES[logger.getLevel()] && sanitizedHandlerType.includes(handlerType) } export const StatusType = { ok: 'ok', debug: 'debug', info: 'info', notice: 'notice', warn: 'warn', error: 'error', critical: 'critical', alert: 'alert', emerg: 'emerg', } as const export const STATUS_PRIORITIES: { [key in StatusType]: number } = { [StatusType.ok]: 0, [StatusType.debug]: 1, [StatusType.info]: 2, [StatusType.notice]: 4, [StatusType.warn]: 5, [StatusType.error]: 6, [StatusType.critical]: 7, [StatusType.alert]: 8, [StatusType.emerg]: 9, } export type StatusType = (typeof StatusType)[keyof typeof StatusType]