From af18bd61ddbd34dff403e8d2412093b76ac2f057 Mon Sep 17 00:00:00 2001 From: Felix Henninger Date: Tue, 28 Jul 2020 08:42:46 +0200 Subject: [PATCH] Add 'why did you rerender?' dev tooling --- packages/builder/package.json | 1 + packages/builder/src/index.js | 3 +++ packages/builder/src/wdyr.js | 12 ++++++++++++ yarn.lock | 24 +++++++++++++----------- 4 files changed, 29 insertions(+), 11 deletions(-) create mode 100644 packages/builder/src/wdyr.js diff --git a/packages/builder/package.json b/packages/builder/package.json index db12b1168..c9fd894df 100644 --- a/packages/builder/package.json +++ b/packages/builder/package.json @@ -11,6 +11,7 @@ "dependencies": { "@fortawesome/fontawesome-free": "^5.11.2", "@sentry/browser": "^5.15.4", + "@welldone-software/why-did-you-render": "^4.2.7", "attr-accept": "^2.0.0", "bootstrap": "^4.4.1", "classnames": "^2.2.6", diff --git a/packages/builder/src/index.js b/packages/builder/src/index.js index 90cd7a81b..eeb80492c 100644 --- a/packages/builder/src/index.js +++ b/packages/builder/src/index.js @@ -1,6 +1,9 @@ import React from 'react' import ReactDOM from 'react-dom' +// Why did you (re)render? +import './wdyr.js' + // React-redux integration import { Provider as ReduxProvider } from 'react-redux' import configureStore from './store' diff --git a/packages/builder/src/wdyr.js b/packages/builder/src/wdyr.js new file mode 100644 index 000000000..354c126cf --- /dev/null +++ b/packages/builder/src/wdyr.js @@ -0,0 +1,12 @@ +import React from 'react' + +if (process.env.NODE_ENV === 'development') { + const whyDidYouRender = require('@welldone-software/why-did-you-render') + //const ReactRedux = require('react-redux') + whyDidYouRender(React, { + trackAllPureComponents: true, + trackExtraHooks: [ + //[ReactRedux, "useSelector"], + ] + }) +} diff --git a/yarn.lock b/yarn.lock index 3ae289307..248383566 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3363,6 +3363,13 @@ "@webassemblyjs/wast-parser" "1.8.5" "@xtuc/long" "4.2.2" +"@welldone-software/why-did-you-render@^4.2.7": + version "4.2.7" + resolved "https://registry.yarnpkg.com/@welldone-software/why-did-you-render/-/why-did-you-render-4.2.7.tgz#7731bc42ef44e146be3c39f026bc4826dd4e5699" + integrity sha512-La1INHiFnHi9USYGAaRsPhMXMOt2x3qee8cXxRija0h3tQJY1/XmSSelyXDMQkVtDDa61DMfk3H59gxWDmnqsA== + dependencies: + lodash "^4" + "@xtuc/ieee754@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" @@ -11090,7 +11097,7 @@ lodash@4.17.11: version "4.17.11" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" -"lodash@>=3.5 <5", lodash@^4.0.0, lodash@^4.13.1, lodash@^4.17.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.8.0, lodash@~4.17.10, lodash@~4.17.11: +"lodash@>=3.5 <5", lodash@^4, lodash@^4.0.0, lodash@^4.13.1, lodash@^4.17.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.8.0, lodash@~4.17.10, lodash@~4.17.11: version "4.17.19" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== @@ -16630,12 +16637,7 @@ ts-pnp@1.1.6, ts-pnp@^1.1.6: resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.1.6.tgz#389a24396d425a0d3162e96d2b4638900fdc289a" integrity sha512-CrG5GqAAzMT7144Cl+UIFP7mz/iIhiy+xQ6GGcnjTezhALT02uPMRw7tgDSESgB5MsfKt55+GPWw4ir1kVtMIQ== -tslib@^1.10.0, tslib@^1.9.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.0.tgz#f1f3528301621a53220d58373ae510ff747a66bc" - integrity sha512-BmndXUtiTn/VDDrJzQE7Mm22Ix3PxgLltW9bSNLoeCY31gnG2OPx0QqJnuc9oMIKioYrz487i6K9o4Pdn0j+Kg== - -tslib@^1.10.0: +tslib@^1.10.0, tslib@^1.9.3: version "1.11.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== @@ -16644,10 +16646,10 @@ tslib@^1.8.1: version "1.9.3" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" -tslib@^1.9.3: - version "1.11.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" - integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== +tslib@^1.9.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.0.tgz#f1f3528301621a53220d58373ae510ff747a66bc" + integrity sha512-BmndXUtiTn/VDDrJzQE7Mm22Ix3PxgLltW9bSNLoeCY31gnG2OPx0QqJnuc9oMIKioYrz487i6K9o4Pdn0j+Kg== tsutils@^3.17.1: version "3.17.1"