UNPKG

scu-inspector

Version:

Displaying props changes of shouldComponentUpdate

3 lines (2 loc) 3.23 kB
"use strict";var defineProperty=function(r,n,e){return n in r?Object.defineProperty(r,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):r[n]=e,r},_extends=Object.assign||function(r){for(var n=1;n<arguments.length;n++){var e=arguments[n];for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=e[t])}return r},toConsumableArray=function(r){if(Array.isArray(r)){for(var n=0,e=Array(r.length);n<r.length;n++)e[n]=r[n];return e}return Array.from(r)},_isEmpty=function(r){return null===r||void 0===r||r.hasOwnProperty("length")&&0===r.length||r.constructor===Object&&0===Object.keys(r).length},_isExist=function(r){return!_isEmpty(r)},_isObject=function(r){return!!r&&r.constructor===Object},_isArray=function(r){return Array.isArray(r)},isExist=function(){for(var r=arguments.length,n=Array(r),e=0;e<r;e++)n[e]=arguments[e];return n.every(_isExist)},isBoolean=function(r){return"boolean"==typeof r},isString=function(r){return"string"==typeof r},isNumber=function(r){return"number"==typeof r},isObject=function(){for(var r=arguments.length,n=Array(r),e=0;e<r;e++)n[e]=arguments[e];return n.every(_isObject)},isArray=function(){for(var r=arguments.length,n=Array(r),e=0;e<r;e++)n[e]=arguments[e];return n.every(_isArray)},isFunction=function(r){return"function"==typeof r},isDiff=function(r){return function(n){return JSON.stringify(r)!==JSON.stringify(n)}},diff=function(r){return function(n){var e=new Set(r),t=new Set(n),o=new Set([].concat(toConsumableArray(e)).filter(function(r){return!t.has(r)}));return Array.from(o)}};function processor(r){return function(n){return function(e,t){var o=n.prevProp,i=n.nextProp,u=void 0;return isFunction(i)?e:((isBoolean(i)||isString(i)||isNumber(i))&&(u=o!==i),(isObject(i)||isArray(i))&&(u=isDiff(i)(o),isArray(i)&&(o=diff(o)(i).join(", "),i=diff(i)(o).join(", "))),"all"===r||"changed"===r&&u||"none"===r&&!u?[_extends({},e[0],defineProperty({},t,{state:u?"CHANGED":"NONE",prevProp:o,nextProp:i}))]:e)}}}function applyCondition(r,n){return function(e){return isExist(r)?r.includes(e):!n.includes(e)}}function getDisplayName(r){var n=r.displayName||r.constructor.name||r.name;return function(r){return n+(isExist(r)?"-"+r:"")}}var __MODE__="all",__INCLUDES__=null,__EXCLUDES__=["children"],__THROW_MSG__="It has to be applied to shouldComponentUpdate method";function scuInspector(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=r.uniqueKey,e=void 0===n?"":n,t=r.isCollapsed,o=void 0!==t&&t,i=r.debug,u=void 0===i?"production"!==process.env.NODE_ENV:i,s=r.mode,c=void 0===s?__MODE__:s,a=r.include,f=void 0===a?__INCLUDES__:a,l=r.exclude,p=void 0===l?__EXCLUDES__:l,_=processor(c),y=applyCondition(f,p);return u?function(r,n,t){if("shouldComponentUpdate"!==n)throw new Error(__THROW_MSG__);var i=getDisplayName(r),u=t.value;return t.value=function(r){var n=u.apply(this,arguments);if(n){var t=i(r[e]),s=this.props;Object.keys(r).filter(y).reduce(function(n,e){return _({prevProp:s[e],nextProp:r[e],prevProps:s,nextProps:r})(n,e)},[{}]).forEach(function(r){isExist(r)&&((0,console[o?"groupCollapsed":"group"])(t),console.table(r),console.groupEnd())})}return n},t}:function(r,n,e){return e}}module.exports=scuInspector; //# sourceMappingURL=bundle.js.map