UNPKG

@snap/camera-kit

Version:
47 lines 1.24 kB
import { Subject } from "rxjs"; import { entries } from "../common/entries"; let logEntriesSubject = new Subject(); export const logLevelMap = { error: 3, warn: 2, info: 1, debug: 0, }; export function resetLogger() { return (logEntriesSubject = new Subject()); } export function getLogger(module) { return entries(logLevelMap).reduce((logger, [level]) => { logger[level] = (...messages) => { logEntriesSubject.next({ time: new Date(), module, level, messages, }); }; return logger; }, {}); } export function mapLogger(logger) { if (!logger || logger === "noop") { return noopLogger; } if (logger === "console") { return console; } for (const level of Object.keys(logLevelMap)) { const logMethod = logger[level]; if (typeof logMethod !== "function") { throw new Error(`Logger method '${level}' is not available on the provided logger instance.`); } } return logger; } export const noopLogger = { error: () => { }, warn: () => { }, info: () => { }, debug: () => { }, }; //# sourceMappingURL=logger.js.map