UNPKG

@saber2pr/react

Version:

react in Typescript.

58 lines (57 loc) 1.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); /* * @Author: saber2pr * @Date: 2019-12-07 15:20:04 * @Last Modified by: saber2pr * @Last Modified time: 2019-12-11 20:51:02 */ var MAX_STACK_SIZE = 10000; var MAX_STACK_ID = Symbol("MAX_STACK_ID"); var setMaxStackSize = function (size) { MAX_STACK_SIZE = size; }; exports.setMaxStackSize = setMaxStackSize; var resetStackSize = function (id) { if (id === void 0) { id = "default"; } var size = TestStackSize[MAX_STACK_ID]; if (size) { size[id] = 0; } }; exports.resetStackSize = resetStackSize; var resetStack = function () { TestStackSize[MAX_STACK_ID] = {}; }; exports.resetStack = resetStack; var listeners; var watchStackSize = function (callback) { if (!listeners) { listeners = []; } listeners.push(callback); return function () { listeners.splice(listeners.indexOf(callback), 1); }; }; exports.watchStackSize = watchStackSize; var TestStackSize = function (id) { if (id === void 0) { id = "default"; } if (!TestStackSize[MAX_STACK_ID]) { resetStack(); } var size = TestStackSize[MAX_STACK_ID]; if (id in size) { size[id]++; } else { size[id] = 1; } if (size[id] > MAX_STACK_SIZE) { throw new Error("STACK SIZE OVERFLOW: " + id + ", try to reset the MAX_STACK_SIZE(" + MAX_STACK_SIZE + ");\n method: React.Stack.setMaxStackSize()"); } if (listeners) { listeners.forEach(function (listener) { return listener({ id: id, size: size[id] }, size); }); } }; exports.TestStackSize = TestStackSize;