diff --git a/.babelrc b/.babelrc index e98edf3..1e5f3c0 100755 --- a/.babelrc +++ b/.babelrc @@ -1,6 +1,6 @@ { "presets": [ - "./tools/es2015Preset", + "./tools/latestPreset", "stage-1", "react" ], diff --git a/.eslintrc b/.eslintrc index b8bf3b8..c28044b 100755 --- a/.eslintrc +++ b/.eslintrc @@ -1,12 +1,3 @@ { - "extends": "airbnb", - "parser": "babel-eslint", - "rules": { - "max-len": [2, 79, { - "ignorePattern": " // eslint-disable-line " - }], - "react/jsx-filename-extension": [2, { - "extensions": [".js"] - }] - } + "extends": "4catalyzer-react" } diff --git a/karma.conf.js b/karma.conf.js index 98a3eb1..5cdddea 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -1,6 +1,6 @@ const webpack = require('webpack'); // eslint-disable-line import/no-extraneous-dependencies -module.exports = config => { +module.exports = (config) => { const { env } = process; config.set({ diff --git a/package.json b/package.json index d5d6886..0b288c1 100644 --- a/package.json +++ b/package.json @@ -35,9 +35,9 @@ }, "homepage": "https://github.com/relay-tools/react-router-relay#readme", "dependencies": { - "babel-runtime": "^6.11.6", - "invariant": "^2.2.1", - "lodash": "^4.15.0", + "babel-runtime": "^6.22.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4", "react-static-container": "^1.0.1" }, "peerDependencies": { @@ -46,45 +46,45 @@ "react-router": ">=2.3.0" }, "devDependencies": { - "babel-cli": "^6.14.0", - "babel-core": "^6.14.0", - "babel-eslint": "^6.1.2", - "babel-loader": "^6.2.5", + "babel-cli": "^6.22.2", + "babel-core": "^6.22.1", + "babel-eslint": "^7.1.1", + "babel-loader": "^6.2.10", "babel-plugin-add-module-exports": "^0.2.1", "babel-plugin-dev-expression": "^0.2.1", - "babel-plugin-transform-runtime": "^6.15.0", - "babel-polyfill": "^6.13.0", - "babel-preset-es2015": "^6.14.0", - "babel-preset-react": "^6.11.1", - "babel-preset-stage-0": "^6.5.0", - "babel-preset-stage-1": "^6.13.0", - "babel-register": "^6.14.0", - "babel-relay-plugin": "^0.9.3", + "babel-plugin-transform-runtime": "^6.22.0", + "babel-polyfill": "^6.22.0", + "babel-preset-latest": "^6.22.0", + "babel-preset-react": "^6.22.0", + "babel-preset-stage-1": "^6.22.0", + "babel-register": "^6.22.0", + "babel-relay-plugin": "^0.10.0", "chai": "^3.5.0", - "cross-env": "^2.0.1", - "eslint": "^3.5.0", - "eslint-config-airbnb": "^10.0.0", - "eslint-plugin-import": "^1.14.0", - "eslint-plugin-jsx-a11y": "^2.2.1", - "eslint-plugin-react": "^6.2.0", - "graphql": "^0.7.0", - "graphql-relay": "^0.4.3", - "karma": "^1.3.0", + "cross-env": "^3.1.4", + "eslint": "^3.15.0", + "eslint-config-4catalyzer-react": "^0.2.0", + "eslint-plugin-import": "^2.2.0", + "eslint-plugin-jsx-a11y": "^2.2.3", + "eslint-plugin-react": "^6.9.0", + "graphql": "^0.9.1", + "graphql-relay": "^0.5.1", + "karma": "^1.4.1", "karma-chrome-launcher": "^2.0.0", "karma-firefox-launcher": "^1.0.0", - "karma-mocha": "^1.1.1", - "karma-mocha-reporter": "^2.1.0", - "karma-sinon-chai": "^1.2.3", + "karma-mocha": "^1.3.0", + "karma-mocha-reporter": "^2.2.2", + "karma-sinon-chai": "^1.2.4", "karma-sourcemap-loader": "^0.3.7", "karma-webpack": "^1.8.0", - "mocha": "^3.0.2", - "react": "^15.3.1", - "react-dom": "^15.3.1", - "react-relay": "^0.9.3", + "mocha": "^3.2.0", + "react": "^15.4.2", + "react-addons-test-utils": "^15.4.2", + "react-dom": "^15.4.2", + "react-relay": "^0.10.0", "react-router": "^2.8.0", - "relay-local-schema": "^0.5.4", + "relay-local-schema": "^0.5.5", "rimraf": "^2.5.4", - "sinon": "^1.17.5", + "sinon": "^1.17.7", "sinon-chai": "^2.8.0", "webpack": "^1.13.2" } diff --git a/src/QueryAggregator.js b/src/QueryAggregator.js index abb93b6..d1dacaf 100644 --- a/src/QueryAggregator.js +++ b/src/QueryAggregator.js @@ -38,7 +38,7 @@ export default class QueryAggregator { // We need to merge in the route params regardless of whether the route // actually has queries, in case its children depend on its path params. queryConfig.params = mergeRouteParams( - queryConfig.params, route, routerProps + queryConfig.params, route, routerProps, ); const routeQueries = getRouteQueries(route, routerProps); @@ -58,7 +58,7 @@ export default class QueryAggregator { queryMap = { [DEFAULT_KEY]: routeQueries }; } - Object.keys(componentMap).forEach(key => { + Object.keys(componentMap).forEach((key) => { const component = componentMap[key]; const queries = queryMap[key]; @@ -74,10 +74,10 @@ export default class QueryAggregator { Relay.isContainer(component), 'relay-router-relay: Route with queries specifies component `%s` ' + 'that is not a Relay container.', - component && (component.displayName || component.name) + component && (component.displayName || component.name), ); - Object.keys(queries).forEach(queryName => { + Object.keys(queries).forEach((queryName) => { const query = queries[queryName]; const uniqueQueryName = this.getUniqueQueryName(route, key, queryName); @@ -202,7 +202,7 @@ export default class QueryAggregator { // It doesn't matter what the component variables are. The only variables // we're going to pass down are the ones defined from our route parameters. return Object.prototype.hasOwnProperty.call( - this.queryConfig.params, variableName + this.queryConfig.params, variableName, ); } } diff --git a/src/RouteContainer.js b/src/RouteContainer.js index 8d7b613..5c8ce73 100644 --- a/src/RouteContainer.js +++ b/src/RouteContainer.js @@ -15,7 +15,7 @@ const contextTypes = { function RouteContainer( { queries, routerProps, children, ...extraProps }, - { queryAggregator } + { queryAggregator }, ) { const { key, route, routes } = routerProps; diff --git a/test/.babelrc b/test/.babelrc index 92dabb9..f597a04 100644 --- a/test/.babelrc +++ b/test/.babelrc @@ -1,6 +1,8 @@ { "presets": [ - ["es2015", { "loose": true }], + ["latest", { + "es2015": { "loose": true } + }], "stage-1", "react" ], diff --git a/test/.eslintrc b/test/.eslintrc index b834bab..c234874 100644 --- a/test/.eslintrc +++ b/test/.eslintrc @@ -7,10 +7,10 @@ "sinon": false }, "rules": { - "no-unused-expressions": 0, - "react/no-multi-comp": 0, - "react/prop-types": 0, - "import/no-extraneous-dependencies": [2, { + "no-unused-expressions": "off", + "react/no-multi-comp": "off", + "react/prop-types": "off", + "import/no-extraneous-dependencies": ["error", { "devDependencies": true }] } diff --git a/test/fixtures/.babelrc b/test/fixtures/.babelrc index 52a1609..2367f17 100755 --- a/test/fixtures/.babelrc +++ b/test/fixtures/.babelrc @@ -1,6 +1,8 @@ { "presets": [ - ["es2015", { "loose": true }], + ["latest", { + "es2015": { "loose": true } + }], "stage-1" ] } diff --git a/test/fixtures/updateSchema.js b/test/fixtures/updateSchema.js index 47a3980..6addc03 100644 --- a/test/fixtures/updateSchema.js +++ b/test/fixtures/updateSchema.js @@ -13,6 +13,6 @@ import schema from './schema'; fs.writeFileSync( path.join(__dirname, 'schema.json'), - JSON.stringify(result, null, 2) + JSON.stringify(result, null, 2), ); })(); diff --git a/test/useRelay.test.js b/test/useRelay.test.js index 1d2a3a9..b8b1eca 100644 --- a/test/useRelay.test.js +++ b/test/useRelay.test.js @@ -1,9 +1,8 @@ import React from 'react'; -import ReactTestUtils from 'react/lib/ReactTestUtils'; +import ReactTestUtils from 'react-addons-test-utils'; import Relay from 'react-relay'; -import { - applyRouterMiddleware, createMemoryHistory, Route, Router, -} from 'react-router'; +import { applyRouterMiddleware, createMemoryHistory, Route, Router } + from 'react-router'; import RelayLocalSchema from 'relay-local-schema'; import useRelay from '../src'; @@ -16,7 +15,7 @@ describe('useRelay', () => { beforeEach(() => { environment = new Relay.Environment(); environment.injectNetworkLayer( - new RelayLocalSchema.NetworkLayer({ schema }) + new RelayLocalSchema.NetworkLayer({ schema }), ); }); @@ -93,7 +92,7 @@ describe('useRelay', () => { let renderSpy; let instance; - beforeEach(done => { + beforeEach((done) => { // This is declared on the parent route to capture the loading lifecycle, // because we don't render the child routes until the parent route is // ready. @@ -162,7 +161,7 @@ describe('useRelay', () => { ].forEach(([condition, className]) => { it(`should support ${condition}`, () => { ReactTestUtils.findRenderedDOMComponentWithClass( - instance, className + instance, className, ); }); }); diff --git a/tools/.eslintrc b/tools/.eslintrc index cd1a8d2..545e305 100644 --- a/tools/.eslintrc +++ b/tools/.eslintrc @@ -1,6 +1,6 @@ { "rules": { - "import/no-extraneous-dependencies": [2, { + "import/no-extraneous-dependencies": ["error", { "devDependencies": true }] } diff --git a/tools/es2015Preset.js b/tools/es2015Preset.js deleted file mode 100644 index 3414e69..0000000 --- a/tools/es2015Preset.js +++ /dev/null @@ -1,12 +0,0 @@ -const { buildPreset } = require('babel-preset-es2015'); - -const { BABEL_ENV } = process.env; - -module.exports = { - presets: [ - [buildPreset, { - loose: true, - modules: BABEL_ENV === 'es' ? false : 'commonjs', - }], - ], -}; diff --git a/tools/latestPreset.js b/tools/latestPreset.js new file mode 100644 index 0000000..c5984a0 --- /dev/null +++ b/tools/latestPreset.js @@ -0,0 +1,14 @@ +const babelPresetLatest = require('babel-preset-latest'); + +const { BABEL_ENV } = process.env; + +module.exports = { + presets: [ + [babelPresetLatest, { + es2015: { + loose: true, + modules: BABEL_ENV === 'es' ? false : 'commonjs', + }, + }], + ], +};