@snap/camera-kit
Version:
Camera Kit Web
47 lines • 1.24 kB
JavaScript
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