This is the template project that's checked out and configured when you run the bando-up command from ljsthw-bandolier. This is where the code really lives.
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.
 
 
 
 
bandolier-template/client/logging.js

41 lines
1.2 KiB

import { log_levels } from "./config.js";
const disabled = () => {};
const bind_logging = () => {
// We have to do this because rendered pages will include
// client components but they don't have a window variable.
// We try to use window to bind, and if it doesn't work then
// just use the base function. One question? Why bind window?
try {
return {
debug: console.log.bind(window.console),
warn: console.warn.bind(window.console),
info: console.info.bind(window.console),
error: console.error.bind(window.console),
table: console.table.bind(window.console),
assert: console.assert.bind(window.console),
}
} catch(error) {
return {
debug: console.log,
warn: console.warn,
info: console.info,
error: console.error,
table: console.table,
assert: console.assert
}
}
}
const all_levels = bind_logging();
const as_entries = Object.entries(all_levels);
export const logger = (levels = log_levels) => {
return Object.fromEntries(as_entries.map(([level, logf]) => {
return levels.includes(level) ? [level, logf] : [level, disabled];
}));
}
// this is a default logger that's configured with what's in config.js:log_levels
export const log = logger();