Skip to content

Commit 0183aac

Browse files
committed
Merge branch 'master' into next
2 parents fd78fcf + fbe7af1 commit 0183aac

File tree

10 files changed

+387
-99
lines changed

10 files changed

+387
-99
lines changed

.eslintignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
1+
**/coverage/
12
**/lib/
23
**/node_modules/

README.md

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -609,19 +609,18 @@ The created `<BrowserRouter>` accepts an optional `matchContext` prop as describ
609609
610610
```js
611611
import { BrowserProtocol, queryMiddleware } from 'farce';
612-
import { createFarceRouter, createRender, resolver } from 'found';
612+
import { createFarceRouter, resolver } from 'found';
613613

614614
/* ... */
615615

616616
const FarceRouter = createFarceRouter({
617617
historyProtocol: new BrowserProtocol(),
618+
historyMiddlewares: [queryMiddleware],
618619
routeConfig,
619620

620-
render: createRender({
621-
renderError: ({ error }) => (
622-
<div>{error.status === 404 ? 'Not found' : 'Error'}</div>
623-
),
624-
}),
621+
renderError: ({ error }) => (
622+
<div>{error.status === 404 ? 'Not found' : 'Error'}</div>
623+
),
625624
});
626625

627626
ReactDOM.render(
@@ -632,8 +631,6 @@ ReactDOM.render(
632631
633632
The options object for `createFarceRouter` should have a `historyProtocol` property that has a history protocol object. For example, to use the HTML History API as with `createBrowserRouter`, you would provide `new BrowserProtocol()`.
634633
635-
The `createFarceRouter` options object does not have a default for the `render` property. It ignores the `renderPending`, `renderReady`, and `renderError` properties.
636-
637634
The created `<FarceRouter>` manages setting up and providing a Redux store with the appropriate configuration internally. It also requires a `resolver` prop with the route element resolver object. For routes configured as above, this should be the `resolver` object in this library.
638635
639636
#### `createConnectedRouter`

package.json

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
{
22
"name": "found",
3-
"version": "0.3.14",
3+
"version": "0.3.16",
44
"description": "Extensible route-based routing for React applications",
55
"files": [
66
"lib",
7-
"index.d.ts"
7+
"types/index.d.ts"
88
],
99
"main": "lib/index.js",
10-
"types": "index.d.ts",
10+
"types": "types/index.d.ts",
1111
"scripts": {
1212
"build": "rimraf lib && babel src -d lib",
1313
"format": "eslint --fix . && npm run prettier -- --write",
1414
"lint": "eslint . && npm run prettier -- -l",
1515
"prepublish": "npm run build",
1616
"prettier": "prettier --ignore-path .eslintignore '**/*.{js,md,ts,tsx}'",
1717
"tdd": "jest --watch",
18-
"test": "npm run lint && npm run tsc && npm run testonly -- --coverage",
19-
"testonly": "jest --runInBand --verbose",
20-
"tsc": "tsc -p tsconfig.json"
18+
"test": "npm run lint && npm run test:ts && npm run testonly -- --coverage",
19+
"test:ts": "dtslint types",
20+
"testonly": "jest --runInBand --verbose"
2121
},
2222
"husky": {
2323
"hooks": {
@@ -103,6 +103,7 @@
103103
"codecov": "^3.1.0",
104104
"delay": "^4.1.0",
105105
"doctoc": "^1.4.0",
106+
"dtslint": "^0.4.2",
106107
"enzyme": "^3.8.0",
107108
"enzyme-adapter-react-16": "^1.7.1",
108109
"eslint": "^5.10.0",

src/createBaseRouter.js

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,24 @@ import warning from 'warning';
66

77
import { routerShape } from './PropTypes';
88
import RedirectException from './RedirectException';
9+
import createRender from './createRender';
910
import resolveRenderArgs from './utils/resolveRenderArgs';
1011

11-
export default function createBaseRouter({ render }) {
12+
export default function createBaseRouter({
13+
render,
14+
renderPending,
15+
renderReady,
16+
renderError,
17+
}) {
18+
// eslint-disable-next-line no-param-reassign
19+
render =
20+
render ||
21+
createRender({
22+
renderPending,
23+
renderReady,
24+
renderError,
25+
});
26+
1227
const propTypes = {
1328
match: PropTypes.object.isRequired,
1429
resolvedMatch: PropTypes.object.isRequired,

src/createBrowserRouter.js

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,30 +2,16 @@ import BrowserProtocol from 'farce/lib/BrowserProtocol';
22
import React from 'react';
33

44
import createFarceRouter from './createFarceRouter';
5-
import createRender from './createRender';
65
import resolver from './resolver';
76

8-
export default function createBrowserRouter({
9-
render,
10-
renderPending,
11-
renderReady,
12-
renderError,
13-
...options
14-
}) {
7+
export default function createBrowserRouter(options) {
158
const FarceRouter = createFarceRouter({
169
...options,
1710
historyProtocol: new BrowserProtocol(),
18-
render:
19-
render ||
20-
createRender({
21-
renderPending,
22-
renderReady,
23-
renderError,
24-
}),
2511
});
2612

2713
function BrowserRouter(props) {
28-
return <FarceRouter {...props} resolver={resolver} />;
14+
return <FarceRouter resolver={resolver} {...props} />;
2915
}
3016

3117
return BrowserRouter;

0 commit comments

Comments
 (0)