From 57f437f1d5f41ca3073a42fbdea58d8c351152f1 Mon Sep 17 00:00:00 2001 From: Brian Geihsler Date: Wed, 14 Sep 2016 13:22:46 -0700 Subject: [PATCH] Update eslint to 3.5.0. Update related eslint deps universal-redux was still relying on eslint 1.x.x where eslint is now at 3.x.x. Having this old dependency was causing shrinkwraps to fail for projects that are using latest eslint. This change updates eslint to 3.5.0 and also updates related eslint dependencies: ``` "eslint-config-airbnb": "11.1.0", "eslint-loader": "1.4.0", "eslint-plugin-import": "1.15.0", "eslint-plugin-jsx-a11y": "2.2.2", "eslint-plugin-react": "6.2.1", ``` I also didn't want to cause too much churn in the code, so I disabled rules that had non-trivial changes to fix. For trivial fixes, I went ahead and fixed those. --- .eslintrc | 15 ++++++++++++++- bin/build_es6.js | 3 ++- bin/webpack-dev-server_es6.js | 2 +- package.json | 13 +++++++------ src/client/devtools.js | 2 ++ src/client/providers/async-props.js | 4 ++-- src/client/providers/react-router.js | 7 +++---- src/client/providers/redux-async-connect.js | 2 +- src/client/root.js | 2 +- src/configure.js | 2 +- src/helpers/fetchAllData.js | 12 ++++++------ src/server/body.js | 8 +++----- src/server/head.js | 12 ++++++++++-- src/server/providers/async-props.js | 2 +- src/server/providers/react-router.js | 2 +- src/server/providers/redux-async-connect.js | 2 +- src/server/renderer.js | 4 ++-- src/server/root.js | 2 +- 18 files changed, 59 insertions(+), 37 deletions(-) diff --git a/.eslintrc b/.eslintrc index 963152f..e037d13 100644 --- a/.eslintrc +++ b/.eslintrc @@ -6,28 +6,41 @@ "mocha": true }, "rules": { + "react/forbid-prop-types": 0, + "react/jsx-filename-extension": 0, + "react/no-danger": 0, "react/no-multi-comp": 2, + "react/prefer-stateless-function": 0, + "react/require-extension": 0, "import/default": 0, + "import/imports-first": 0, "import/named": 2, "import/namespace": 2, + "import/newline-after-import": 0, "import/no-duplicates": 0, + "import/no-extraneous-dependencies": 0, "import/no-unresolved": 0, "import/no-named-as-default": 2, + "arrow-body-style": 0, "comma-dangle": 0, + "global-require": 0, "indent": [2, 2, {"SwitchCase": 1}], "no-console": 0, "no-alert": 0, "no-nested-ternary": 0, + "no-path-concat": 0, + "no-underscore-dangle": 0, "max-len": 0, "object-curly-spacing": [2, "always"], + "prefer-template": 0, "array-bracket-spacing": [2, "always"] }, "plugins": [ "react", "import" ], + "parser": "babel-eslint", "settings": { - "import/parser": "babel-eslint", "import/resolve": { moduleDirectory: ["node_modules", "src"] } diff --git a/bin/build_es6.js b/bin/build_es6.js index c8c920a..e0103c0 100644 --- a/bin/build_es6.js +++ b/bin/build_es6.js @@ -43,7 +43,8 @@ webpack(webpackConfig, (err, stats) => { if (buildStats) { fs.writeFile(outputStatsPath, JSON.stringify(stats.toJson()), (writeError) => { if (writeError) { - return console.log(writeError); + console.log(writeError); + return; } console.log('Webpack output stats were saved to', outputStatsPath); diff --git a/bin/webpack-dev-server_es6.js b/bin/webpack-dev-server_es6.js index d9d2b68..b666b5e 100644 --- a/bin/webpack-dev-server_es6.js +++ b/bin/webpack-dev-server_es6.js @@ -27,7 +27,7 @@ const app = new Express(); app.use(require('webpack-dev-middleware')(compiler, serverOptions)); app.use(require('webpack-hot-middleware')(compiler)); -app.listen(port, function onAppListening(err) { +app.listen(port, (err) => { if (err) { console.error(err); } else { diff --git a/package.json b/package.json index ba7b1da..b4352cc 100644 --- a/package.json +++ b/package.json @@ -47,14 +47,16 @@ "babel-runtime": "6.9.2", "compression": "1.6.2", "css-loader": "0.23.1", - "eslint": "1.10.3", - "eslint-config-airbnb": "0.1.1", - "eslint-loader": "1.0.0", - "eslint-plugin-import": "0.12.1", - "eslint-plugin-react": "3.7.1", + "eslint": "3.5.0", + "eslint-config-airbnb": "11.1.0", + "eslint-loader": "1.4.0", + "eslint-plugin-import": "1.15.0", + "eslint-plugin-jsx-a11y": "2.2.2", + "eslint-plugin-react": "6.2.1", "express": "4.14.0", "extract-text-webpack-plugin": "1.0.1", "file-loader": "0.9.0", + "fmp-redux-async-connect": "0.1.15", "json-loader": "0.5.4", "less": "2.7.1", "less-loader": "2.2.3", @@ -74,7 +76,6 @@ "react-transform-hmr": "1.0.4", "redbox-react": "1.2.10", "redux": "3.5.2", - "fmp-redux-async-connect": "0.1.15", "redux-devtools": "3.3.1", "redux-devtools-dock-monitor": "1.1.1", "redux-devtools-log-monitor": "1.0.11", diff --git a/src/client/devtools.js b/src/client/devtools.js index eddae52..55d8544 100644 --- a/src/client/devtools.js +++ b/src/client/devtools.js @@ -37,4 +37,6 @@ export function render() { const Tools = __DEVTOOLS_IS_VISIBLE__ ? DevTools : InvisibleDevTools; return ; } + + return null; } diff --git a/src/client/providers/async-props.js b/src/client/providers/async-props.js index 2da59ec..8bda219 100644 --- a/src/client/providers/async-props.js +++ b/src/client/providers/async-props.js @@ -4,11 +4,11 @@ import { Router } from 'react-router'; import getRoutes from 'universal-redux/routes'; import AsyncProps from '../../vendor/async-props'; -export default function(store, devComponent) { +export default function (store, devComponent) { const root = (
- } history={history}> + } history={history}> {getRoutes(store)} {devComponent} diff --git a/src/client/providers/react-router.js b/src/client/providers/react-router.js index 6c259a2..772053f 100644 --- a/src/client/providers/react-router.js +++ b/src/client/providers/react-router.js @@ -1,12 +1,11 @@ import React from 'react'; -import { Router } from 'react-router'; -import { browserHistory } from 'react-router'; +import { browserHistory, Router } from 'react-router'; import { ReduxAsyncConnect } from 'fmp-redux-async-connect'; import getRoutes from 'universal-redux/routes'; -export default function(store) { +export default function (store) { const component = ( - } history={browserHistory}> + } history={browserHistory}> {getRoutes(store)} ); diff --git a/src/client/providers/redux-async-connect.js b/src/client/providers/redux-async-connect.js index ac72c52..34df3a5 100644 --- a/src/client/providers/redux-async-connect.js +++ b/src/client/providers/redux-async-connect.js @@ -2,7 +2,7 @@ import React from 'react'; import { Provider } from 'react-redux'; import createRouter from './react-router'; -export default function(store, devComponent) { +export default function (store, devComponent) { const root = (
diff --git a/src/client/root.js b/src/client/root.js index a17208d..e7f48d4 100644 --- a/src/client/root.js +++ b/src/client/root.js @@ -2,7 +2,7 @@ import { includes } from 'lodash'; import reduxAsyncConnectClient from './providers/redux-async-connect'; import asyncPropsClient from './providers/async-props'; -export default function(store, providers, devComponent) { +export default function (store, providers, devComponent) { let client = reduxAsyncConnectClient; if (includes(providers, 'async-props')) { client = asyncPropsClient; diff --git a/src/configure.js b/src/configure.js index 3aea428..d199543 100644 --- a/src/configure.js +++ b/src/configure.js @@ -23,7 +23,7 @@ function validateConfig(config) { export default (projectConfig) => { // since typically the dev server is logging this out too - projectConfig.verbose = false; + projectConfig.verbose = false; // eslint-disable-line no-param-reassign const config = mergeConfigs(projectConfig); diff --git a/src/helpers/fetchAllData.js b/src/helpers/fetchAllData.js index 822c264..f977902 100644 --- a/src/helpers/fetchAllData.js +++ b/src/helpers/fetchAllData.js @@ -1,18 +1,18 @@ function fetchAllData(components, getState, dispatch, location, params, deferred) { const methodName = deferred ? 'fetchDataDeferred' : 'fetchData'; return components - .filter((component) => !!component) // Weed out 'undefined' routes - .filter((component) => component[methodName]) // only look at ones with a static fetchData() - .map((component) => component[methodName]) // pull out fetch data methods + .filter(component => !!component) // Weed out 'undefined' routes + .filter(component => component[methodName]) // only look at ones with a static fetchData() + .map(component => component[methodName]) // pull out fetch data methods .map(fetchData => fetchData(getState, dispatch, location, params)); // call fetch data methods and save promises } export default (components, getState, dispatch, location, params) => { - return new Promise(resolve => { + return new Promise((resolve) => { const doTransition = () => { Promise.all(fetchAllData(components, getState, dispatch, location, params, true)) .then(resolve) - .catch(error => { + .catch((error) => { // TODO: You may want to handle errors for fetchDataDeferred here console.warn('Warning: Error in fetchDataDeferred', error); return resolve(); @@ -21,7 +21,7 @@ export default (components, getState, dispatch, location, params) => { Promise.all(fetchAllData(components, getState, dispatch, location, params)) .then(doTransition) - .catch(error => { + .catch((error) => { // TODO: You may want to handle errors for fetchData here console.warn('Warning: Error in fetchData', error); return doTransition(); diff --git a/src/server/body.js b/src/server/body.js index f894c82..4d3be2e 100644 --- a/src/server/body.js +++ b/src/server/body.js @@ -4,10 +4,8 @@ import serialize from 'serialize-javascript'; export default class Body extends Component { static propTypes = { - additions: PropTypes.string, assets: PropTypes.object, component: PropTypes.node, - headers: PropTypes.object, store: PropTypes.object, }; @@ -17,10 +15,10 @@ export default class Body extends Component { return ( -
-