* Support de-deduping head tags by setting key
* move dedupe logic to `unique` function
* fix head tag deduping logic
* remove console.log
* use `toContain` assertions
* update de-duping head tags section in README
* Add withRoute HOC
Rebased (squashed)
- removed routerToProps
- updated hoist-non-react-statics
- improved propTypes
* Expose the whole Router instead of the route.
* Make the example simple.
* Update examples and the readme.
* Add a test case.
* Layout ground works for next/async
* Implement the Dynamic Bundle feature.
* Add some test cases.
* Update README.
* Implement props aware dynamic bundle API.
* Update tests and README.
* Add a test case for React Context support.
* Always check with the fs when gettings chunks.
* Add a new set of test cases for dynamic imports in dev.
* Add dynamic import test cases for production.
* Add availableChunks support for static exports.
* Reload webpack via hot-reloader when needed.
We need to do this specially we removed a previosly
built page from the filesystem.
* Make sure reloading is happen only once
* Reload only if there's a missing page error.
* Remove debug logs.
* 2.4.2
* Refactor the codebase a bit.
* Move some commonly used regexp to a utils module.
* Handle the reloading well when there's a custom error page.
* Add a HMR test case.
* Close the browser in the test case.
* Fix HMR not working issue.
Our hot-reload code on the server has custom webpack error dectection logic.
Is supports only multi-modules entries.
So, we need to all entries as multi-module entries
even if there's just a single entry.
* Add a test case for showing errors over HMR.
* Using developit/unfetch as the Fetch API polyfill
* Added the replace prop into the Link component
* Added integration test for replace prop on Link component
* Add support for URL objects in Link and Router
* Fix typo in comment
* Fix possible bug if the `href` prop is `null`
* Document the usage of URL objects in Link and Router
* Update readme.md
* Parse URL to get the host & hostname in `isLocal`
This should check if the current location and the checked URL have the same `host` or `hostname`.
* Format `as` parameter from object to string if required
* Format `href` and `as` inside the construct and componentWillReceiveProps
* Use `JSON.stringify` to compare objects
* Add usage example
* chore(package): update chromedriver to version 2.28.0 (#1386)
https://greenkeeper.io/
* Refactor the codebase a bit.
* Change the example name.
* Add a few test cases.
* Add the example to the README.
* Simplify route info handling.
* Add basic resolve=false support.
* Make sure to render getInitialProps always if it's the first render.
* Change resolve=false to shallow routing.
* Add test cases for shallow routing.
* Update README for shallow routing docs.
* Update docs.
* Update docs.
* Update docs.
* Add better hash URL support.
1. Add scrolling to given id related to hash
2. Hash changes won't trigger getInitialProps
* Add some comments.
* Fix tests.
* Add some test cases.
* Remove traces of glamor
As talked about with @rauchg. Glamor takes up around 60KB of the bundle (pre-gzip). Since styled-jsx is the way to go now and we support adding glamor by the user we should remove it as dependency cause it is bundled even when not used.
Added rehydration to the example, since we did that in our code.
There is only one thing I'm not sure about and want to discuss:
what should we do with next/css. Right now I added a throw for when it is imported. I'm not sure if we should do that / some other way to notify the user it has been removed. The reasoning behind the throw is that when we would do a console.warn the user would see 'css.default.<X>' not found because we don't have the glamor dependency anymore.
* Update yarn.lock
* Remove test for styles
* Add support to reload the page when ask to change the same url.
* Do not run change() in the initial page load.
* Add integration tests.
* Add self-reload.js
* Make sure lastAppProps always have some value.
* Revert "Make sure lastAppProps always have some value."
This reverts commit b4ae722d9c1a4460e17dbdc041b111cbd492b2aa.
* Throw an error, if we found an empty object from getInitialProps.
* Add proper tests for getInitialProps empty check.
* Use jest-cli instead of gulp plugin.
* Use jest-cli instead of gulp plugin.
* Move fixtures into the examples dir.
* Move test code of example app to the basic example.
* Add isolated tests for server/resolve
* Allow tests to use cheerio.
* Use portfinder to get a unique port.
* Move back integration tests into the example dir.
* Introduce next-test-utils.
* Remove gulp-jest
* Add coveralls support.
* Use transpiled version of code in dist.
This is to make sure same file gets covered
by both unit/isolated tests and integration tests.
* Add support for source maps.
* Use code from dist always.
* Use nyc to stop instrument.
* Add integration test suite for production usage.
* Use jest-cli.
* Add support for running e2e tests.
* Check gzipPath with fs.stat before serving
Otherwise, serve package might throw issues other than ENOENT
* Install chromedriver with npm install.
* Install chrome on travis-ci.
* Add --forceExit to Jest.
* Run tests only on Node v6.
That's because selenium-webdriver only supports
Node 6 LTS.
* Use chromedriver NPM module to install chromedriver.
* Use wd as the webdriver client.
* Run chromedriver before tests.
* Run travis for both node 4 and 6
* Remove unwanted npm install script.
* Move some common text utilities to next-test-utils
* Add lint checks and testing in npm prepublish hook.
* Use npm on travis-ci.
We are having some caching issues with yarn and chromedriver.
* Make tests work on windows.\n But chromedriver doesn't work.
* Clean up dependencies.
* Run chromedriver in background without any tools.
* Fix a typo in the code.
* Use ES6 features used in node4 inside the gulpfile.
* Add some comments.
* Add support for running in windows.
* Stop chromedriver properly on windows.
* Fix typos.