UNPKG

@turbox3d/reactivity

Version:

Large-scale reactive state management library

33 lines (32 loc) 1.37 kB
"use strict"; 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();