next-axiom
Version:
Send WebVitals from your Next.js project to Axiom.
27 lines • 886 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useLogger = useLogger;
const navigation_1 = require("next/navigation");
const logger_1 = require("./logger");
const react_1 = require("react");
const use_deep_compare_1 = require("use-deep-compare");
function useLogger(config = {}) {
const path = (0, navigation_1.usePathname)();
const memoizedConfig = (0, use_deep_compare_1.useDeepCompareMemo)(() => ({
...config,
args: {
...(config.args ?? {}),
path,
},
}), [config, path]);
const logger = (0, react_1.useMemo)(() => new logger_1.Logger(memoizedConfig), [memoizedConfig]);
(0, react_1.useEffect)(() => {
return () => {
if (logger) {
logger.flush();
}
};
}, [path]);
return logger;
}
//# sourceMappingURL=hooks.js.map