UNPKG

@fthebaud/reducer-logger

Version:
37 lines 1.76 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.wrapReducer = void 0; var diff_1 = __importDefault(require("./diff")); var colors_1 = require("./colors"); var defaultOptions = { disabled: false, displayName: '', }; function wrapReducer(reducer, options) { if (options === void 0) { options = defaultOptions; } var disabled = options.disabled, displayName = options.displayName; if (disabled) { return reducer; } return function (state, action) { var t0 = performance.now(); var newState = reducer(state, action); var duration = performance.now() - t0; renderLog(action, state, newState, duration, displayName); return newState; }; } exports.wrapReducer = wrapReducer; function renderLog(action, state, newState, duration, displayName) { var prefix = displayName ? "[" + displayName + "] " : ''; console.groupCollapsed("%c" + prefix + "%caction %c" + action.type + " %c@ " + new Date().toLocaleTimeString() + " (in " + duration.toFixed(3) + " ms)", 'color: dark; font-weight: bolder;', 'color: gray; font-weight: lighter;', 'color: dark; font-weight: bolder;', 'color: gray; font-weight: lighter;'); console.log('%caction %o', "color: " + colors_1.lightblue + "; font-weight: bolder;", action); console.log('%cprev state %o', "color: " + colors_1.grey + "; font-weight: bolder;", state); console.log('%cnext state %o', "color: " + colors_1.green + "; font-weight: bolder;", newState); diff_1.default(state, newState); console.groupEnd(); } //# sourceMappingURL=index.js.map