UNPKG

why-did-you-update

Version:

Patch React to discover unnecessary re-renders

6 lines 17.1 kB
/*! * why-did-you-update v1.0.6 * MIT Licensed */ !function(n,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.WhyDidYouUpdate=t():n.WhyDidYouUpdate=t()}(window,function(){return function(n){var t={};function e(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return n[r].call(o.exports,o,o.exports,e),o.l=!0,o.exports}return e.m=n,e.c=t,e.d=function(n,t,r){e.o(n,t)||Object.defineProperty(n,t,{enumerable:!0,get:r})},e.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},e.t=function(n,t){if(1&t&&(n=e(n)),8&t)return n;if(4&t&&"object"==typeof n&&n&&n.__esModule)return n;var r=Object.create(null);if(e.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:n}),2&t&&"string"!=typeof n)for(var o in n)e.d(r,o,function(t){return n[t]}.bind(null,o));return r},e.n=function(n){var t=n&&n.__esModule?function(){return n.default}:function(){return n};return e.d(t,"a",t),t},e.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},e.p="",e(e.s=28)}([function(n,t){var e=Array.isArray;n.exports=e},function(n,t,e){var r=e(0),o=e(32),u=e(34),i=e(36);n.exports=function(n,t){return r(n)?n:o(n,t)?[n]:u(i(n))}},function(n,t,e){var r=e(9);n.exports=function(n,t){for(var e=n.length;e--;)if(r(n[e][0],t))return e;return-1}},function(n,t,e){var r=e(21),o=e(11),u="[object AsyncFunction]",i="[object Function]",c="[object GeneratorFunction]",f="[object Proxy]";n.exports=function(n){if(!o(n))return!1;var t=r(n);return t==i||t==c||t==u||t==f}},function(n,t){n.exports=function(n){return n}},function(n,t){n.exports=function(n){return null!=n&&"object"==typeof n}},function(n,t,e){var r=e(29),o=e(45)(function(n,t){return null==n?{}:r(n,t)});n.exports=o},function(n,t,e){var r=e(17)(Object.keys,Object);n.exports=r},function(n,t){n.exports=function(n,t){for(var e=-1,r=null==n?0:n.length;++e<r;)if(t(n[e],e,n))return!0;return!1}},function(n,t){n.exports=function(n,t){return n===t||n!=n&&t!=t}},function(n,t){var e=9007199254740991,r=/^(?:0|[1-9]\d*)$/;n.exports=function(n,t){var o=typeof n;return!!(t=null==t?e:t)&&("number"==o||"symbol"!=o&&r.test(n))&&n>-1&&n%1==0&&n<t}},function(n,t){n.exports=function(n){var t=typeof n;return null!=n&&("object"==t||"function"==t)}},function(n,t){n.exports=function(){return!1}},function(n,t){var e=9007199254740991;n.exports=function(n){return"number"==typeof n&&n>-1&&n%1==0&&n<=e}},function(n,t,e){var r=e(47),o=e(48);n.exports=function n(t,e,u,i,c){var f=-1,a=t.length;for(u||(u=o),c||(c=[]);++f<a;){var l=t[f];e>0&&u(l)?e>1?n(l,e-1,u,i,c):r(c,l):i||(c[c.length]=l)}return c}},function(n,t,e){var r=e(53),o=Math.max;n.exports=function(n,t,e){return t=o(void 0===t?n.length-1:t,0),function(){for(var u=arguments,i=-1,c=o(u.length-t,0),f=Array(c);++i<c;)f[i]=u[t+i];i=-1;for(var a=Array(t+1);++i<t;)a[i]=u[i];return a[t]=e(f),r(n,this,a)}}},function(n,t){n.exports=function(n){return n}},function(n,t){n.exports=function(n,t){return function(e){return n(t(e))}}},function(n,t,e){var r=e(0);n.exports=function(){if(!arguments.length)return[];var n=arguments[0];return r(n)?n:[n]}},function(n,t){n.exports=function(n,t,e){for(var r=e-1,o=n.length;++r<o;)if(n[r]===t)return r;return-1}},function(n,t,e){var r=e(19);n.exports=function(n,t){return!(null==n||!n.length)&&r(n,t,0)>-1}},function(n,t){var e=Object.prototype.toString;n.exports=function(n){return e.call(n)}},function(n,t){n.exports=function(n,t){for(var e=-1,r=null==n?0:n.length;++e<r;)if(!t(n[e],e,n))return!1;return!0}},function(n,t){n.exports=function(n,t){for(var e=-1,r=null==n?0:n.length,o=0,u=[];++e<r;){var i=n[e];t(i,e,n)&&(u[o++]=i)}return u}},function(n,t,e){var r=e(14),o=e(54),u=e(56),i=e(61),c=o(function(n){return u(r(n,1,i,!0))});n.exports=c},function(n,t,e){var r=e(63);n.exports=function(n,t){return r(n,t)}},function(n,t,e){"use strict";var r=Array.isArray,o=Object.keys,u=Object.prototype.hasOwnProperty,i="undefined"!=typeof Element;n.exports=function(n,t){try{return function n(t,e){if(t===e)return!0;if(t&&e&&"object"==typeof t&&"object"==typeof e){var c,f,a,l=r(t),s=r(e);if(l&&s){if((f=t.length)!=e.length)return!1;for(c=f;0!=c--;)if(!n(t[c],e[c]))return!1;return!0}if(l!=s)return!1;var p=t instanceof Date,v=e instanceof Date;if(p!=v)return!1;if(p&&v)return t.getTime()==e.getTime();var y=t instanceof RegExp,d=e instanceof RegExp;if(y!=d)return!1;if(y&&d)return t.toString()==e.toString();var x=o(t);if((f=x.length)!==o(e).length)return!1;for(c=f;0!=c--;)if(!u.call(e,x[c]))return!1;if(i&&t instanceof Element&&e instanceof Element)return t===e;for(c=f;0!=c--;)if(!("_owner"===(a=x[c])&&t.$$typeof||n(t[a],e[a])))return!1;return!0}return t!=t&&e!=e}(n,t)}catch(n){if(n.message&&n.message.match(/stack|recursion/i)||-2146828260===n.number)return console.warn("Warning: react-fast-compare does not handle circular references.",n.name,n.message),!1;throw n}}},function(n,t,e){var r=e(21),o=e(0),u=e(5),i="[object String]";n.exports=function(n){return"string"==typeof n||!o(n)&&u(n)&&r(n)==i}},function(n,t,e){n.exports=e(79)},function(n,t,e){var r=e(30),o=e(42);n.exports=function(n,t){return r(n,t,function(t,e){return o(n,e)})}},function(n,t,e){var r=e(31),o=e(37),u=e(1);n.exports=function(n,t,e){for(var i=-1,c=t.length,f={};++i<c;){var a=t[i],l=r(n,a);e(l,a)&&o(f,u(a,n),l)}return f}},function(n,t,e){var r=e(1),o=e(4);n.exports=function(n,t){for(var e=0,u=(t=r(t,n)).length;null!=n&&e<u;)n=n[o(t[e++])];return e&&e==u?n:void 0}},function(n,t,e){var r=e(0),o=e(33),u=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,i=/^\w*$/;n.exports=function(n,t){if(r(n))return!1;var e=typeof n;return!("number"!=e&&"symbol"!=e&&"boolean"!=e&&null!=n&&!o(n))||i.test(n)||!u.test(n)||null!=t&&n in Object(t)}},function(n,t){n.exports=function(){return!1}},function(n,t,e){var r=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,o=/\\(\\)?/g,u=e(35)(function(n){var t=[];return 46===n.charCodeAt(0)&&t.push(""),n.replace(r,function(n,e,r,u){t.push(r?u.replace(o,"$1"):e||n)}),t});n.exports=u},function(n,t){n.exports=function(n){return n}},function(n,t){n.exports=function(n){return n}},function(n,t,e){var r=e(38),o=e(1),u=e(10),i=e(11),c=e(4);n.exports=function(n,t,e,f){if(!i(n))return n;for(var a=-1,l=(t=o(t,n)).length,s=l-1,p=n;null!=p&&++a<l;){var v=c(t[a]),y=e;if(a!=s){var d=p[v];void 0===(y=f?f(d,v,p):void 0)&&(y=i(d)?d:u(t[a+1])?[]:{})}r(p,v,y),p=p[v]}return n}},function(n,t,e){var r=e(39),o=e(9),u=Object.prototype.hasOwnProperty;n.exports=function(n,t,e){var i=n[t];u.call(n,t)&&o(i,e)&&(void 0!==e||t in n)||r(n,t,e)}},function(n,t,e){var r=e(40);n.exports=function(n,t,e){"__proto__"==t&&r?r(n,t,{configurable:!0,enumerable:!0,value:e,writable:!0}):n[t]=e}},function(n,t,e){var r=e(41),o=function(){try{var n=r(Object,"defineProperty");return n({},"",{}),n}catch(n){}}();n.exports=o},function(n,t){n.exports=function(n,t){return null==n?void 0:n[t]}},function(n,t,e){var r=e(43),o=e(44);n.exports=function(n,t){return null!=n&&o(n,t,r)}},function(n,t){n.exports=function(n,t){return null!=n&&t in Object(n)}},function(n,t,e){var r=e(1),o=e(12),u=e(0),i=e(10),c=e(13),f=e(4);n.exports=function(n,t,e){for(var a=-1,l=(t=r(t,n)).length,s=!1;++a<l;){var p=f(t[a]);if(!(s=null!=n&&e(n,p)))break;n=n[p]}return s||++a!=l?s:!!(l=null==n?0:n.length)&&c(l)&&i(p,l)&&(u(n)||o(n))}},function(n,t,e){var r=e(46),o=e(15),u=e(16);n.exports=function(n){return u(o(n,void 0,r),n+"")}},function(n,t,e){var r=e(14);n.exports=function(n){return null!=n&&n.length?r(n,1):[]}},function(n,t){n.exports=function(n,t){for(var e=-1,r=t.length,o=n.length;++e<r;)n[o+e]=t[e];return n}},function(n,t,e){var r=e(49),o=e(12),u=e(0),i=r?r.isConcatSpreadable:void 0;n.exports=function(n){return u(n)||o(n)||!!(i&&n&&n[i])}},function(n,t,e){var r=e(50).Symbol;n.exports=r},function(n,t,e){var r=e(51),o="object"==typeof self&&self&&self.Object===Object&&self,u=r||o||Function("return this")();n.exports=u},function(n,t,e){(function(t){var e="object"==typeof t&&t&&t.Object===Object&&t;n.exports=e}).call(this,e(52))},function(n,t){var e;e=function(){return this}();try{e=e||Function("return this")()||(0,eval)("this")}catch(n){"object"==typeof window&&(e=window)}n.exports=e},function(n,t){n.exports=function(n,t,e){switch(e.length){case 0:return n.call(t);case 1:return n.call(t,e[0]);case 2:return n.call(t,e[0],e[1]);case 3:return n.call(t,e[0],e[1],e[2])}return n.apply(t,e)}},function(n,t,e){var r=e(55),o=e(15),u=e(16);n.exports=function(n,t){return u(o(n,t,r),n+"")}},function(n,t){n.exports=function(n){return n}},function(n,t,e){var r=e(18),o=e(57),u=e(58),i=e(20),c=e(59),f=e(60),a=200;n.exports=function(n,t,e){var l=-1,s=o,p=n.length,v=!0,y=[],d=y;if(e)v=!1,s=u;else if(p>=a){var x=t?null:c(n);if(x)return f(x);v=!1,s=i,d=new r}else d=t?[]:y;n:for(;++l<p;){var h=n[l],b=t?t(h):h;if(h=e||0!==h?h:0,v&&b==b){for(var g=d.length;g--;)if(d[g]===b)continue n;t&&d.push(b),y.push(h)}else s(d,b,e)||(d!==y&&d.push(b),y.push(h))}return y}},function(n,t,e){var r=e(19);n.exports=function(n,t){return!(null==n||!n.length)&&r(n,t,0)>-1}},function(n,t){n.exports=function(n,t,e){for(var r=-1,o=null==n?0:n.length;++r<o;)if(e(t,n[r]))return!0;return!1}},function(n,t){n.exports=function(){}},function(n,t){n.exports=function(){return[]}},function(n,t,e){var r=e(62),o=e(5);n.exports=function(n){return o(n)&&r(n)}},function(n,t,e){var r=e(3),o=e(13);n.exports=function(n){return null!=n&&o(n.length)&&!r(n)}},function(n,t,e){var r=e(64),o=e(5);n.exports=function n(t,e,u,i,c){return t===e||(null==t||null==e||!o(t)&&!o(e)?t!=t&&e!=e:r(t,e,u,i,n,c))}},function(n,t,e){var r=e(65),o=e(71),u=e(73),i=e(74),c=e(76),f=e(0),a=e(77),l=e(78),s=1,p="[object Arguments]",v="[object Array]",y="[object Object]",d=Object.prototype.hasOwnProperty;n.exports=function(n,t,e,x,h,b){var g=f(n),m=f(t),_=g?v:c(n),j=m?v:c(t),O=(_=_==p?y:_)==y,w=(j=j==p?y:j)==y,A=_==j;if(A&&a(n)){if(!a(t))return!1;g=!0,O=!1}if(A&&!O)return b||(b=new r),g||l(n)?o(n,t,e,x,h,b):u(n,t,_,e,x,h,b);if(!(e&s)){var E=O&&d.call(n,"__wrapped__"),S=w&&d.call(t,"__wrapped__");if(E||S){var U=E?n.value():n,D=S?t.value():t;return b||(b=new r),h(U,D,e,x,b)}}return!!A&&(b||(b=new r),i(n,t,e,x,h,b))}},function(n,t,e){var r=e(66),o=e(67),u=e(68),i=e(69),c=e(70);function f(n){var t=-1,e=null==n?0:n.length;for(this.clear();++t<e;){var r=n[t];this.set(r[0],r[1])}}f.prototype.clear=r,f.prototype.delete=o,f.prototype.get=u,f.prototype.has=i,f.prototype.set=c,n.exports=f},function(n,t){n.exports=function(){this.__data__=[],this.size=0}},function(n,t,e){var r=e(2),o=Array.prototype.splice;n.exports=function(n){var t=this.__data__,e=r(t,n);return!(e<0||(e==t.length-1?t.pop():o.call(t,e,1),--this.size,0))}},function(n,t,e){var r=e(2);n.exports=function(n){var t=this.__data__,e=r(t,n);return e<0?void 0:t[e][1]}},function(n,t,e){var r=e(2);n.exports=function(n){return r(this.__data__,n)>-1}},function(n,t,e){var r=e(2);n.exports=function(n,t){var e=this.__data__,o=r(e,n);return o<0?(++this.size,e.push([n,t])):e[o][1]=t,this}},function(n,t,e){var r=e(18),o=e(72),u=e(20),i=1,c=2;n.exports=function(n,t,e,f,a,l){var s=e&i,p=n.length,v=t.length;if(p!=v&&!(s&&v>p))return!1;var y=l.get(n);if(y&&l.get(t))return y==t;var d=-1,x=!0,h=e&c?new r:void 0;for(l.set(n,t),l.set(t,n);++d<p;){var b=n[d],g=t[d];if(f)var m=s?f(g,b,d,t,n,l):f(b,g,d,n,t,l);if(void 0!==m){if(m)continue;x=!1;break}if(h){if(!o(t,function(n,t){if(!u(h,t)&&(b===n||a(b,n,e,f,l)))return h.push(t)})){x=!1;break}}else if(b!==g&&!a(b,g,e,f,l)){x=!1;break}}return l.delete(n),l.delete(t),x}},function(n,t){n.exports=function(n,t){for(var e=-1,r=null==n?0:n.length;++e<r;)if(t(n[e],e,n))return!0;return!1}},function(n,t){n.exports=function(n,t){return n===t||n!=n&&t!=t}},function(n,t,e){var r=e(75),o=1,u=Object.prototype.hasOwnProperty;n.exports=function(n,t,e,i,c,f){var a=e&o,l=r(n),s=l.length;if(s!=r(t).length&&!a)return!1;for(var p=s;p--;){var v=l[p];if(!(a?v in t:u.call(t,v)))return!1}var y=f.get(n);if(y&&f.get(t))return y==t;var d=!0;f.set(n,t),f.set(t,n);for(var x=a;++p<s;){var h=n[v=l[p]],b=t[v];if(i)var g=a?i(b,h,v,t,n,f):i(h,b,v,n,t,f);if(!(void 0===g?h===b||c(h,b,e,i,f):g)){d=!1;break}x||(x="constructor"==v)}if(d&&!x){var m=n.constructor,_=t.constructor;m!=_&&"constructor"in n&&"constructor"in t&&!("function"==typeof m&&m instanceof m&&"function"==typeof _&&_ instanceof _)&&(d=!1)}return f.delete(n),f.delete(t),d}},function(n,t,e){var r=e(17)(Object.keys,Object);n.exports=r},function(n,t){var e=Object.prototype.toString;n.exports=function(n){return e.call(n)}},function(n,t){n.exports=function(){return!1}},function(n,t){n.exports=function(){return!1}},function(n,t,e){"use strict";e.r(t);var r=e(6),o=e.n(r),u=e(22),i=e.n(u),c=e(23),f=e.n(c),a=e(7),l=e.n(a),s=e(24),p=e.n(s),v=e(3),y=e.n(v),d=e(25),x=e.n(d),h=e(26),b=e.n(h),g={UNAVOIDABLE:"unavoidable",SAME:"same",EQUAL:"equal",FUNCTIONS:"functions"},m=function(n,t,e){if(n===t)return{type:g.SAME,name:e,prev:n,next:t};if(b()(n,t))return{type:g.EQUAL,name:e,prev:n,next:t};if(!n||!t)return{type:g.UNAVOIDABLE,name:e,prev:n,next:t};var r=p()(l()(n),l()(t)),u=f()(r,function(e){return n[e]!==t[e]&&!x()(n[e],t[e])});return u.length&&i()(u,function(e){var r=n[e],o=t[e];return y()(r)&&y()(o)&&r.name===o.name})?{type:g.FUNCTIONS,name:e,prev:o()(n,u),next:o()(t,u)}:{type:g.UNAVOIDABLE,name:e,prev:n,next:t}},_=e(27),j=e.n(_),O=function(n,t,e,r){n&&t?console.groupCollapsed&&console.groupCollapsed(e):n&&console.group&&console.group(e),r.forEach(A),n&&console.groupEnd&&console.groupEnd()},w=function(n){var t=console.disableYellowBox;console.disableYellowBox=!0,console.warn(n),console.disableYellowBox=t},A=function(n){var t=n.name,e=n.prev,r=n.next;switch(n.type){case g.SAME:w(t+": Value is the same (equal by reference). Avoidable re-render!"),console.log("Value:",e);break;case g.EQUAL:w(t+": Value did not change. Avoidable re-render!"),console.log("Before:",e),console.log("After:",r),e&&r&&Object.keys(e).forEach(function(n){e[n]!==r[n]&&console.log('"'+n+'" property is not equal by reference')});break;case g.FUNCTIONS:w(t+": Changes are in functions only. Possibly avoidable re-render?"),console.log("Functions before:",e),console.log("Functions after:",r)}},E=/./,S=/[^a-zA-Z0-9()]/,U=function(n){return j()(n)?new RegExp("^"+n+"$"):n},D=function(n){return n?[].concat(n):[]},N=e(8),P=e.n(N);e.d(t,"whyDidYouUpdate",function(){return B});var C=function(n,t,e){if(n.has(t))return n.get(t);var r=e();return n.set(t,r),r};function T(n,t){return function(e,r){var o=m(e,this.props,n+".props");if(o.type!==g.UNAVOIDABLE){var u=m(r,this.state,n+".state");u.type!==g.UNAVOIDABLE&&t.notifier(t.groupByComponent,t.collapseComponentGroups,n,[o,u])}}}var k=function(n,t,e){var r=T(t,e),o=function(t){function e(){return function(n,t){if(!(n instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),function(n,t){if(!n)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?n:t}(this,t.apply(this,arguments))}return function(n,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);n.prototype=Object.create(t&&t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(n,t):n.__proto__=t)}(e,t),e.prototype.componentDidUpdate=function(t,e,o){r.call(this,t,e),"function"==typeof n.prototype.componentDidUpdate&&n.prototype.componentDidUpdate.call(this,t,e,o)},e}(n),u=Object.getOwnPropertyDescriptor(o,"displayName");return(!o.displayName||u&&u.writable)&&(o.displayName=t),o},B=function(n){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=n.include,e=void 0===t?[E]:t,r=n.exclude,o=void 0===r?[S]:r,u=n.groupByComponent,i=void 0===u||u,c=n.collapseComponentGroups,f=void 0===c||c,a=n.notifier;return{notifier:void 0===a?O:a,include:D(e).map(U),exclude:D(o).map(U),groupByComponent:i,collapseComponentGroups:f}}(t);var e=n.createElement,r=new Map;return n.createElement=function(o){var u=o,i=function(n){return n.displayName||n.name}(u);"function"==typeof u&&function(n,t){var e=t.include,r=t.exclude;return P()(e,function(t){return t.test(n)})&&!P()(r,function(t){return t.test(n)})}(i,t)&&(u=u.prototype&&"function"==typeof u.prototype.render?C(r,u,function(){return k(u,i,t)}):C(r,u,function(){return function(n,t,e){var r=T(t,e),o={},u={},i=function(t,e){return r.call({props:t,state:u},o,u),o=t,n(t,e)};return i.displayName=t,i.contextTypes=n.contextTypes,i}(u,i,t)}));for(var c=arguments.length,f=Array(c>1?c-1:0),a=1;a<c;a++)f[a-1]=arguments[a];return e.apply(n,[u].concat(f))},n.__WHY_DID_YOU_UPDATE_RESTORE_FN__=function(){n.createElement=e,delete n.__WHY_DID_YOU_UPDATE_RESTORE_FN__},n};t.default=B}]).default}); //# sourceMappingURL=why-did-you-update.min.js.map