@turbox3d/reactivity
Version:
Large-scale reactive state management library
33 lines (32 loc) • 1.37 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _common = require("./common");
var _symbol = require("../const/symbol");
var _config = require("../const/config");
var _materialCallStack = require("../utils/materialCallStack");
function createPerfMiddleware() {
return function () {
return function (next) {
return function (dispatchedAction) {
if (!_config.ctx.middleware.perf) {
return (0, _common.normalNextReturn)(next, dispatchedAction);
}
var name = dispatchedAction.name,
displayName = dispatchedAction.displayName;
var start = performance.now();
var length = _materialCallStack.materialCallStack.stack.length;
if (_config.ctx.middleware.skipNestPerfLog && length !== 1) {
return (0, _common.normalNextReturn)(next, dispatchedAction);
}
return (0, _common.normalNextReturn)(next, dispatchedAction, function () {
var end = performance.now();
console.log("%c[TURBOX PERF]: ".concat(name, " ").concat(displayName !== _symbol.EMPTY_ACTION_NAME ? displayName : '', " ").concat((end - start).toFixed(3), "ms"), 'background: #FA54FF; color: #fff; font-weight: bold; padding: 3px 5px;');
});
};
};
};
}
var _default = exports["default"] = createPerfMiddleware();