UNPKG

@baseplate-dev/sync

Version:

Library for syncing Baseplate descriptions

76 lines 2.51 kB
function formatMessage(messageOrObj, message) { if (typeof messageOrObj === 'string') { return messageOrObj; } else if (typeof messageOrObj === 'object' && messageOrObj !== null) { const obj = messageOrObj; const msg = message ?? (typeof obj.message === 'string' ? obj.message : typeof obj.msg === 'string' ? obj.msg : ''); const metadata = JSON.stringify(messageOrObj); return msg ? `${msg} ${metadata}` : metadata; } else { return String(messageOrObj); } } export function createTestLogger() { let [errorOutput, warnOutput, infoOutput, debugOutput] = Array.from({ length: 4, }).fill(''); return { error: (messageOrObj, message) => { errorOutput += `${formatMessage(messageOrObj, message)}\n`; }, warn: (messageOrObj, message) => { warnOutput += `${formatMessage(messageOrObj, message)}\n`; }, info: (messageOrObj, message) => { infoOutput += `${formatMessage(messageOrObj, message)}\n`; }, debug: (messageOrObj, message) => { debugOutput += `${formatMessage(messageOrObj, message)}\n`; }, getErrorOutput: () => errorOutput, getWarnOutput: () => warnOutput, getInfoOutput: () => infoOutput, getDebugOutput: () => debugOutput, }; } const LOG_LEVEL_ORDER = { error: 0, warn: 1, info: 2, debug: 3, }; function shouldLog(level, minLevel) { return LOG_LEVEL_ORDER[level] <= LOG_LEVEL_ORDER[minLevel]; } export function createConsoleLogger(minLevel = 'debug') { return { error: (messageOrObj, message) => { if (shouldLog('error', minLevel)) { console.error(formatMessage(messageOrObj, message)); } }, warn: (messageOrObj, message) => { if (shouldLog('warn', minLevel)) { console.warn(formatMessage(messageOrObj, message)); } }, info: (messageOrObj, message) => { if (shouldLog('info', minLevel)) { console.info(formatMessage(messageOrObj, message)); } }, debug: (messageOrObj, message) => { if (shouldLog('debug', minLevel)) { console.debug(formatMessage(messageOrObj, message)); } }, }; } //# sourceMappingURL=logger.test-utils.js.map