UNPKG

@turbox3d/reactivity

Version:

Large-scale reactive state management library

78 lines (77 loc) 3.64 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _shared = require("@turbox3d/shared"); var _symbol = require("../const/symbol"); var _common = require("./common"); var _action = require("../core/action"); var _config = require("../const/config"); var _timeTravel = require("../core/time-travel"); var _common2 = require("../utils/common"); var _materialCallStack = require("../utils/materialCallStack"); function createLoggerMiddleware() { return function () { return function (next) { return function (dispatchedAction) { var name = dispatchedAction.name, displayName = dispatchedAction.displayName, domain = dispatchedAction.domain; if (!domain || !_config.ctx.middleware.logger) { return (0, _common.normalNextReturn)(next, dispatchedAction); } var length = _materialCallStack.materialCallStack.stack.length; if (_config.ctx.middleware.skipNestLog && length !== 1) { return (0, _common.normalNextReturn)(next, dispatchedAction); } if (!_config.ctx.middleware.diffLogger) { console.group("%c[TURBOX LOG]: PREV ".concat(domain.constructor.name, " ").concat(name, " ").concat(displayName !== _symbol.EMPTY_ACTION_NAME ? displayName : ''), 'background: #929493; color: #fff; font-weight: bold; padding: 3px 5px;'); console.dir((0, _shared.deepMerge)({}, domain.$$turboxProperties, { clone: true })); // deep copy,logger current state before change. console.groupEnd(); return (0, _common.normalNextReturn)(next, dispatchedAction, function () { if (!domain) { return; } console.group("%c[TURBOX LOG]: NEXT ".concat(domain.constructor.name, " ").concat(name, " ").concat(displayName !== _symbol.EMPTY_ACTION_NAME ? displayName : ''), 'background: #218D41; color: #fff; font-weight: bold; padding: 3px 5px;'); console.dir((0, _shared.deepMerge)({}, domain.$$turboxProperties, { clone: true })); // deep copy,logger current state after change. console.groupEnd(); }); } return (0, _common.normalNextReturn)(next, dispatchedAction, function () { if (!domain) { return; } var diffHistory = new Map(); if (_action.Action.context) { diffHistory = new Map(_action.Action.context.historyNode.history); } else if (_timeTravel.TimeTravel.currentTimeTravel) { diffHistory = new Map(_timeTravel.TimeTravel.currentTimeTravel.currentHistory); } var logArr = []; diffHistory.forEach(function (keyToDiffChangeMap, target) { keyToDiffChangeMap.forEach(function (diffInfo, key) { logArr.push({ name: target.constructor.name, target: (0, _common2.isDomain)(target) ? target.$$turboxProperties : target, property: key, before: diffInfo.beforeUpdate, after: diffInfo.didUpdate }); }); }); if (logArr.length) { console.group("%c[TURBOX LOG]: DIFF ".concat(domain.constructor.name, " ").concat(name, " ").concat(displayName !== _symbol.EMPTY_ACTION_NAME ? displayName : ''), 'background: #FF5F0F; color: #fff; font-weight: bold; padding: 3px 5px;'); console.table(logArr); console.groupEnd(); } }); }; }; }; } var _default = exports["default"] = createLoggerMiddleware();