diff --git a/fixtures/browser/package-lock.json b/fixtures/browser/package-lock.json index 6885daa9e..de5642df5 100644 --- a/fixtures/browser/package-lock.json +++ b/fixtures/browser/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.0", "license": "MIT", "dependencies": { - "@babel/core": "7.22.15", + "@babel/core": "7.22.17", "@babel/helper-replace-supers": "7.22.9", "@babel/plugin-proposal-class-properties": "7.18.6", "@babel/plugin-proposal-decorators": "7.22.15", @@ -62,20 +62,20 @@ } }, "node_modules/@babel/core": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.15.tgz", - "integrity": "sha512-PtZqMmgRrvj8ruoEOIwVA3yoF91O+Hgw9o7DAUTNBA6Mo2jpu31clx9a7Nz/9JznqetTR6zwfC4L3LAjKQXUwA==", + "version": "7.22.17", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.17.tgz", + "integrity": "sha512-2EENLmhpwplDux5PSsZnSbnSkB3tZ6QTksgO25xwEL7pIDcNOMhF5v/s6RzwjMZzZzw9Ofc30gHv5ChCC8pifQ==", "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.22.13", "@babel/generator": "^7.22.15", "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.22.15", + "@babel/helper-module-transforms": "^7.22.17", "@babel/helpers": "^7.22.15", - "@babel/parser": "^7.22.15", + "@babel/parser": "^7.22.16", "@babel/template": "^7.22.15", - "@babel/traverse": "^7.22.15", - "@babel/types": "^7.22.15", + "@babel/traverse": "^7.22.17", + "@babel/types": "^7.22.17", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -248,9 +248,9 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.15.tgz", - "integrity": "sha512-l1UiX4UyHSFsYt17iQ3Se5pQQZZHa22zyIXURmvkmLCD4t/aU+dvNWHatKac/D9Vm9UES7nvIqHs4jZqKviUmQ==", + "version": "7.22.17", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.17.tgz", + "integrity": "sha512-XouDDhQESrLHTpnBtCKExJdyY4gJCdrvH2Pyv8r8kovX2U8G0dRUOT45T9XlbLtuu9CLXP15eusnkprhoPV5iQ==", "dependencies": { "@babel/helper-environment-visitor": "^7.22.5", "@babel/helper-module-imports": "^7.22.15", @@ -285,13 +285,13 @@ } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz", - "integrity": "sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==", + "version": "7.22.17", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.17.tgz", + "integrity": "sha512-bxH77R5gjH3Nkde6/LuncQoLaP16THYPscurp1S8z7S9ZgezCyV3G8Hc+TZiCmY8pz4fp8CvKSgtJMW0FkLAxA==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-wrap-function": "^7.22.9" + "@babel/helper-wrap-function": "^7.22.17" }, "engines": { "node": ">=6.9.0" @@ -374,13 +374,13 @@ } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.10.tgz", - "integrity": "sha512-OnMhjWjuGYtdoO3FmsEFWvBStBAe2QOgwOLsLNDjN+aaiMD8InJk1/O3HSD8lkqTjCgg5YI34Tz15KNNA3p+nQ==", + "version": "7.22.17", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.17.tgz", + "integrity": "sha512-nAhoheCMlrqU41tAojw9GpVEKDlTS8r3lzFmF0lP52LwblCPbuFSO7nGIZoIcoU5NIm1ABrna0cJExE4Ay6l2Q==", "dependencies": { "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.10" + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.17" }, "engines": { "node": ">=6.9.0" @@ -1608,9 +1608,9 @@ } }, "node_modules/@babel/traverse": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.15.tgz", - "integrity": "sha512-DdHPwvJY0sEeN4xJU5uRLmZjgMMDIvMPniLuYzUVXj/GGzysPl0/fwt44JBkyUIzGJPV8QgHMcQdQ34XFuKTYQ==", + "version": "7.22.17", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.17.tgz", + "integrity": "sha512-xK4Uwm0JnAMvxYZxOVecss85WxTEIbTa7bnGyf/+EgCL5Zt3U7htUpEOWv9detPlamGKuRzCqw74xVglDWpPdg==", "dependencies": { "@babel/code-frame": "^7.22.13", "@babel/generator": "^7.22.15", @@ -1618,8 +1618,8 @@ "@babel/helper-function-name": "^7.22.5", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15", + "@babel/parser": "^7.22.16", + "@babel/types": "^7.22.17", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1628,9 +1628,9 @@ } }, "node_modules/@babel/types": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.15.tgz", - "integrity": "sha512-X+NLXr0N8XXmN5ZsaQdm9U2SSC3UbIYq/doL++sueHOTisgZHoKaQtZxGuV2cUPQHMfjKEfg/g6oy7Hm6SKFtA==", + "version": "7.22.17", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.17.tgz", + "integrity": "sha512-YSQPHLFtQNE5xN9tHuZnzu8vPr61wVTBZdfv1meex1NBosa4iT05k/Jw06ddJugi4bk7The/oSwQGFcksmEJQg==", "dependencies": { "@babel/helper-string-parser": "^7.22.5", "@babel/helper-validator-identifier": "^7.22.15", @@ -2965,9 +2965,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001528", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001528.tgz", - "integrity": "sha512-0Db4yyjR9QMNlsxh+kKWzQtkyflkG/snYheSzkjmvdEtEXB1+jt7A2HmSEiO6XIJPIbo92lHNGNySvE5pZcs5Q==", + "version": "1.0.30001529", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001529.tgz", + "integrity": "sha512-n2pUQYGAkrLG4QYj2desAh+NqsJpHbNmVZz87imptDdxLAtjxary7Df/psdfyDGmskJK/9Dt9cPnx5RZ3CU4Og==", "funding": [ { "type": "opencollective", @@ -3550,9 +3550,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { - "version": "1.4.510", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.510.tgz", - "integrity": "sha512-xPfLIPFcN/WLXBpQ/K4UgE98oUBO5Tia6BD4rkSR0wE7ep/PwBVlgvPJQrIBpmJGVAmUzwPKuDbVt9XV6+uC2g==" + "version": "1.4.512", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.512.tgz", + "integrity": "sha512-1W8wRbYlQE4ph7eoj3TJ+uqwO6+xvAE/L+KGU7WTQQvX3tnSIGZAb90MTsMoJqzntamiwJhBAj4WZmygXhsOUg==" }, "node_modules/emoji-regex": { "version": "8.0.0", diff --git a/fixtures/browser/package.json b/fixtures/browser/package.json index 4ff44c345..93eeaecd7 100644 --- a/fixtures/browser/package.json +++ b/fixtures/browser/package.json @@ -20,7 +20,7 @@ } }, "dependencies": { - "@babel/core": "7.22.15", + "@babel/core": "7.22.17", "@babel/helper-replace-supers": "7.22.9", "@babel/plugin-proposal-class-properties": "7.18.6", "@babel/plugin-proposal-decorators": "7.22.15", diff --git a/package-lock.json b/package-lock.json index ec51648fb..1334aa9cf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "hasInstallScript": true, "license": "MIT", "devDependencies": { - "@babel/core": "^7.22.15", + "@babel/core": "^7.22.17", "@babel/plugin-proposal-class-properties": "7.18.6", "@babel/plugin-transform-modules-commonjs": "^7.22.15", "@babel/preset-env": "7.22.15", @@ -104,21 +104,21 @@ } }, "node_modules/@babel/core": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.15.tgz", - "integrity": "sha512-PtZqMmgRrvj8ruoEOIwVA3yoF91O+Hgw9o7DAUTNBA6Mo2jpu31clx9a7Nz/9JznqetTR6zwfC4L3LAjKQXUwA==", + "version": "7.22.17", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.17.tgz", + "integrity": "sha512-2EENLmhpwplDux5PSsZnSbnSkB3tZ6QTksgO25xwEL7pIDcNOMhF5v/s6RzwjMZzZzw9Ofc30gHv5ChCC8pifQ==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.22.13", "@babel/generator": "^7.22.15", "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.22.15", + "@babel/helper-module-transforms": "^7.22.17", "@babel/helpers": "^7.22.15", - "@babel/parser": "^7.22.15", + "@babel/parser": "^7.22.16", "@babel/template": "^7.22.15", - "@babel/traverse": "^7.22.15", - "@babel/types": "^7.22.15", + "@babel/traverse": "^7.22.17", + "@babel/types": "^7.22.17", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -303,9 +303,9 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.15.tgz", - "integrity": "sha512-l1UiX4UyHSFsYt17iQ3Se5pQQZZHa22zyIXURmvkmLCD4t/aU+dvNWHatKac/D9Vm9UES7nvIqHs4jZqKviUmQ==", + "version": "7.22.17", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.17.tgz", + "integrity": "sha512-XouDDhQESrLHTpnBtCKExJdyY4gJCdrvH2Pyv8r8kovX2U8G0dRUOT45T9XlbLtuu9CLXP15eusnkprhoPV5iQ==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.5", @@ -343,14 +343,14 @@ } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz", - "integrity": "sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==", + "version": "7.22.17", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.17.tgz", + "integrity": "sha512-bxH77R5gjH3Nkde6/LuncQoLaP16THYPscurp1S8z7S9ZgezCyV3G8Hc+TZiCmY8pz4fp8CvKSgtJMW0FkLAxA==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-wrap-function": "^7.22.9" + "@babel/helper-wrap-function": "^7.22.17" }, "engines": { "node": ">=6.9.0" @@ -440,14 +440,14 @@ } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.10.tgz", - "integrity": "sha512-OnMhjWjuGYtdoO3FmsEFWvBStBAe2QOgwOLsLNDjN+aaiMD8InJk1/O3HSD8lkqTjCgg5YI34Tz15KNNA3p+nQ==", + "version": "7.22.17", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.17.tgz", + "integrity": "sha512-nAhoheCMlrqU41tAojw9GpVEKDlTS8r3lzFmF0lP52LwblCPbuFSO7nGIZoIcoU5NIm1ABrna0cJExE4Ay6l2Q==", "dev": true, "dependencies": { "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.10" + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.17" }, "engines": { "node": ">=6.9.0" @@ -1781,9 +1781,9 @@ } }, "node_modules/@babel/traverse": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.15.tgz", - "integrity": "sha512-DdHPwvJY0sEeN4xJU5uRLmZjgMMDIvMPniLuYzUVXj/GGzysPl0/fwt44JBkyUIzGJPV8QgHMcQdQ34XFuKTYQ==", + "version": "7.22.17", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.17.tgz", + "integrity": "sha512-xK4Uwm0JnAMvxYZxOVecss85WxTEIbTa7bnGyf/+EgCL5Zt3U7htUpEOWv9detPlamGKuRzCqw74xVglDWpPdg==", "dev": true, "dependencies": { "@babel/code-frame": "^7.22.13", @@ -1792,8 +1792,8 @@ "@babel/helper-function-name": "^7.22.5", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15", + "@babel/parser": "^7.22.16", + "@babel/types": "^7.22.17", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1802,9 +1802,9 @@ } }, "node_modules/@babel/types": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.15.tgz", - "integrity": "sha512-X+NLXr0N8XXmN5ZsaQdm9U2SSC3UbIYq/doL++sueHOTisgZHoKaQtZxGuV2cUPQHMfjKEfg/g6oy7Hm6SKFtA==", + "version": "7.22.17", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.17.tgz", + "integrity": "sha512-YSQPHLFtQNE5xN9tHuZnzu8vPr61wVTBZdfv1meex1NBosa4iT05k/Jw06ddJugi4bk7The/oSwQGFcksmEJQg==", "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.22.5", @@ -6679,9 +6679,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001528", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001528.tgz", - "integrity": "sha512-0Db4yyjR9QMNlsxh+kKWzQtkyflkG/snYheSzkjmvdEtEXB1+jt7A2HmSEiO6XIJPIbo92lHNGNySvE5pZcs5Q==", + "version": "1.0.30001529", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001529.tgz", + "integrity": "sha512-n2pUQYGAkrLG4QYj2desAh+NqsJpHbNmVZz87imptDdxLAtjxary7Df/psdfyDGmskJK/9Dt9cPnx5RZ3CU4Og==", "dev": true, "funding": [ { @@ -8011,9 +8011,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.510", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.510.tgz", - "integrity": "sha512-xPfLIPFcN/WLXBpQ/K4UgE98oUBO5Tia6BD4rkSR0wE7ep/PwBVlgvPJQrIBpmJGVAmUzwPKuDbVt9XV6+uC2g==", + "version": "1.4.512", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.512.tgz", + "integrity": "sha512-1W8wRbYlQE4ph7eoj3TJ+uqwO6+xvAE/L+KGU7WTQQvX3tnSIGZAb90MTsMoJqzntamiwJhBAj4WZmygXhsOUg==", "dev": true }, "node_modules/emittery": { @@ -19956,9 +19956,9 @@ } }, "node_modules/ts-api-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.2.tgz", - "integrity": "sha512-Cbu4nIqnEdd+THNEsBdkolnOXhg0I8XteoHaEKgvsxpsbWda4IsUut2c187HxywQCvveojow0Dgw/amxtSKVkQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", + "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", "dev": true, "engines": { "node": ">=16.13.0" @@ -20867,9 +20867,9 @@ } }, "node_modules/ws": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.0.tgz", - "integrity": "sha512-WR0RJE9Ehsio6U4TuM+LmunEsjQ5ncHlw4sn9ihD6RoJKZrVyH9FWV3dmnwu8B2aNib1OvG2X6adUCyFpQyWcg==", + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.1.tgz", + "integrity": "sha512-4OOseMUq8AzRBI/7SLMUwO+FEDnguetSk7KMb1sHwvF2w2Wv5Hoj0nlifx8vtGsftE/jWHojPy8sMMzYLJ2G/A==", "dev": true, "engines": { "node": ">=10.0.0" diff --git a/package.json b/package.json index f0d6b786d..a7d0029e2 100644 --- a/package.json +++ b/package.json @@ -74,7 +74,7 @@ "test:package": "node fixtures/packaging/build-all.js" }, "devDependencies": { - "@babel/core": "^7.22.15", + "@babel/core": "^7.22.17", "@babel/plugin-proposal-class-properties": "7.18.6", "@babel/plugin-transform-modules-commonjs": "^7.22.15", "@babel/preset-env": "7.22.15", diff --git a/packages/inferno-animation/src/utils.ts b/packages/inferno-animation/src/utils.ts index a75eb4baf..1900540b6 100644 --- a/packages/inferno-animation/src/utils.ts +++ b/packages/inferno-animation/src/utils.ts @@ -3,7 +3,8 @@ import { isFunction, warning } from 'inferno-shared'; declare global { // Setting `window.__DEBUG_ANIMATIONS__ = true;` disables animation timeouts // allowing breakpoints in animations for debugging. - var __INFERNO_ANIMATION_DEBUG__: Boolean; + // eslint-disable-next-line + var __INFERNO_ANIMATION_DEBUG__: boolean; } export interface Dimensions { @@ -230,7 +231,7 @@ export const transitionEndName: string = (function () { } })(); -function setAnimationTimeout(onTransitionEnd, rootNode, maxDuration) { +function setAnimationTimeout(onTransitionEnd, rootNode, maxDuration): void { if (rootNode.nodeName === 'IMG' && !rootNode.complete) { // Image animations should wait for loaded until the timeout is started, otherwise animation will be cut short // due to loading delay @@ -313,7 +314,9 @@ export function registerTransitionListener( // WARNING: If the callback isn't called, the DOM nodes won't be removed if (process.env.NODE_ENV !== 'production') { if (window.__INFERNO_ANIMATION_DEBUG__) { - warning("You are in animation debugging mode and fallback timeouts aren't set. DOM nodes could be left behind."); + warning( + "You are in animation debugging mode and fallback timeouts aren't set. DOM nodes could be left behind.", + ); } else { setAnimationTimeout(onTransitionEnd, rootNode, maxDuration); } diff --git a/packages/inferno-compat/__tests__/ReactComponent.spec.jsx b/packages/inferno-compat/__tests__/ReactComponent.spec.jsx index e33bf4374..0d2f8a8f9 100644 --- a/packages/inferno-compat/__tests__/ReactComponent.spec.jsx +++ b/packages/inferno-compat/__tests__/ReactComponent.spec.jsx @@ -112,7 +112,7 @@ describe('ReactComponent', function () { // other it('should pass context to children when not owner', function () { - class Parent extends React.Component{ + class Parent extends React.Component { render() { return ( diff --git a/packages/inferno-compat/__tests__/ReactComponentLifeCycle.spec.jsx b/packages/inferno-compat/__tests__/ReactComponentLifeCycle.spec.jsx index f51ffc5fd..d53bc2c5d 100644 --- a/packages/inferno-compat/__tests__/ReactComponentLifeCycle.spec.jsx +++ b/packages/inferno-compat/__tests__/ReactComponentLifeCycle.spec.jsx @@ -98,7 +98,7 @@ describe('ReactComponentLifeCycle', function () { class StatefulComponent extends React.Component { constructor(props) { super(props); - this.state = {} + this.state = {}; } render() { @@ -133,7 +133,7 @@ describe('ReactComponentLifeCycle', function () { constructor(props) { super(props); _testJournal.push('SwitcherParent:ctr'); - this.state = { showHasOnDOMReadyComponent: false } + this.state = { showHasOnDOMReadyComponent: false }; } componentDidMount() { _testJournal.push('SwitcherParent:onDOMReady'); @@ -215,7 +215,7 @@ describe('ReactComponentLifeCycle', function () { this.state = { stateField: this.props.valueToUseInitially - } + }; } componentDidMount() { @@ -253,27 +253,27 @@ describe('ReactComponentLifeCycle', function () { ); } componentWillMount() { - log.push('outer componentWillMount'); + log.push('outer componentWillMount'); } componentDidMount() { log.push('outer componentDidMount'); } componentWillReceiveProps() { - log.push('outer componentWillReceiveProps') + log.push('outer componentWillReceiveProps'); } shouldComponentUpdate() { - log.push('outer shouldComponentUpdate') + log.push('outer shouldComponentUpdate'); return true; } componentWillUpdate() { - log.push('outer componentWillUpdate') + log.push('outer componentWillUpdate'); } componentDidUpdate() { - log.push('outer componentDidUpdate') + log.push('outer componentDidUpdate'); } componentWillUnmount() { - log.push('outer componentWillUnmount') + log.push('outer componentWillUnmount'); } } @@ -288,21 +288,21 @@ describe('ReactComponentLifeCycle', function () { log.push('inner componentDidMount'); } componentWillReceiveProps() { - log.push('inner componentWillReceiveProps') + log.push('inner componentWillReceiveProps'); } shouldComponentUpdate() { - log.push('inner shouldComponentUpdate') + log.push('inner shouldComponentUpdate'); return true; } componentWillUpdate() { - log.push('inner componentWillUpdate') + log.push('inner componentWillUpdate'); } componentDidUpdate() { - log.push('inner componentDidUpdate') + log.push('inner componentDidUpdate'); } componentWillUnmount() { - log.push('inner componentWillUnmount') + log.push('inner componentWillUnmount'); } } diff --git a/packages/inferno-compat/__tests__/ReactCompositeComponentState.spec.jsx b/packages/inferno-compat/__tests__/ReactCompositeComponentState.spec.jsx index 316f9585e..15f39aa1b 100644 --- a/packages/inferno-compat/__tests__/ReactCompositeComponentState.spec.jsx +++ b/packages/inferno-compat/__tests__/ReactCompositeComponentState.spec.jsx @@ -14,7 +14,7 @@ var ReactDOM = React; describe('ReactCompositeComponent-state', function () { it('should batch unmounts', function () { var outer; - class Inner extends React.Component{ + class Inner extends React.Component { render() { return
; } @@ -29,7 +29,7 @@ describe('ReactCompositeComponent-state', function () { constructor(props) { super(props); - this.state = { showInner: true } + this.state = { showInner: true }; } render() { diff --git a/packages/inferno-compat/__tests__/ReactElement.spec.jsx b/packages/inferno-compat/__tests__/ReactElement.spec.jsx index 20d36b868..64dba6524 100644 --- a/packages/inferno-compat/__tests__/ReactElement.spec.jsx +++ b/packages/inferno-compat/__tests__/ReactElement.spec.jsx @@ -16,7 +16,7 @@ var ReactDOM = React; describe('ReactElement', function () { class ComponentClass extends React.Component { - render () { + render() { return React.createElement('div'); } } @@ -145,7 +145,7 @@ describe('ReactElement', function () { constructor(props) { super(props); - this.state = { valueToReturn: 'hi' } + this.state = { valueToReturn: 'hi' }; } static someStaticMethod() { return 'someReturnValue'; @@ -187,10 +187,10 @@ describe('ReactElement', function () { // be removed. Leaving it in classic as a safety precausion. class Component extends React.Component { render() { - return null + return null; } static get specialType() { - return React.PropTypes.shape({ monkey: React.PropTypes.any }) + return React.PropTypes.shape({ monkey: React.PropTypes.any }); } } @@ -201,8 +201,7 @@ describe('ReactElement', function () { it('does not warn for NaN props', function () { spyOn(console, 'error'); class Test extends React.Component { - render() - { + render() { return
; } } diff --git a/packages/inferno-compat/__tests__/ReactMount.spec.jsx b/packages/inferno-compat/__tests__/ReactMount.spec.jsx index 63065cd82..626c46eae 100644 --- a/packages/inferno-compat/__tests__/ReactMount.spec.jsx +++ b/packages/inferno-compat/__tests__/ReactMount.spec.jsx @@ -64,10 +64,10 @@ describe('ReactMount', function () { class Component extends React.Component { componentDidMount() { - mockMount() + mockMount(); } componentWillUnmount() { - mockUnmount() + mockUnmount(); } render() { return {this.props.text}; diff --git a/packages/inferno-compat/__tests__/ReactMultiChild.spec.jsx b/packages/inferno-compat/__tests__/ReactMultiChild.spec.jsx index bd2472fb9..c0712f426 100644 --- a/packages/inferno-compat/__tests__/ReactMultiChild.spec.jsx +++ b/packages/inferno-compat/__tests__/ReactMultiChild.spec.jsx @@ -27,13 +27,13 @@ describe('ReactMultiChild', function () { class MockComponent extends React.Component { componentDidMount() { - mockMount() + mockMount(); } componentDidUpdate() { - mockUpdate() + mockUpdate(); } componentWillUnmount() { - mockUnmount() + mockUnmount(); } render() { return ; @@ -75,10 +75,10 @@ describe('ReactMultiChild', function () { class MockComponent extends React.Component { componentDidMount() { - mockMount() + mockMount(); } componentWillUnmount() { - mockUnmount() + mockUnmount(); } render() { return ; @@ -117,11 +117,11 @@ describe('ReactMultiChild', function () { class MockComponent extends React.Component { componentDidMount() { - mockMount() + mockMount(); } componentWillUnmount() { - mockUnmount() + mockUnmount(); } render() { @@ -162,10 +162,10 @@ describe('ReactMultiChild', function () { class MockComponent extends React.Component { componentDidMount() { - mockMount() + mockMount(); } componentWillUnmount() { - mockUnmount() + mockUnmount(); } render() { return ; diff --git a/packages/inferno-compat/__tests__/ReactStatelessComponent.spec.jsx b/packages/inferno-compat/__tests__/ReactStatelessComponent.spec.jsx index 1e8a68329..7ae8b4337 100644 --- a/packages/inferno-compat/__tests__/ReactStatelessComponent.spec.jsx +++ b/packages/inferno-compat/__tests__/ReactStatelessComponent.spec.jsx @@ -74,7 +74,7 @@ describe('ReactStatelessComponent', function () { class Child extends React.Component { static contextTypes = { test: React.PropTypes.string.isRequired - } + }; render() { return
{this.context.test}
; @@ -88,7 +88,7 @@ describe('ReactStatelessComponent', function () { class GrandParent extends React.Component { static childContextTypes = { test: React.PropTypes.string.isRequired - } + }; getChildContext() { return { test: this.props.test }; @@ -127,7 +127,7 @@ describe('ReactStatelessComponent', function () { class Parent extends React.Component { static childContextTypes = { lang: React.PropTypes.string - } + }; getChildContext() { return { lang: 'en' }; } diff --git a/packages/inferno-compat/__tests__/misc.spec.jsx b/packages/inferno-compat/__tests__/misc.spec.jsx index 0c13160c9..faf16e10a 100644 --- a/packages/inferno-compat/__tests__/misc.spec.jsx +++ b/packages/inferno-compat/__tests__/misc.spec.jsx @@ -7,7 +7,7 @@ import React, { hydrate, PropTypes, render, - unstable_renderSubtreeIntoContainer, + unstable_renderSubtreeIntoContainer } from 'inferno-compat'; describe('MISC', () => { @@ -49,7 +49,7 @@ describe('MISC', () => { event.stopPropagation(); expect(event.isPropagationStopped()).toBe(true); - }, + } }; spyOn(spyObj, 'foo').and.callThrough(); @@ -173,18 +173,14 @@ describe('MISC', () => { ab ); - expect(JSON.stringify(cloneElement(element).children)).toEqual( - JSON.stringify(element.children), - ); + expect(JSON.stringify(cloneElement(element).children)).toEqual(JSON.stringify(element.children)); }); it('should support props.children', () => { const element = b
} />; const clone = cloneElement(element); - expect(cloneElement(clone).props.children).toEqual( - element.props.children, - ); + expect(cloneElement(clone).props.children).toEqual(element.props.children); }); it('children take precedence over props.children', () => { @@ -244,11 +240,7 @@ describe('MISC', () => { renderInner() { const wrapper = document.createElement('div'); - this.inner = unstable_renderSubtreeIntoContainer( - this, - , - wrapper, - ); + this.inner = unstable_renderSubtreeIntoContainer(this, , wrapper); } } const root = document.createElement('div'); @@ -269,14 +261,9 @@ describe('MISC', () => { renderInner() { const wrapper = document.createElement('div'); const self = this; - unstable_renderSubtreeIntoContainer( - this, - , - wrapper, - function () { - self.inner = this; - }, - ); + unstable_renderSubtreeIntoContainer(this, , wrapper, function () { + self.inner = this; + }); } } const root = document.createElement('div'); diff --git a/packages/inferno-mobx/__tests__/context.spec.jsx b/packages/inferno-mobx/__tests__/context.spec.jsx index d1e31bf7d..c7d3f46ac 100644 --- a/packages/inferno-mobx/__tests__/context.spec.jsx +++ b/packages/inferno-mobx/__tests__/context.spec.jsx @@ -25,7 +25,7 @@ describe('observer based context', () => { expect(warns.length).toBe(1); expect(warns[0]).toEqual( - 'Mobx observer: Using observer to inject stores is deprecated since 4.0. Use `@inject("store1", "store2") @observer ComponentClass` or `inject("store1", "store2")(observer(componentClass))` instead of `@observer(["store1", "store2"]) ComponentClass`', + 'Mobx observer: Using observer to inject stores is deprecated since 4.0. Use `@inject("store1", "store2") @observer ComponentClass` or `inject("store1", "store2")(observer(componentClass))` instead of `@observer(["store1", "store2"]) ComponentClass`' ); console.error = w; @@ -44,7 +44,7 @@ describe('observer based context', () => {
); } - }, + } ); const B = () => ; const A = () => ( @@ -70,7 +70,7 @@ describe('observer based context', () => {
); } - }, + } ); const B = () => ; const A = () => ( @@ -96,7 +96,7 @@ describe('observer based context', () => { ); } - }, + } ); const B = () => ; const A = () => ( @@ -116,9 +116,7 @@ describe('observer based context', () => { render(, container); expect(container.querySelector('span').textContent).toBe('context:bar1337'); - expect(container.querySelector('section').textContent).toBe( - 'context:421337', - ); + expect(container.querySelector('section').textContent).toBe('context:421337'); done(); }); @@ -134,7 +132,7 @@ describe('observer based context', () => { ); } - }, + } ); const B = () => ; const A = () => ( @@ -145,9 +143,7 @@ describe('observer based context', () => { try { render(, container); } catch (e) { - expect(e.message).toBe( - "MobX injector: Store 'foo' is not available! Make sure it is provided by some Provider", - ); + expect(e.message).toBe("MobX injector: Store 'foo' is not available! Make sure it is provided by some Provider"); done(); } }); @@ -179,7 +175,7 @@ describe('observer based context', () => { const a = observable.box(3); const C = observer( ['foo'], - class extends Component { + class extends Component { render() { return (
@@ -193,19 +189,21 @@ describe('observer based context', () => { const B = observer( class extends Component { render() { - return + return ; } } ); const A = observer( class extends Component { render() { - return
- {a.get()}, - - - -
+ return ( +
+ {a.get()}, + + + +
+ ); } } ); @@ -215,9 +213,7 @@ describe('observer based context', () => { a.set(42); expect(container.querySelector('span').textContent).toBe('42'); expect(container.querySelector('div').textContent).toBe('context:3'); - expect(msg).toEqual( - "MobX Provider: Provided store 'foo' has changed. Please avoid replacing stores as the change might not propagate to all children", - ); + expect(msg).toEqual("MobX Provider: Provided store 'foo' has changed. Please avoid replacing stores as the change might not propagate to all children"); console.error = baseWarn; done(); }); @@ -238,24 +234,26 @@ describe('observer based context', () => {
); } - }, + } ); const B = observer( class extends Component { render() { - return + return ; } } ); const A = observer( class extends Component { render() { - return
- {a.get()}, - - - -
+ return ( +
+ {a.get()}, + + + +
+ ); } } ); diff --git a/packages/inferno-mobx/__tests__/inject.spec.jsx b/packages/inferno-mobx/__tests__/inject.spec.jsx index 8cda4052c..490c51dc4 100644 --- a/packages/inferno-mobx/__tests__/inject.spec.jsx +++ b/packages/inferno-mobx/__tests__/inject.spec.jsx @@ -58,9 +58,11 @@ describe('inject based context', () => { const B = () => ; class A extends Component { render() { - return - - + return ( + + + + ); } } render(
, container); @@ -90,18 +92,20 @@ describe('inject based context', () => { const B = () => ; class A extends Component { render() { - return -
- - - -
- + return ( + +
+ - -
-
-
+ +
+ + + +
+ + + ); } } @@ -129,9 +133,11 @@ describe('inject based context', () => { const B = () => ; class A extends Component { render() { - return - - + return ( + + + + ); } } @@ -201,22 +207,24 @@ describe('inject based context', () => { const B = observer( class extends Component { render() { - return + return ; } } ); const A = observer( class extends Component { render() { - return
- {a.get()} - - - -
+ return ( +
+ {a.get()} + + + +
+ ); } } - ) + ); render(
, container); expect(container.querySelector('span').textContent).toBe('3'); @@ -259,7 +267,7 @@ describe('inject based context', () => { ); class B extends Component { render() { - return + return ; } } @@ -303,7 +311,7 @@ describe('inject based context', () => { const C = inject('foo')( class extends Component { - static displayName = 'C' + static displayName = 'C'; render() { expect(this.props.y).toBe(3); return null; diff --git a/packages/inferno-mobx/__tests__/misc.spec.jsx b/packages/inferno-mobx/__tests__/misc.spec.jsx index c43b0a89e..144dfba8f 100644 --- a/packages/inferno-mobx/__tests__/misc.spec.jsx +++ b/packages/inferno-mobx/__tests__/misc.spec.jsx @@ -22,13 +22,15 @@ describe('Mobx Misc', () => { const C = observer( class Foo extends Component { render() { - return
- value: - {x.get()} -
+ return ( +
+ value: + {x.get()} +
+ ); } shouldComponentUpdate() { - called++ + called++; return false; } @@ -65,9 +67,11 @@ describe('Mobx Misc', () => { const B = observer( class Foo extends Component { render() { - return - - + return ( + + + + ); } } ); @@ -124,17 +128,19 @@ describe('Mobx Misc', () => { const a = observable.box(2); const Child = observer( class Foo extends Component { - displayName = 'Child' + displayName = 'Child'; constructor(props) { super(props); a.set(3); - this.state = {} + this.state = {}; } render() { - return
- child: - {a.get()} -{' '} -
+ return ( +
+ child: + {a.get()} -{' '} +
+ ); } } ); diff --git a/packages/inferno-mobx/__tests__/observer.spec.jsx b/packages/inferno-mobx/__tests__/observer.spec.jsx index 5b81c1f05..35579e973 100644 --- a/packages/inferno-mobx/__tests__/observer.spec.jsx +++ b/packages/inferno-mobx/__tests__/observer.spec.jsx @@ -37,7 +37,7 @@ const TodoList = observer( ); } } -) +); const App = () => ; @@ -286,7 +286,7 @@ describe('Mobx Observer', () => { observer( class extends Component { render() { - return null + return null; } } ) @@ -297,7 +297,7 @@ describe('Mobx Observer', () => { observer( class extends Component { render() { - return null + return null; } } ) @@ -332,7 +332,7 @@ describe('Mobx Observer', () => { class Parent extends Component { constructor(props) { super(props); - this.state = { v: 1 } + this.state = { v: 1 }; } render() { return ( diff --git a/packages/inferno-mobx/__tests__/observerPatch.spec.jsx b/packages/inferno-mobx/__tests__/observerPatch.spec.jsx index ea16a5c52..2a3f7d763 100644 --- a/packages/inferno-mobx/__tests__/observerPatch.spec.jsx +++ b/packages/inferno-mobx/__tests__/observerPatch.spec.jsx @@ -21,9 +21,9 @@ describe('Mobx Observer Patch', () => { todos: [ { title: 'a', - completed: false, - }, - ], + completed: false + } + ] }); let todoItemRenderings = 0; @@ -84,7 +84,7 @@ describe('Mobx Observer Patch', () => { store.todos.push({ title: 'b', - completed: true, + completed: true }); expect(container.querySelectorAll('li').length).toBe(2); //, 'list should two items in in the list'); @@ -100,9 +100,7 @@ describe('Mobx Observer Patch', () => { expect(todoListWillReactCount).toBe(0); //, 'should never call componentWillReact') expect(todoItemRenderings).toBe(3); //, 'item2 should have rendered as well'); expect(getObserverTree(store.todos[1], 'title').observers.length).toBe(1); //, 'title observers should have increased'); - expect( - getObserverTree(store.todos[1], 'completed').observers, - ).not.toBeDefined(); //, 'completed observers should not have increased'); + expect(getObserverTree(store.todos[1], 'completed').observers).not.toBeDefined(); //, 'completed observers should not have increased'); const oldTodo = store.todos.pop(); @@ -122,7 +120,7 @@ describe('Mobx Observer Patch', () => { yCalcCount++; return this.x * 2; }, - z: 'hi', + z: 'hi' }); class TestComponent extends Component { @@ -179,12 +177,12 @@ describe('Mobx Observer Patch', () => { selected: 'coffee', items: [ { - name: 'coffee', + name: 'coffee' }, { - name: 'tea', - }, - ], + name: 'tea' + } + ] }); /** Row Class */ @@ -245,7 +243,7 @@ describe('Mobx Observer Patch', () => { ); } - }, + } ); observerPatch(Foo); @@ -269,7 +267,7 @@ describe('Mobx Observer Patch', () => { ); } - }, + } ); observerPatch(Foo); @@ -357,7 +355,7 @@ describe('Mobx Observer Patch', () => { class ComponentA extends Component { constructor(props, ctx) { super(props, ctx); - this.state = {} + this.state = {}; } onClick() { this.setState({}); diff --git a/packages/inferno-mobx/__tests__/observerWrap.spec.jsx b/packages/inferno-mobx/__tests__/observerWrap.spec.jsx index be352116c..fe23e89a3 100644 --- a/packages/inferno-mobx/__tests__/observerWrap.spec.jsx +++ b/packages/inferno-mobx/__tests__/observerWrap.spec.jsx @@ -6,7 +6,7 @@ import { getObserverTree, observable, runInAction } from 'mobx'; const stateLessComp = ({ testProp }) =>
result: {testProp}
; stateLessComp.defaultProps = { - testProp: 'default value for prop testProp', + testProp: 'default value for prop testProp' }; describe('Stateless components observerWrap', () => { @@ -25,9 +25,7 @@ describe('Stateless components observerWrap', () => { it('stateless component', (done) => { const StatelessCompObserver = observerWrap(stateLessComp); - expect(StatelessCompObserver.defaultProps.testProp).toBe( - 'default value for prop testProp', - ); + expect(StatelessCompObserver.defaultProps.testProp).toBe('default value for prop testProp'); const wrapper = ; render(, container); @@ -37,20 +35,17 @@ describe('Stateless components observerWrap', () => { }); it('stateless component with context support', () => { - const InnerComp = (_props, context) => - createElement('p', {}, 'inner: ' + context.testContext); + const InnerComp = (_props, context) => createElement('p', {}, 'inner: ' + context.testContext); const StateLessCompWithContext = ({ store: { value } }, context) => { return createElement('div', {}, [ createElement('p', {}, 'value: ' + value + ', '), createElement('p', {}, 'outer: ' + context.testContext + ', '), - createElement(InnerComp, {}), + createElement(InnerComp, {}) ]); }; - const StateLessCompWithContextObserver = observerWrap( - StateLessCompWithContext, - ); + const StateLessCompWithContextObserver = observerWrap(StateLessCompWithContext); const store = observable({ - value: 0, + value: 0 }); class ContextProvider extends Component { getChildContext() { @@ -62,13 +57,9 @@ describe('Stateless components observerWrap', () => { } } render(, container); - expect(container.textContent.replace(/\n/, '')).toBe( - 'value: 0, outer: hello, inner: hello', - ); + expect(container.textContent.replace(/\n/, '')).toBe('value: 0, outer: hello, inner: hello'); store.value = 1; - expect(container.textContent.replace(/\n/, '')).toBe( - 'value: 1, outer: hello, inner: hello', - ); + expect(container.textContent.replace(/\n/, '')).toBe('value: 1, outer: hello, inner: hello'); }); it('nestedRendering', () => { @@ -76,9 +67,9 @@ describe('Stateless components observerWrap', () => { todos: [ { title: 'a', - completed: false, - }, - ], + completed: false + } + ] }); let todoItemRenderings = 0; @@ -93,10 +84,7 @@ describe('Stateless components observerWrap', () => { onComponentDidUpdate: () => { todoItemUpdates++; }, - onComponentShouldUpdate: ( - { todo: { title: prev } }, - { todo: { title: next } }, - ) => { + onComponentShouldUpdate: ({ todo: { title: prev } }, { todo: { title: next } }) => { return prev !== next; }, onComponentWillUnmount: () => { @@ -104,7 +92,7 @@ describe('Stateless components observerWrap', () => { }, onComponentWillUpdate: () => { todoItemWillUpdates++; - }, + } }; const TodoItem = observerWrap(TodoItemBase); @@ -142,7 +130,7 @@ describe('Stateless components observerWrap', () => { store.todos.push({ title: 'b', - completed: true, + completed: true }); expect(container.querySelectorAll('li').length).toBe(2); //, 'list should two items in in the list'); @@ -159,9 +147,7 @@ describe('Stateless components observerWrap', () => { expect(getObserverTree(store, 'todos').observers.length).toBe(1); //, 'observers count shouldn\'t change'); expect(getObserverTree(store.todos[0], 'title').observers.length).toBe(1); //, 'title observers should not have increased'); expect(getObserverTree(store.todos[1], 'title').observers.length).toBe(1); //, 'title observers should have increased'); - expect( - getObserverTree(store.todos[1], 'completed').observers, - ).not.toBeDefined(); //, 'completed observers should not have increased'); + expect(getObserverTree(store.todos[1], 'completed').observers).not.toBeDefined(); //, 'completed observers should not have increased'); store.todos[1].title += 'b'; @@ -179,9 +165,7 @@ describe('Stateless components observerWrap', () => { expect(getObserverTree(store, 'todos').observers.length).toBe(1); //, 'observers count shouldn\'t change'); expect(getObserverTree(store.todos[0], 'title').observers.length).toBe(1); //, 'title observers should not have increased'); expect(getObserverTree(store.todos[1], 'title').observers.length).toBe(1); //, 'title observers should have increased'); - expect( - getObserverTree(store.todos[1], 'completed').observers, - ).not.toBeDefined(); //, 'completed observers should not have increased'); + expect(getObserverTree(store.todos[1], 'completed').observers).not.toBeDefined(); //, 'completed observers should not have increased'); const oldTodo = store.todos.pop(); @@ -195,9 +179,7 @@ describe('Stateless components observerWrap', () => { expect(todoItemUpdates).toBe(2); expect(todoItemWillUpdates).toBe(2); expect(getObserverTree(store, 'todos').observers).not.toBeDefined(); - expect( - getObserverTree(store.todos[0], 'title').observers, - ).not.toBeDefined(); + expect(getObserverTree(store.todos[0], 'title').observers).not.toBeDefined(); }); it('nestedRendering without should update hook', () => { @@ -205,9 +187,9 @@ describe('Stateless components observerWrap', () => { todos: [ { title: 'a', - completed: false, - }, - ], + completed: false + } + ] }); let todoItemRenderings = 0; @@ -227,7 +209,7 @@ describe('Stateless components observerWrap', () => { }, onComponentWillUpdate: () => { todoItemWillUpdates++; - }, + } }; const TodoItem = observerWrap(TodoItemBase); @@ -264,7 +246,7 @@ describe('Stateless components observerWrap', () => { store.todos.push({ title: 'b', - completed: true, + completed: true }); expect(container.querySelectorAll('li').length).toBe(2); //, 'list should two items in in the list'); @@ -281,9 +263,7 @@ describe('Stateless components observerWrap', () => { expect(getObserverTree(store, 'todos').observers.length).toBe(1); //, 'observers count shouldn\'t change'); expect(getObserverTree(store.todos[0], 'title').observers.length).toBe(1); //, 'title observers should not have increased'); expect(getObserverTree(store.todos[1], 'title').observers.length).toBe(1); //, 'title observers should have increased'); - expect( - getObserverTree(store.todos[1], 'completed').observers, - ).not.toBeDefined(); //, 'completed observers should not have increased'); + expect(getObserverTree(store.todos[1], 'completed').observers).not.toBeDefined(); //, 'completed observers should not have increased'); store.todos[1].title += 'b'; @@ -301,9 +281,7 @@ describe('Stateless components observerWrap', () => { expect(getObserverTree(store, 'todos').observers.length).toBe(1); //, 'observers count shouldn\'t change'); expect(getObserverTree(store.todos[0], 'title').observers.length).toBe(1); //, 'title observers should not have increased'); expect(getObserverTree(store.todos[1], 'title').observers.length).toBe(1); //, 'title observers should have increased'); - expect( - getObserverTree(store.todos[1], 'completed').observers, - ).not.toBeDefined(); //, 'completed observers should not have increased'); + expect(getObserverTree(store.todos[1], 'completed').observers).not.toBeDefined(); //, 'completed observers should not have increased'); const oldTodo = store.todos.pop(); @@ -317,9 +295,7 @@ describe('Stateless components observerWrap', () => { expect(todoItemUpdates).toBe(4); expect(todoItemWillUpdates).toBe(4); expect(getObserverTree(store, 'todos').observers).not.toBeDefined(); - expect( - getObserverTree(store.todos[0], 'title').observers, - ).not.toBeDefined(); + expect(getObserverTree(store.todos[0], 'title').observers).not.toBeDefined(); }); it('keep views alive', () => { @@ -330,7 +306,7 @@ describe('Stateless components observerWrap', () => { yCalcCount++; return this.x * 2; }, - z: 'hi', + z: 'hi' }); const TestComponent = observerWrap(() => { @@ -366,12 +342,12 @@ describe('Stateless components observerWrap', () => { selected: 'coffee', items: [ { - name: 'coffee', + name: 'coffee' }, { - name: 'tea', - }, - ], + name: 'tea' + } + ] }); const Row = observerWrap(({ item }) => { @@ -408,7 +384,7 @@ describe('Stateless components observerWrap', () => { it('Callbacks are bound on render', function () { const data = observable({ - name: 'tea', + name: 'tea' }); let a = 0; @@ -424,13 +400,7 @@ describe('Stateless components observerWrap', () => { const check = ({ item: prev }, { item: next }) => prev !== next; - render( - (p !== n ? a++ : x++)} - />, - container, - ); + render( (p !== n ? a++ : x++)} />, container); expect(a).toBe(0); expect(x).toBe(0); @@ -441,13 +411,7 @@ describe('Stateless components observerWrap', () => { expect(x).toBe(1); - render( - (p !== n ? a++ : y++)} - />, - container, - ); + render( (p !== n ? a++ : y++)} />, container); expect(a).toBe(1); expect(x).toBe(1); @@ -461,14 +425,7 @@ describe('Stateless components observerWrap', () => { expect(x).toBe(1); expect(y).toBe(1); - render( - (p !== n ? a++ : z++)} - onComponentShouldUpdate={check} - />, - container, - ); + render( (p !== n ? a++ : z++)} onComponentShouldUpdate={check} />, container); expect(a).toBe(1); expect(z).toBe(0); @@ -480,13 +437,7 @@ describe('Stateless components observerWrap', () => { expect(y).toBe(2); - render( - (p !== n ? a++ : x++)} - />, - container, - ); + render( (p !== n ? a++ : x++)} />, container); expect(a).toBe(2); expect(x).toBe(1); @@ -540,7 +491,7 @@ describe('Stateless components observerWrap', () => { {foo} ); - }), + }) ); expect(msg.length).toBe(1); diff --git a/packages/inferno-mobx/__tests__/stateless.spec.jsx b/packages/inferno-mobx/__tests__/stateless.spec.jsx index 3dbef5ed4..f65373ac4 100644 --- a/packages/inferno-mobx/__tests__/stateless.spec.jsx +++ b/packages/inferno-mobx/__tests__/stateless.spec.jsx @@ -5,7 +5,7 @@ import { createElement } from 'inferno-create-element'; const stateLessComp = ({ testProp }) =>
result: {testProp}
; stateLessComp.defaultProps = { - testProp: 'default value for prop testProp', + testProp: 'default value for prop testProp' }; describe('Stateless components MOBX', () => { @@ -24,9 +24,7 @@ describe('Stateless components MOBX', () => { it('stateless component', (done) => { const StatelessCompObserver = observer(stateLessComp); - expect(StatelessCompObserver.defaultProps.testProp).toBe( - 'default value for prop testProp', - ); + expect(StatelessCompObserver.defaultProps.testProp).toBe('default value for prop testProp'); const wrapper = ; render(, container); @@ -36,8 +34,7 @@ describe('Stateless components MOBX', () => { }); it('stateless component with context support', (done) => { - const StateLessCompWithContext = (props, context) => - createElement('div', {}, 'context: ' + context.testContext); + const StateLessCompWithContext = (props, context) => createElement('div', {}, 'context: ' + context.testContext); const StateLessCompWithContextObserver = observer(StateLessCompWithContext); class ContextProvider extends Component { @@ -51,9 +48,7 @@ describe('Stateless components MOBX', () => { } render(, container); - expect(container.textContent.replace(/\n/, '')).toBe( - 'context: hello world', - ); + expect(container.textContent.replace(/\n/, '')).toBe('context: hello world'); done(); }); }); diff --git a/packages/inferno-mobx/__tests__/transactions.spec.jsx b/packages/inferno-mobx/__tests__/transactions.spec.jsx index 49c2eff89..43d16b724 100644 --- a/packages/inferno-mobx/__tests__/transactions.spec.jsx +++ b/packages/inferno-mobx/__tests__/transactions.spec.jsx @@ -22,7 +22,7 @@ describe('Mobx Transacations', () => { b: observable.box(false), c: computed(function () { return foo.b.get(); - }), + }) }; function flipStuff() { runInAction(() => { @@ -41,13 +41,9 @@ describe('Mobx Transacations', () => { } render() { - return ( -
- {[foo.a.get(), foo.b.get(), foo.c.get()].join(',')} -
- ); + return
{[foo.a.get(), foo.b.get(), foo.c.get()].join(',')}
; } - }, + } ); render(, container); diff --git a/packages/inferno-redux/src/connect/wrapMapToProps.ts b/packages/inferno-redux/src/connect/wrapMapToProps.ts index 966c0f5fc..458a995ff 100644 --- a/packages/inferno-redux/src/connect/wrapMapToProps.ts +++ b/packages/inferno-redux/src/connect/wrapMapToProps.ts @@ -5,7 +5,7 @@ export const wrapMapToPropsConstant = (getConstant) => { return (dispatch, options) => { const constant = getConstant(dispatch, options); - const constantSelector = () => constant; + const constantSelector = (): unknown => constant; (constantSelector as any).dependsOnOwnProps = false; return constantSelector; }; @@ -18,8 +18,11 @@ export const wrapMapToPropsConstant = (getConstant) => { // A length of one signals that mapToProps does not depend on props from the parent component. // A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and // therefore not reporting its length accurately.. -export const getDependsOnOwnProps = (mapToProps) => - mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? !!mapToProps.dependsOnOwnProps : mapToProps.length !== 1; +export const getDependsOnOwnProps = (mapToProps): boolean => + mapToProps.dependsOnOwnProps !== null && + mapToProps.dependsOnOwnProps !== undefined + ? !!mapToProps.dependsOnOwnProps + : mapToProps.length !== 1; // Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction, // this function wraps mapToProps in a proxy function which does several things: @@ -36,7 +39,9 @@ export const getDependsOnOwnProps = (mapToProps) => export const wrapMapToPropsFunc = (mapToProps, methodName) => { return (_dispatch, { displayName }) => { const proxy: any = (stateOrDispatch, ownProps) => - proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch); + proxy.dependsOnOwnProps + ? proxy.mapToProps(stateOrDispatch, ownProps) + : proxy.mapToProps(stateOrDispatch); proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps); diff --git a/packages/inferno-router/src/Redirect.ts b/packages/inferno-router/src/Redirect.ts index 27ae842d8..dfc915154 100644 --- a/packages/inferno-router/src/Redirect.ts +++ b/packages/inferno-router/src/Redirect.ts @@ -1,4 +1,4 @@ -import { Component, InfernoNode } from 'inferno'; +import { Component, type InfernoNode } from 'inferno'; import { type Location, parsePath, type Path } from 'history'; import { combinePath, invariant } from './utils'; import { isString } from 'inferno-shared'; diff --git a/packages/inferno-router/src/Route.ts b/packages/inferno-router/src/Route.ts index 5140a8d61..f86020089 100644 --- a/packages/inferno-router/src/Route.ts +++ b/packages/inferno-router/src/Route.ts @@ -1,8 +1,4 @@ -import { - Component, - createComponentVNode, - type InfernoNode, -} from 'inferno'; +import { Component, createComponentVNode, type InfernoNode } from 'inferno'; import { VNodeFlags } from 'inferno-vnode-flags'; import { invariant, warning } from './utils'; import { matchPath } from './matchPath'; @@ -114,7 +110,7 @@ class Route extends Component, RouteState> { public componentWillReceiveProps( nextProps, nextContext: { router: TContextRouter }, - ) { + ): void { if (process.env.NODE_ENV !== 'production') { warning( !(nextProps.location && !this.props.location), @@ -138,12 +134,13 @@ class Route extends Component, RouteState> { props: IRouteProps, state: RouteState, context: { router: TContextRouter }, - ) { + ): InfernoNode { + // eslint-disable-next-line @typescript-eslint/naming-convention const { match, __loaderData__ } = state; const { children, component, render, loader } = props; const { history, route, staticContext } = context.router; const location = props.location || route.location; - const renderProps = { + const renderProps: any = { match, location, history, @@ -177,11 +174,11 @@ class Route extends Component, RouteState> { } if (render) { - // @ts-expect-error return match ? render(renderProps, this.context) : null; } if (typeof children === 'function') { + // eslint-disable-next-line @typescript-eslint/ban-types return (children as Function)(renderProps); } diff --git a/packages/inferno-router/src/StaticRouter.ts b/packages/inferno-router/src/StaticRouter.ts index 3a6b536f1..16c394a16 100644 --- a/packages/inferno-router/src/StaticRouter.ts +++ b/packages/inferno-router/src/StaticRouter.ts @@ -2,7 +2,7 @@ import { Component, createComponentVNode, type InfernoNode, - type Props + type Props, } from 'inferno'; import { VNodeFlags } from 'inferno-vnode-flags'; import { Action, type Location, parsePath, type Path } from 'history'; diff --git a/packages/inferno-server/src/renderToString.queuestream.ts b/packages/inferno-server/src/renderToString.queuestream.ts index b41cf9b5d..aa4145c38 100644 --- a/packages/inferno-server/src/renderToString.queuestream.ts +++ b/packages/inferno-server/src/renderToString.queuestream.ts @@ -263,7 +263,7 @@ export class RenderQueueStream extends Readable { } renderedString += `>`; - if (String(type).match(/[\s\n\/='"\0<>]/)) { + if (String(type).match(/[\s\n/='"\0<>]/)) { // eslint-disable-next-line @typescript-eslint/no-throw-literal throw renderedString; } diff --git a/packages/inferno-server/src/renderToString.stream.ts b/packages/inferno-server/src/renderToString.stream.ts index 3463f9bc1..d9a55426f 100644 --- a/packages/inferno-server/src/renderToString.stream.ts +++ b/packages/inferno-server/src/renderToString.stream.ts @@ -127,7 +127,7 @@ export class RenderStream extends Readable { instance.context = context; instance.$BR = true; - return Promise.resolve(!hasNewAPI && instance.componentWillMount && instance.componentWillMount()).then( + return Promise.resolve(!hasNewAPI && instance.componentWillMount?.()).then( () => { mergePendingState(instance); @@ -248,7 +248,7 @@ export class RenderStream extends Readable { renderedString += `>`; this.push(renderedString); - if (String(type).match(/[\s\n\/='"\0<>]/)) { + if (String(type).match(/[\s\n/='"\0<>]/)) { // eslint-disable-next-line @typescript-eslint/no-throw-literal throw renderedString; } diff --git a/packages/inferno-server/src/renderToString.ts b/packages/inferno-server/src/renderToString.ts index 9123db03d..1ecd4512c 100644 --- a/packages/inferno-server/src/renderToString.ts +++ b/packages/inferno-server/src/renderToString.ts @@ -190,7 +190,7 @@ function renderVNodeToString(vNode, parent, context): string { } } - if (String(type).match(/[\s\n\/='"\0<>]/)) { + if (String(type).match(/[\s\n/='"\0<>]/)) { // eslint-disable-next-line @typescript-eslint/no-throw-literal throw renderedString; } diff --git a/packages/inferno-shared/src/index.ts b/packages/inferno-shared/src/index.ts index c67bf40c1..dd6d27138 100644 --- a/packages/inferno-shared/src/index.ts +++ b/packages/inferno-shared/src/index.ts @@ -68,7 +68,7 @@ const KNOWN_STATICS = { caller: true, callee: true, arguments: true, - arity: true + arity: true, }; export function hoistStaticProperties( diff --git a/packages/inferno-test-utils/__tests__/testUtils.spec.jsx b/packages/inferno-test-utils/__tests__/testUtils.spec.jsx index 70a3e056a..7b284abe9 100644 --- a/packages/inferno-test-utils/__tests__/testUtils.spec.jsx +++ b/packages/inferno-test-utils/__tests__/testUtils.spec.jsx @@ -24,21 +24,10 @@ import { scryRenderedDOMElementsWithClass, scryRenderedDOMElementsWithTag, scryRenderedVNodesWithType, - scryVNodesWithType, + scryVNodesWithType } from 'inferno-test-utils'; -const VNodeKeys = [ - 'children', - 'childFlags', - 'className', - 'dom', - 'flags', - 'isValidated', - 'key', - 'ref', - 'props', - 'type', -].sort(); +const VNodeKeys = ['children', 'childFlags', 'className', 'dom', 'flags', 'isValidated', 'key', 'ref', 'props', 'type'].sort(); const createDOMElement = (tagName) => document.createElement(tagName); @@ -129,37 +118,16 @@ describe('Test Utils', () => { describe('isVNodeOfType', () => { it('should return true for VNodes with a specified type', () => { expect(isVNodeOfType(createElement('div'), 'div')).toBe(true); - expect( - isVNodeOfType(createElement(FunctionalComponent), FunctionalComponent), - ).toBe(true); - expect( - isVNodeOfType( - createElement(ClassComponent), - ClassComponent, - ), - ).toBe(true); - expect( - isVNodeOfType( - createElement(ExtendClassComponent), - ExtendClassComponent, - ), - ).toBe(true); + expect(isVNodeOfType(createElement(FunctionalComponent), FunctionalComponent)).toBe(true); + expect(isVNodeOfType(createElement(ClassComponent), ClassComponent)).toBe(true); + expect(isVNodeOfType(createElement(ExtendClassComponent), ExtendClassComponent)).toBe(true); }); it('should return false for VNodes with a specified type', () => { expect(isVNodeOfType(createElement('div'), 'h1')).toBe(false); - expect( - isVNodeOfType(createElement(FunctionalComponent), ClassComponent), - ).toBe(false); - expect( - isVNodeOfType( - createElement(ClassComponent), - ExtendClassComponent, - ), - ).toBe(false); - expect( - isVNodeOfType(createElement(ExtendClassComponent), FunctionalComponent), - ).toBe(false); + expect(isVNodeOfType(createElement(FunctionalComponent), ClassComponent)).toBe(false); + expect(isVNodeOfType(createElement(ClassComponent), ExtendClassComponent)).toBe(false); + expect(isVNodeOfType(createElement(ExtendClassComponent), FunctionalComponent)).toBe(false); }); }); @@ -200,45 +168,21 @@ describe('Test Utils', () => { }); it('should return false for VNodes of incorrect type', () => { - expect(isFunctionalVNode(createElement(ClassComponent))).toBe( - false, - ); - expect(isFunctionalVNode(createElement(ExtendClassComponent))).toBe( - false, - ); + expect(isFunctionalVNode(createElement(ClassComponent))).toBe(false); + expect(isFunctionalVNode(createElement(ExtendClassComponent))).toBe(false); expect(isFunctionalVNode(createElement('div'))).toBe(false); }); }); describe('isFunctionalVNodeOfType', () => { it('should return true for VNodes of specific stateless function type', () => { - expect( - isFunctionalVNodeOfType( - createElement(FunctionalComponent), - FunctionalComponent, - ), - ).toBe(true); + expect(isFunctionalVNodeOfType(createElement(FunctionalComponent), FunctionalComponent)).toBe(true); }); it('should return false for VNodes of incorrect type', () => { - expect( - isFunctionalVNodeOfType( - createElement(FunctionalComponent), - AnotherFunctionalComponent, - ), - ).toBe(false); - expect( - isFunctionalVNodeOfType( - createElement(FunctionalComponent), - ClassComponent, - ), - ).toBe(false); - expect( - isFunctionalVNodeOfType( - createElement(FunctionalComponent), - ExtendClassComponent, - ), - ).toBe(false); + expect(isFunctionalVNodeOfType(createElement(FunctionalComponent), AnotherFunctionalComponent)).toBe(false); + expect(isFunctionalVNodeOfType(createElement(FunctionalComponent), ClassComponent)).toBe(false); + expect(isFunctionalVNodeOfType(createElement(FunctionalComponent), ExtendClassComponent)).toBe(false); }); }); @@ -256,58 +200,18 @@ describe('Test Utils', () => { describe('isClassVNodeOfType', () => { it('should return true for VNodes of specific class type', () => { - expect( - isClassVNodeOfType( - createElement(ClassComponent), - ClassComponent, - ), - ).toBe(true); - expect( - isClassVNodeOfType( - createElement(ExtendClassComponent), - ExtendClassComponent, - ), - ).toBe(true); + expect(isClassVNodeOfType(createElement(ClassComponent), ClassComponent)).toBe(true); + expect(isClassVNodeOfType(createElement(ExtendClassComponent), ExtendClassComponent)).toBe(true); }); it('should return false for VNodes of incorrect type', () => { - expect( - isClassVNodeOfType( - createElement(ClassComponent), - AnotherClassComponent, - ), - ).toBe(false); - expect( - isClassVNodeOfType( - createElement(ClassComponent), - AnotherExtendClassComponent, - ), - ).toBe(false); - expect( - isClassVNodeOfType( - createElement(ClassComponent), - FunctionalComponent, - ), - ).toBe(false); - - expect( - isClassVNodeOfType( - createElement(ExtendClassComponent), - AnotherClassComponent, - ), - ).toBe(false); - expect( - isClassVNodeOfType( - createElement(ExtendClassComponent), - AnotherExtendClassComponent, - ), - ).toBe(false); - expect( - isClassVNodeOfType( - createElement(ExtendClassComponent), - FunctionalComponent, - ), - ).toBe(false); + expect(isClassVNodeOfType(createElement(ClassComponent), AnotherClassComponent)).toBe(false); + expect(isClassVNodeOfType(createElement(ClassComponent), AnotherExtendClassComponent)).toBe(false); + expect(isClassVNodeOfType(createElement(ClassComponent), FunctionalComponent)).toBe(false); + + expect(isClassVNodeOfType(createElement(ExtendClassComponent), AnotherClassComponent)).toBe(false); + expect(isClassVNodeOfType(createElement(ExtendClassComponent), AnotherExtendClassComponent)).toBe(false); + expect(isClassVNodeOfType(createElement(ExtendClassComponent), FunctionalComponent)).toBe(false); }); }); @@ -350,9 +254,7 @@ describe('Test Utils', () => { expect(isDOMElementOfType(createDOMElement('div'), {})).toBe(false); expect(isDOMElementOfType(createDOMElement('div'), [])).toBe(false); expect(isDOMElementOfType(createDOMElement('div'), 10)).toBe(false); - expect(isDOMElementOfType(createDOMElement('div'), undefined)).toBe( - false, - ); + expect(isDOMElementOfType(createDOMElement('div'), undefined)).toBe(false); expect(isDOMElementOfType(createDOMElement('div'), null)).toBe(false); }); }); @@ -364,23 +266,15 @@ describe('Test Utils', () => { const extendClassVNode = createElement(ExtendClassComponent); it('should return true for rendered Class Components', () => { - expect( - isRenderedClassComponent(renderIntoContainer(createClassVNode)), - ).toBe(true); - expect( - isRenderedClassComponent(renderIntoContainer(extendClassVNode)), - ).toBe(true); + expect(isRenderedClassComponent(renderIntoContainer(createClassVNode))).toBe(true); + expect(isRenderedClassComponent(renderIntoContainer(extendClassVNode))).toBe(true); }); it('should return false for non-rendered Class Components', () => { expect(isRenderedClassComponent(createClassVNode)).toBe(false); expect(isRenderedClassComponent(extendClassVNode)).toBe(false); - expect( - isRenderedClassComponent(renderIntoContainer(functionalVNode)), - ).toBe(false); - expect(isRenderedClassComponent(renderIntoContainer(DOMVNode))).toBe( - false, - ); + expect(isRenderedClassComponent(renderIntoContainer(functionalVNode))).toBe(false); + expect(isRenderedClassComponent(renderIntoContainer(DOMVNode))).toBe(false); }); }); @@ -389,70 +283,20 @@ describe('Test Utils', () => { const extendClassVNode = createElement(ExtendClassComponent); it('should return true for rendered Class Components of specific type', () => { - expect( - isRenderedClassComponentOfType( - renderIntoContainer(createClassVNode), - ClassComponent, - ), - ).toBe(true); - expect( - isRenderedClassComponentOfType( - renderIntoContainer(extendClassVNode), - ExtendClassComponent, - ), - ).toBe(true); + expect(isRenderedClassComponentOfType(renderIntoContainer(createClassVNode), ClassComponent)).toBe(true); + expect(isRenderedClassComponentOfType(renderIntoContainer(extendClassVNode), ExtendClassComponent)).toBe(true); }); it('should return false for rendered Class Components of incorrect type', () => { - expect( - isRenderedClassComponentOfType( - renderIntoContainer(createClassVNode), - AnotherClassComponent, - ), - ).toBe(false); - expect( - isRenderedClassComponentOfType( - renderIntoContainer(createClassVNode), - ExtendClassComponent, - ), - ).toBe(false); - expect( - isRenderedClassComponentOfType( - renderIntoContainer(createClassVNode), - FunctionalComponent, - ), - ).toBe(false); - expect( - isRenderedClassComponentOfType( - renderIntoContainer(createClassVNode), - 'div', - ), - ).toBe(false); - - expect( - isRenderedClassComponentOfType( - renderIntoContainer(extendClassVNode), - AnotherExtendClassComponent, - ), - ).toBe(false); - expect( - isRenderedClassComponentOfType( - renderIntoContainer(extendClassVNode), - ClassComponent, - ), - ).toBe(false); - expect( - isRenderedClassComponentOfType( - renderIntoContainer(extendClassVNode), - FunctionalComponent, - ), - ).toBe(false); - expect( - isRenderedClassComponentOfType( - renderIntoContainer(extendClassVNode), - 'div', - ), - ).toBe(false); + expect(isRenderedClassComponentOfType(renderIntoContainer(createClassVNode), AnotherClassComponent)).toBe(false); + expect(isRenderedClassComponentOfType(renderIntoContainer(createClassVNode), ExtendClassComponent)).toBe(false); + expect(isRenderedClassComponentOfType(renderIntoContainer(createClassVNode), FunctionalComponent)).toBe(false); + expect(isRenderedClassComponentOfType(renderIntoContainer(createClassVNode), 'div')).toBe(false); + + expect(isRenderedClassComponentOfType(renderIntoContainer(extendClassVNode), AnotherExtendClassComponent)).toBe(false); + expect(isRenderedClassComponentOfType(renderIntoContainer(extendClassVNode), ClassComponent)).toBe(false); + expect(isRenderedClassComponentOfType(renderIntoContainer(extendClassVNode), FunctionalComponent)).toBe(false); + expect(isRenderedClassComponentOfType(renderIntoContainer(extendClassVNode), 'div')).toBe(false); }); }); @@ -572,7 +416,7 @@ describe('Test Utils', () => {
- , + ); it('should return an array of matched DOM elements', () => { @@ -605,10 +449,7 @@ describe('Test Utils', () => { }); it('should accept an array of class names', () => { - const result = scryRenderedDOMElementsWithClass(tree3, [ - 'level-2', - 'one', - ]); + const result = scryRenderedDOMElementsWithClass(tree3, ['level-2', 'one']); expect(result instanceof Array).toBeTruthy(); expect(result.length).toBe(1); }); @@ -626,7 +467,7 @@ describe('Test Utils', () => {

Paragraph 2

Paragraph 3

- , + ); it('should return an array of matched DOM elements', () => { @@ -654,7 +495,7 @@ describe('Test Utils', () => { - , + ); it('should return an array of matched VNodes', () => { @@ -718,7 +559,7 @@ describe('Test Utils', () => {
- , + ); it('should throw an error when more than one result is found #1', () => { @@ -772,7 +613,7 @@ describe('Test Utils', () => {

Paragraph 3

test - , + ); it('should throw an error when more than one result is found #2', () => { @@ -806,7 +647,7 @@ describe('Test Utils', () => { - , + ); it('should throw an error when more than one result is found #3', () => { diff --git a/packages/inferno-test-utils/src/jest.ts b/packages/inferno-test-utils/src/jest.ts index 67cc5343a..85aa576d6 100644 --- a/packages/inferno-test-utils/src/jest.ts +++ b/packages/inferno-test-utils/src/jest.ts @@ -1,30 +1,33 @@ -import { render, rerender, VNode } from 'inferno'; +import { render, rerender, type VNode } from 'inferno'; import { ChildFlags, VNodeFlags } from 'inferno-vnode-flags'; import { isArray, isNullOrUndef } from 'inferno-shared'; import { getTagNameOfVNode } from './utils'; // Jest Snapshot Utilities -// Jest formats it's snapshots prettily because it knows how to play with the React test renderer. +// Jest formats its snapshots prettily because it knows how to play with the React test renderer. // Symbols and algorithm have been reversed from the following file: // https://github.com/facebook/react/blob/v15.4.2/src/renderers/testing/ReactTestRenderer.js#L98 -const symbolValue = typeof Symbol === 'undefined' ? 'react.test.json' : Symbol.for('react.test.json'); +const symbolValue = + typeof Symbol === 'undefined' + ? 'react.test.json' + : Symbol.for('react.test.json'); -function createSnapshotObject(object: object) { +function createSnapshotObject(object: object): object { Object.defineProperty(object, '$$typeof', { - value: symbolValue + value: symbolValue, }); return object; } -function removeChildren(item) { +function removeChildren(item): void { if (Array.isArray(item)) { for (let i = 0; i < item.length; ++i) { removeChildren(item[i]); } - } else if (item && item.props) { - if (item.props.hasOwnProperty('children')) { + } else if (item?.props) { + if (Object.hasOwn(item.props, 'children')) { delete item.props.children; } @@ -32,7 +35,7 @@ function removeChildren(item) { } } -function buildVNodeSnapshot(vNode: VNode) { +function buildVNodeSnapshot(vNode: VNode): unknown { const flags = vNode.flags; const children: any = vNode.children; let childVNode; @@ -52,7 +55,7 @@ function buildVNodeSnapshot(vNode: VNode) { childVNode.push(buildVNodeSnapshot(children[i])); } } else if (vNode.childFlags & ChildFlags.HasTextChildren) { - childVNode = vNode.children + ''; + childVNode = (vNode.children as string | number) + ''; } if (flags & VNodeFlags.Element) { @@ -76,7 +79,7 @@ function buildVNodeSnapshot(vNode: VNode) { snapShotProps.className = vNode.className; } - // Jest expects children to always be array + // Jest expects children to always be an array if (childVNode && !isArray(childVNode)) { childVNode = [childVNode]; } @@ -84,20 +87,20 @@ function buildVNodeSnapshot(vNode: VNode) { return createSnapshotObject({ children: childVNode, props: snapShotProps, - type: getTagNameOfVNode(vNode) + type: getTagNameOfVNode(vNode), }); } else if (flags & VNodeFlags.Text) { - childVNode = vNode.children + ''; + childVNode = (vNode.children as string | number) + ''; } return childVNode; } -export function vNodeToSnapshot(vNode: VNode) { +export function vNodeToSnapshot(vNode: VNode): unknown { return buildVNodeSnapshot(vNode); } -export function renderToSnapshot(input: VNode) { +export function renderToSnapshot(input: VNode): unknown { render(input, document.createElement('div')); rerender(); // Flush all pending set state calls const snapshot = vNodeToSnapshot(input); diff --git a/packages/inferno-test-utils/src/utils.ts b/packages/inferno-test-utils/src/utils.ts index c7873b64e..f3de2a982 100644 --- a/packages/inferno-test-utils/src/utils.ts +++ b/packages/inferno-test-utils/src/utils.ts @@ -1,9 +1,14 @@ -import { Component, VNode } from 'inferno'; +import { Component, type InfernoNode, type VNode } from 'inferno'; import { VNodeFlags } from 'inferno-vnode-flags'; import { isNumber } from 'inferno-shared'; export function isVNode(obj: any): obj is VNode { - return Boolean(obj) && typeof obj === 'object' && isNumber((obj as any).flags) && (obj as any).flags > 0; + return ( + Boolean(obj) && + typeof obj === 'object' && + isNumber(obj.flags) && + obj.flags > 0 + ); } export function isTextVNode(obj: VNode): obj is VNode { @@ -22,16 +27,20 @@ export function isComponentVNode(obj: VNode): obj is VNode { return isFunctionalVNode(obj) || isClassVNode(obj); } -export function getTagNameOfVNode(vNode: VNode) { - return (vNode && vNode.dom && vNode.dom.tagName.toLowerCase()) || undefined; +export function getTagNameOfVNode(vNode: VNode): string | undefined { + return vNode?.dom?.tagName.toLowerCase(); } export function isDOMVNode(vNode: any): vNode is VNode { - return !isComponentVNode(vNode) && !isTextVNode(vNode) && (vNode.flags & VNodeFlags.Element) > 0; + return ( + !isComponentVNode(vNode) && + !isTextVNode(vNode) && + (vNode.flags & VNodeFlags.Element) > 0 + ); } export class Wrapper extends Component { - public render() { + public render(): InfernoNode { return this.props.children; } } diff --git a/packages/inferno/__tests__/newlifecycle.spec.tsx b/packages/inferno/__tests__/newlifecycle.spec.tsx index d8e1bf9ad..e372ba6c3 100644 --- a/packages/inferno/__tests__/newlifecycle.spec.tsx +++ b/packages/inferno/__tests__/newlifecycle.spec.tsx @@ -151,7 +151,7 @@ describe('Lifecycle methods', () => { // Outer & Inner props update log = []; render(, container); - // Note: we differ from react here in that we apply changes to the dom + // Note: we differ from React here in that we apply changes to the dom // as we find them while diffing. React on the other hand separates this // into specific phases, meaning changes to the dom are only flushed // once the whole diff-phase is complete. This is why diff --git a/packages/inferno/src/core/component.ts b/packages/inferno/src/core/component.ts index ca1e42ebd..f682a0f31 100644 --- a/packages/inferno/src/core/component.ts +++ b/packages/inferno/src/core/component.ts @@ -12,12 +12,7 @@ import { const COMPONENTS_QUEUE: Array> = []; -const nextTick = - typeof Promise !== 'undefined' - ? Promise.resolve().then.bind(Promise.resolve()) - : function (a) { - window.setTimeout(a, 0); - }; +const nextTick = Promise.resolve().then.bind(Promise.resolve()); let microTaskPending = false; function queueStateChanges( @@ -88,7 +83,7 @@ function callSetStateCallbacks(component): void { } export function rerender(): void { - let component; + let component: Component | undefined; microTaskPending = false; while ((component = COMPONENTS_QUEUE.shift())) { @@ -254,7 +249,7 @@ export abstract class Component

> /* eslint-disable */ // @ts-ignore - public render(props: Readonly<{ children?: InfernoNode } & P>, state: Readonly, context: any,): InfernoNode { + public render(props: Readonly<{ children?: InfernoNode } & P>, state: Readonly, context: any): InfernoNode { return null; } /* eslint-enable */ diff --git a/packages/inferno/src/core/implementation.ts b/packages/inferno/src/core/implementation.ts index 49f965fe9..91329f9a0 100644 --- a/packages/inferno/src/core/implementation.ts +++ b/packages/inferno/src/core/implementation.ts @@ -1,4 +1,12 @@ -import type { ForwardRef, InfernoNode, Ref, Refs, VNode } from './types'; +/* eslint-disable @typescript-eslint/ban-types */ +import type { + ForwardRef, + InfernoNode, + ParentDOM, + Ref, + Refs, + VNode, +} from './types'; import { ChildFlags, VNodeFlags } from 'inferno-vnode-flags'; import { isArray, @@ -15,7 +23,7 @@ import { validateVNodeElementChildren, } from './validate'; import { Fragment, mergeUnsetProperties, options } from './../DOM/utils/common'; -import { Component, type ComponentType } from './component'; +import { type Component, type ComponentType } from './component'; const keyPrefix = '$'; @@ -28,7 +36,7 @@ function V( props, ref, type, -) { +): void { if (process.env.NODE_ENV !== 'production') { this.isValidated = false; } @@ -88,7 +96,7 @@ export function createVNode

( return vNode; } -function mergeDefaultHooks(flags, type, ref) { +function mergeDefaultHooks(flags, type, ref): any { if (flags & VNodeFlags.ComponentClass) { return ref; } @@ -107,7 +115,7 @@ function mergeDefaultHooks(flags, type, ref) { return mergeUnsetProperties(ref, defaultHooks); } -function mergeDefaultProps(flags, type, props) { +function mergeDefaultProps(flags, type, props): any { // set default props const defaultProps = (flags & VNodeFlags.ForwardRef ? type.render : type) .defaultProps; @@ -117,13 +125,13 @@ function mergeDefaultProps(flags, type, props) { } if (isNullOrUndef(props)) { - return {...defaultProps}; + return { ...defaultProps }; } return mergeUnsetProperties(props, defaultProps); } -function resolveComponentFlags(flags, type) { +function resolveComponentFlags(flags: VNodeFlags, type): VNodeFlags { if (flags & VNodeFlags.ComponentKnown) { return flags; } @@ -222,7 +230,7 @@ export function createFragment( return fragment; } -export function normalizeProps(vNode) { +export function normalizeProps(vNode: VNode): VNode { const props = vNode.props; if (props) { @@ -245,7 +253,7 @@ export function normalizeProps(vNode) { } if (props.ref !== void 0) { if (flags & VNodeFlags.ComponentFunction) { - vNode.ref = {...vNode.ref, ...props.ref}; + vNode.ref = { ...vNode.ref, ...props.ref }; } else { vNode.ref = props.ref; } @@ -262,14 +270,14 @@ export function normalizeProps(vNode) { * because when it needs to be cloned we need to clone its children too * But not normalize, because otherwise those possibly get KEY and re-mount */ -function cloneFragment(vNodeToClone) { +function cloneFragment(vNodeToClone: VNode): VNode { const oldChildren = vNodeToClone.children; const childFlags = vNodeToClone.childFlags; return createFragment( childFlags === ChildFlags.HasVNodeChildren ? directClone(oldChildren as VNode) - : oldChildren.map(directClone), + : (oldChildren as VNode[]).map(directClone), childFlags, vNodeToClone.key, ); @@ -308,7 +316,7 @@ export function createVoidVNode(): VNode { return createTextVNode('', null); } -export function createPortal(children, container) { +export function createPortal(children, container: ParentDOM): VNode { const normalizedRoot = normalizeRoot(children); return createVNode( @@ -319,7 +327,7 @@ export function createPortal(children, container) { ChildFlags.UnknownChildren, null, normalizedRoot.key, - container, + container as any, // Should there be own prop for this? ); } @@ -328,7 +336,7 @@ export function _normalizeVNodes( result: VNode[], index: number, currentKey: string, -) { +): void { for (const len = nodes.length; index < len; index++) { let n = nodes[index]; @@ -380,7 +388,7 @@ export function getFlagsForElementVnode(type: string): VNodeFlags { return VNodeFlags.SelectElement; case 'textarea': return VNodeFlags.TextareaElement; - // @ts-expect-error + // @ts-expect-error Fragment is special case case Fragment: return VNodeFlags.Fragment; default: @@ -388,7 +396,7 @@ export function getFlagsForElementVnode(type: string): VNodeFlags { } } -export function normalizeChildren(vNode: VNode, children) { +export function normalizeChildren(vNode: VNode, children): VNode { let newChildren: any; let newChildFlags: ChildFlags = ChildFlags.HasInvalidChildren; diff --git a/packages/inferno/src/core/types.ts b/packages/inferno/src/core/types.ts index 496ed5819..a4f25ec2d 100644 --- a/packages/inferno/src/core/types.ts +++ b/packages/inferno/src/core/types.ts @@ -1,3 +1,4 @@ +/* eslint-disable */ import type { NativeClipboardEvent, NativeCompositionEvent, NativeDragEvent, NativeFocusEvent } from './nativetypes'; import type { ChildFlags, VNodeFlags } from 'inferno-vnode-flags'; import type { PropertiesHyphen } from 'csstype'; diff --git a/packages/inferno/src/core/validate.ts b/packages/inferno/src/core/validate.ts index c5e0013b7..61f2cca8d 100644 --- a/packages/inferno/src/core/validate.ts +++ b/packages/inferno/src/core/validate.ts @@ -1,13 +1,23 @@ import type { VNode } from './types'; -import { isArray, isInvalid, isNullOrUndef, isNumber, isStringOrNumber, throwError } from 'inferno-shared'; +import { + isArray, + isInvalid, + isNullOrUndef, + isNumber, + isStringOrNumber, + throwError, +} from 'inferno-shared'; import { ChildFlags, VNodeFlags } from 'inferno-vnode-flags'; import { getComponentName } from '../DOM/utils/common'; -function getTagName(input) { +function getTagName(input): string { let tagName; if (isArray(input)) { - const arrayText = input.length > 3 ? input.slice(0, 3).toString() + ',...' : input.toString(); + const arrayText = + input.length > 3 + ? input.slice(0, 3).toString() + ',...' + : input.toString(); tagName = 'Array(' + arrayText + ')'; } else if (isStringOrNumber(input)) { @@ -18,7 +28,9 @@ function getTagName(input) { const flags = input.flags; if (flags & VNodeFlags.Element) { - tagName = `<${input.type}${input.className ? ' class="' + input.className + '"' : ''}>`; + tagName = `<${input.type}${ + input.className ? ' class="' + input.className + '"' : '' + }>`; } else if (flags & VNodeFlags.Text) { tagName = `Text(${input.children})`; } else if (flags & VNodeFlags.Portal) { @@ -31,21 +43,30 @@ function getTagName(input) { return '>> ' + tagName + '\n'; } -function DEV_ValidateKeys(vNodeTree, forceKeyed: boolean) { +function DEV_VALIDATE_KEYS(vNodeTree, forceKeyed: boolean): string | null { const foundKeys: any = {}; for (let i = 0, len = vNodeTree.length; i < len; ++i) { const childNode = vNodeTree[i]; if (isArray(childNode)) { - return 'Encountered ARRAY in mount, array must be flattened, or normalize used. Location: \n' + getTagName(childNode); + return ( + 'Encountered ARRAY in mount, array must be flattened, or normalize used. Location: \n' + + getTagName(childNode) + ); } if (isInvalid(childNode)) { if (forceKeyed) { - return 'Encountered invalid node when preparing to keyed algorithm. Location: \n' + getTagName(childNode); + return ( + 'Encountered invalid node when preparing to keyed algorithm. Location: \n' + + getTagName(childNode) + ); } else if (Object.keys(foundKeys).length !== 0) { - return 'Encountered invalid node with mixed keys. Location: \n' + getTagName(childNode); + return ( + 'Encountered invalid node with mixed keys. Location: \n' + + getTagName(childNode) + ); } continue; } @@ -60,7 +81,10 @@ function DEV_ValidateKeys(vNodeTree, forceKeyed: boolean) { const key: string | number = childNode.key as string | number; if (!isNullOrUndef(key) && !isStringOrNumber(key)) { - return 'Encountered child vNode where key property is not string or number. Location: \n' + getTagName(childNode); + return ( + 'Encountered child vNode where key property is not string or number. Location: \n' + + getTagName(childNode) + ); } const children = childNode.children; @@ -68,9 +92,12 @@ function DEV_ValidateKeys(vNodeTree, forceKeyed: boolean) { if (!isInvalid(children)) { let val; if (childFlags & ChildFlags.MultipleChildren) { - val = DEV_ValidateKeys(children, (childFlags & ChildFlags.HasKeyedChildren) !== 0); + val = DEV_VALIDATE_KEYS( + children, + (childFlags & ChildFlags.HasKeyedChildren) !== 0, + ); } else if (childFlags === ChildFlags.HasVNodeChildren) { - val = DEV_ValidateKeys([children], false); + val = DEV_VALIDATE_KEYS([children], false); } if (val) { val += getTagName(childNode); @@ -85,18 +112,28 @@ function DEV_ValidateKeys(vNodeTree, forceKeyed: boolean) { ); } else if (!forceKeyed && isNullOrUndef(key)) { if (Object.keys(foundKeys).length !== 0) { - return 'Encountered children with key missing. Location: \n' + getTagName(childNode); + return ( + 'Encountered children with key missing. Location: \n' + + getTagName(childNode) + ); } continue; } if (foundKeys[key]) { - return 'Encountered two children with same key: {' + key + '}. Location: \n' + getTagName(childNode); + return ( + 'Encountered two children with same key: {' + + key + + '}. Location: \n' + + getTagName(childNode) + ); } foundKeys[key] = true; } + + return null; } -export function validateVNodeElementChildren(vNode) { +export function validateVNodeElementChildren(vNode): void { if (process.env.NODE_ENV !== 'production') { if (vNode.childFlags === ChildFlags.HasInvalidChildren) { return; @@ -124,7 +161,7 @@ export function validateVNodeElementChildren(vNode) { param: true, source: true, track: true, - wbr: true + wbr: true, }; const tag = vNode.type.toLowerCase(); @@ -138,11 +175,18 @@ export function validateVNodeElementChildren(vNode) { } } -export function validateKeys(vNode) { +export function validateKeys(vNode): void { if (process.env.NODE_ENV !== 'production') { // Checks if there is any key missing or duplicate keys - if (!vNode.isValidated && vNode.children && vNode.flags & VNodeFlags.Element) { - const error = DEV_ValidateKeys(Array.isArray(vNode.children) ? vNode.children : [vNode.children], (vNode.childFlags & ChildFlags.HasKeyedChildren) > 0); + if ( + !vNode.isValidated && + vNode.children && + vNode.flags & VNodeFlags.Element + ) { + const error = DEV_VALIDATE_KEYS( + Array.isArray(vNode.children) ? vNode.children : [vNode.children], + (vNode.childFlags & ChildFlags.HasKeyedChildren) > 0, + ); if (error) { throwError(error + getTagName(vNode)); @@ -152,10 +196,12 @@ export function validateKeys(vNode) { } } -export function throwIfObjectIsNotVNode(input) { +export function throwIfObjectIsNotVNode(input): void { if (!isNumber(input.flags)) { throwError( - `normalization received an object that's not a valid VNode, you should stringify it first or fix createVNode flags. Object: "${JSON.stringify(input)}".` + `normalization received an object that's not a valid VNode, you should stringify it first or fix createVNode flags. Object: "${JSON.stringify( + input, + )}".`, ); } } diff --git a/tsconfig.json b/tsconfig.json index 48236741a..ffe769bdb 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -65,10 +65,6 @@ "preserveConstEnums": true, "outDir": "build", "sourceMap": true, - "lib": [ - "es6", - "dom" - ], "jsx": "preserve", "noUnusedLocals": true, "noImplicitReturns": true,