instantdb-react-ui
Version:
Customizable react components for InstantDB (forms/lists/etc.)
41 lines (40 loc) • 1.15 kB
JavaScript
// logger.ts
const LIB_NAMESPACE = 'instantdb-react-ui';
export function setIDBReactUIDebugMode(mode) {
if (typeof window !== 'undefined') {
localStorage.setItem(`${LIB_NAMESPACE}:debug`, mode.toString());
}
else if (typeof process !== 'undefined') {
process.env.DEBUG = mode ? LIB_NAMESPACE : '';
}
}
function isEnabled() {
if (typeof window !== 'undefined') {
return localStorage.getItem(`${LIB_NAMESPACE}:debug`) === 'true';
}
else if (typeof process !== 'undefined') {
return process.env.DEBUG === LIB_NAMESPACE;
}
return false;
}
function format(prefix, args) {
return [`[${LIB_NAMESPACE}] [${prefix}]`, ...args];
}
export const logger = {
log: (...args) => {
if (isEnabled())
console.log(...format('log', args));
},
warn: (...args) => {
if (isEnabled())
console.warn(...format('warn', args));
},
error: (...args) => {
if (isEnabled())
console.error(...format('error', args));
},
info: (...args) => {
if (isEnabled())
console.info(...format('info', args));
},
};