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 ( -
-