Skip to content

Commit f97baca

Browse files
committed
Warn on invalid middlewares
1 parent 2fa2060 commit f97baca

File tree

2 files changed

+29
-2
lines changed

2 files changed

+29
-2
lines changed

modules/__tests__/applyRouterMiddleware-test.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import Router from '../Router'
55
import Route from '../Route'
66
import createMemoryHistory from '../createMemoryHistory'
77
import applyMiddleware from '../applyRouterMiddleware'
8+
import shouldWarn from './shouldWarn'
89

910
const FOO_ROOT_CONTAINER_TEXT = 'FOO ROOT CONTAINER'
1011
const BAR_ROOT_CONTAINER_TEXT = 'BAR ROOT CONTAINER'
@@ -141,4 +142,14 @@ describe('applyMiddleware', () => {
141142
})
142143
})
143144

145+
it('should warn on invalid middleware', () => {
146+
shouldWarn('at index 0 does not appear to be a valid')
147+
shouldWarn('at index 2 does not appear to be a valid')
148+
149+
applyMiddleware(
150+
{},
151+
{ renderRouterContext: () => {} },
152+
{}
153+
)
154+
})
144155
})

modules/applyRouterMiddleware.js

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,25 @@
11
import React, { createElement } from 'react'
22
import RouterContext from './RouterContext'
3+
import warning from './routerWarning'
34

45
export default (...middlewares) => {
5-
const withContext = middlewares.map(m => m.renderRouterContext).filter(f => f)
6-
const withComponent = middlewares.map(m => m.renderRouteComponent).filter(f => f)
6+
if (__DEV__) {
7+
middlewares.forEach((middleware, index) => {
8+
warning(
9+
middleware.renderRouterContext || middleware.renderRouteComponent,
10+
`The middleware specified at index ${index} does not appear to be ` +
11+
'a valid React Router middleware.'
12+
)
13+
})
14+
}
15+
16+
const withContext = middlewares
17+
.map(middleware => middleware.renderRouterContext)
18+
.filter(Boolean)
19+
const withComponent = middlewares
20+
.map(middleware => middleware.renderRouteComponent)
21+
.filter(Boolean)
22+
723
const makeCreateElement = (baseCreateElement = createElement) => (
824
(Component, props) => (
925
withComponent.reduceRight(

0 commit comments

Comments
 (0)