@wener/console
Version:
Base console UI toolkit
43 lines (42 loc) • 931 B
JavaScript
import { useMemo } from "react";
import { createStore } from "zustand";
export function useLogger(name) {
return useMemo(()=>getLogger(name), [
name
]);
}
const Store = createStore(()=>{
return {
loggers: {}
};
});
export function getLogger(name) {
const state = Store.getState();
let { loggers: { [name]: log } } = state;
if (!log) {
log = createLogger(name);
Store.setState({
loggers: {
...state.loggers,
[name]: log
}
});
}
return log;
}
function createLogger(name) {
const log = (...args)=>{
if (!name) {
return console.log(...args);
}
return console.log(`[${name}]`, ...args);
};
return Object.assign(log, {
log,
debug: log,
info: log,
error: log,
warn: log
});
}
//# sourceMappingURL=useLogger.js.map