UNPKG

@turbox3d/reactivity

Version:

Large-scale reactive state management library

27 lines 1.18 kB
import { normalNextReturn } from './common'; import { EMPTY_ACTION_NAME } from '../const/symbol'; import { ctx } from '../const/config'; import { materialCallStack } from '../utils/materialCallStack'; function createPerfMiddleware() { return function () { return function (next) { return function (dispatchedAction) { if (!ctx.middleware.perf) { return normalNextReturn(next, dispatchedAction); } var name = dispatchedAction.name, displayName = dispatchedAction.displayName; var start = performance.now(); var length = materialCallStack.stack.length; if (ctx.middleware.skipNestPerfLog && length !== 1) { return normalNextReturn(next, dispatchedAction); } return normalNextReturn(next, dispatchedAction, function () { var end = performance.now(); console.log("%c[TURBOX PERF]: ".concat(name, " ").concat(displayName !== EMPTY_ACTION_NAME ? displayName : '', " ").concat((end - start).toFixed(3), "ms"), 'background: #FA54FF; color: #fff; font-weight: bold; padding: 3px 5px;'); }); }; }; }; } export default createPerfMiddleware();