@turbox3d/reactivity
Version:
Large-scale reactive state management library
78 lines (77 loc) • 3.64 kB
JavaScript
;
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();