I have a few goals for v4, and I just wanted to write them down somewhere so everyone can see where we're headed and pitch in if they feel so inclined.
describeSomething approach isn't great because we lose the ability to easily zero in on one test (i.e. use it.only) when that code runs for each type of history we want to test. The main idea behind this refactoring is to get all tests out of these big describe* methods and inline them.imports. Right now we ask people to import createHistory from 'history/lib/createBrowserHistory' if that's all they need. Let's get rid of the lib so people can just use e.g. history/createBrowserHistory.use* functions). It's an unnecessary abstraction that only creates complexity. In practical terms, there are only ever going to be a few middlewares, not all of which are applicable to all histories.{ path, state, key } and that's it. Any other parsing can be done outside core.location.action (as opposed to constants that need to be imported)window.history.state for browser history. Session storage has too many caveats.location.state from hash history locations. This is a hack that's just not worth maintaining for older browsers.canGo functionality in memory history.If you're interested in helping w any of this work please let me know. It's going to be my main focus over the coming week.
ok, this work is done and released in v4.0.0-0. If anyone's listening, please give it a shot.
Most helpful comment
ok, this work is done and released in v4.0.0-0. If anyone's listening, please give it a shot.