1
0
Fork 0
mirror of https://github.com/terribleplan/next.js.git synced 2024-01-19 02:48:18 +00:00
Commit graph

103 commits

Author SHA1 Message Date
Tim Neutkens 20c7d98efe Move lastAppProps back where it should be (#1208)
* Check for lastAppProps

* Move lastAppProps back where it belongs

* Add comment
2017-02-20 05:35:48 +09:00
Arunoda Susiripala 14c86bef1d Introduce a simple prefetching solution (#957)
* Implement a very simple prefetching solution.

* Remove next-prefetcher.

* Require 'whatwg-fetch' only in the client.

* Use xhr in the code.

* Use a simple fetching solution.

* Fix 404 and xhr status issue.

* Move the prefetching implementation to next/router.

* Add deprecated warnning for next/prefetch

* Run only 2 parellel prefetching request at a time.

* Change xhr to jsonPageRes.

* Improve the prefetching logic.

* Add unit tests covering the Router.prefetch()

* Update examples to use the new syntax.

* Update docs.

* Use execOnce() to manage warn printing.

* Remove prefetcher building from the flyfile.js
Because, we no longer use it.
2017-02-15 14:22:22 +05:30
Naoyuki Kanezawa 437fb2cbd3 Copy all properties and descriptors when patching React (#1101)
* patch-react: copy non-enumerable properties and descriptors

* fix syntax error

* remove getOwnPropertyDescriptors polyfil
2017-02-15 08:30:39 +05:30
ǝlzlǝoq lǝᴉuɐp ツ e38d81e6c1 Fix patching component's render method in case its prototype is not writable (#1067) 2017-02-12 22:14:54 +05:30
Arunoda Susiripala 4534c55968 Set displayName properly when patching React locally. (#1053)
* Using styled-jsx for with-jest example.

* Set the displayName of the wraped components.
Otherwise it won't get the correct displayName if the
original component doesn't provide it by using it's function name.
2017-02-09 15:40:31 +01:00
Tim Neutkens bd83ed5c54 [WIP] Remember scroll position on error (#911)
* Remember scroll position on error

* Added comment + check if lastScroll was set

* Remove check for lastAppProps

* Use events to make scroll persistence dev-only

* Return EventEmitter from next()

* Update next-dev.js
2017-01-31 08:56:17 +05:30
Arunoda Susiripala 0d2af801ec Use service-worker to fetch only JSON pages. (#924)
* Use service-worker to fetch only JSON pages.
We simply don't need to proxy other requests through that.
That's might cause some latency issues.

* Use a better regexp to identify JSON pages.
2017-01-30 19:42:49 +09:00
Arunoda Susiripala bf467e64af Do not patch prototypes with render exposed only as a getter. (#898)
* Do not patch prototypes with render exposed only as a getter.

* Use Object.getOwnPropertyDescriptor to make things simpler.

* Get the prototype which has the render method.
2017-01-28 22:50:46 +09:00
Naoyuki Kanezawa 8b94534260 Wrap render method created using class properties (2) (#856)
* wrap render method created using class properties

* use Boolean instead of double not-operator

* patch-react: move a comment
2017-01-22 10:11:56 -08:00
Arunoda Susiripala 399e510389 Make sure lastAppProps always have some value. (#829)
* 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.
2017-01-20 11:33:46 -08:00
Naoyuki Kanezawa 0ef28ab128 Don't discard component state on error (#741)
* render debug page as overlay

* handle errors occurrred on rendering cycle for HMR

* retrieve props if required on HMR
2017-01-11 17:58:20 -08:00
Dan Zajdband f8986cfd92 Adding polyfill to Headers.getAll to make it work both with the current and past spec. (#723) 2017-01-10 11:42:10 -08:00
Naoyuki Kanezawa 8df7f0da57 fix HMR (#680) 2017-01-06 07:23:54 -08:00
Naoyuki Kanezawa 0551dc90a1 bypass SSE on Service Worker (#681) 2017-01-06 07:23:41 -08:00
Naoyuki Kanezawa 8570d19af6 Handle errors of React lifecycle methods (#661)
* handle errors of lifecycle methods

* handle errors of render method
2017-01-05 09:27:39 -08:00
Naoyuki Kanezawa f7ee50323d use Promise to update head (#574) 2016-12-30 11:14:36 -08:00
Naoyuki Kanezawa 798fd3c1e8 Fix custom document compilation (#534)
* compile _document using webpack

* don't emit the bundle file of _document.js

* exclude _document.js from minChunks of CommonsChunkPlugin

* handle creation/removal of pages/_document.js

* improve path handlings
2016-12-27 15:28:19 -08:00
Naoyuki Kanezawa 2a29bf6242 display deprecation warning only when method was called (#462) 2016-12-21 10:43:31 -08:00
Arunoda Susiripala 22776c2eee Implement the Singleton Router API (#429)
* Immplement the initial singleton Router.

* Use the new SingletonRouter for HMR error handling.

* Use SingletonRouter inside the Link.

* Create an example app using the Router.

* Make the url parameter optional in Router.push and Router.replace

* Add a section about next/router in the README.
2016-12-19 06:40:26 -08:00
Arunoda Susiripala 37a9c661ff Make prefetching works again. (#422) 2016-12-17 13:59:03 -08:00
Arunoda Susiripala b62a0e8f55 Bundle all the modules inside the app (#414)
* Remove the use of CDN and bundle everything inside the app.
We still pre-build the prefetcher because it needs
different webpack config which only targets browsers
supports Service Workers.

* Remove cdn config item.
We no longer using it.

* Stop adding script tags when staticMarkup=true

* Remove babel-plugin-transform-remove-strict-mode NPM module.
2016-12-17 17:49:10 +09:00
Naoyuki Kanezawa 1708222381 Programmatic API (#310)
* add 'next' api

* add render APIs

* add 'as' prop to Link

* check Accept header to serve json response

* check if response was finished on getInitialProps call

* move server/app to server/index

* load webpack-hot-middleware-client by absolute path

* server: options for testing

* add tests

* example: improve

* server: make dir optional

* fix client routing

* add parameterized routing example

* link: fix display url

* Add custom-server-express example (#352)

* Add custom-server-express example

* Remove extraneous nexts in express routes defs

* Update next config in server.js

* Handle accept headers totally inside Next.js (#385)

* Handle accept headers totally inside Next.js
Now user doesn't need to handle it anymore.

* Move json pages serving to /_next/pages base path.

* Join paths correctly.

* remove next/render
2016-12-16 12:33:08 -08:00
Naoyuki Kanezawa 8ddafaea5c custom document support (#405) 2016-12-16 10:42:40 -08:00
Arunoda Susiripala 43b0e6f514 Remove console.logs (#402) 2016-12-16 11:43:46 +09:00
Matthew Mueller ab14770318 Remove trailing comma to fix lint (#398) 2016-12-16 03:52:04 +05:30
Arunoda Susiripala 36abdc77c5 Prefetch pages with Service Workers (#375)
* Register the service worker.

* Update prefetcher code to do prefetching.

* Implement the core prefetching API.
support "import <Link>, { prefetch } from 'next/prefetch'"

* Implement a better communication system with the service worker.

* Add a separate example for prefetching

* Fix some typos.

* Initiate service worker support even prefetching is not used.
This is pretty important since initiating will reset the cache.
If we don't do this, it's possible to have old cached resources
after the user decided to remove all of the prefetching logic.
In this case, even the page didn't prefetch it'll use the
previously cached pages. That because of there might be a already running
service worker.

* Use url module to get pathname.

* Move prefetcher code to the client from pages
Now we also do a webpack build for the prefetcher code.

* Add prefetching docs to the README.md

* Fix some typo.

* Register service worker only if asked to prefetch
We also clean the cache always, even we initialize
the service worker or not.
2016-12-15 11:13:40 -08:00
Matthew Mueller 422c631832 remove react-dom/lib/HTMLDOMPropertyConfig for better interop (#392) 2016-12-15 15:05:20 +09:00
Arunoda Susiripala 65c4e1e5bd Init next.js even after dom is loaded. (#326)
Earlier we add a event to init next.js when dom has loaded.
But if at that time dom is already loaded, next.js won't get init ever.
Now we are using domready NPM module which handle these for us.
2016-12-02 22:59:10 +09:00
Kav Singh 8a2981746b Fix constructor declaration in HeadManager (#321) 2016-12-02 12:51:56 +09:00
Arunoda Susiripala fcd59adea1 Add support for webpack's CommonsChunkPlugin and remove next bundle (#301)
* Add example app which demonstrate the problem.

* Add the first working version.

* Fix lint issues.

* Add README.md

* Use /_next/main.js as the main file URI

* Add the support for loading the core next bundle.

* Optimize the output by removing Next modules from pages.

* Use the same package.json as master use.

* Change the example repo's README for simpler instructions.

* Change example projects package.json to support next build and start.

* Change main.js into commons.js.

* Add support for hot core reload and errors.

* Introduce require based on eval-script.

* Add error reporting support with hot reloading.

* Update README.md
2016-11-28 09:15:56 +09:00
Naoyuki Kanezawa c7ba914f52 Handle runtime errors (#268)
* display runtime errors by error-debug

* server: fix status

* render Error component on client error

* server: render runtime errors of error template

* server: handle errors of error template on render404

* server: add a comment

* server: refactor renderJSON

* recover from runtime errors

* _error: check if xhr exists

* _error: improve client error

* _error: improve error message
2016-11-24 23:03:16 +09:00
Naoyuki Kanezawa a14cc66720 Remove webpack-dev-server (#276)
* remove webpack-dev-server

* webpack: fix publicPath
2016-11-23 10:32:49 -08:00
Jonas Windey 960f50a019 Upgrade packages & React v15.4.0 (#283)
* Upgrade packages & React v15.4.0

* Update package.json

* no message
2016-11-21 20:46:49 +09:00
nkzawa a1337320ea remove unused code 2016-11-14 13:56:29 +09:00
Naoyuki Kanezawa e775721f34 Hot reload error page (#190)
* add detach-plugin

* detach-plugin: remove unused property

* watch-pages-plugin: replace _error.js when user defined one was added/removed

* dynamic-entry-plugin: delete cache

* fix HMR settings for _error.js

* render: pass error only on dev

* hot-reload: enable to hot-reload error page

* server: check if /_error has compilation errors

* webapck-dev-client: fix reloading /_error
2016-11-04 00:12:37 +09:00
Naoyuki Kanezawa 037e2d9c26 batch update head contents (#129)
* head-manager: batch update

* side-effect: remove redundant rendering cycle checks
2016-10-28 23:39:20 +09:00
nkzawa 7ec46d512b hot reload added/removed pages 2016-10-24 16:22:15 +09:00
Dan Zajdband e164074f8e Added glamor css (#38)
* Added glamor css

* Using pseudoclasses instead of calling functions

* Updated readme using style instead of default import for css
2016-10-21 09:39:20 -07:00
nkzawa 2e2db37ccb add error page for debug 2016-10-19 21:41:45 +09:00
nkzawa 1be8447a26 Merge branch 'master' into add/hot-reload 2016-10-17 11:10:16 +09:00
Dan Zajdband 1477734211 Added linting using standard (#27)
* Added linting using standard

* Linting on test
2016-10-16 17:00:17 -07:00
nkzawa 26e6193a97 hot-reload: initial 2016-10-15 00:05:08 +09:00
nkzawa 3e721b6878 apply css on server rendering 2016-10-09 18:50:41 +09:00
nkzawa 6718b05347 add _error.js, fix error handlings 2016-10-09 18:25:38 +09:00
nkzawa 22bf51bbe0 support getInitialProps 2016-10-08 19:16:22 +09:00
nkzawa e2ab55ad23 fix client/router 2016-10-08 14:12:51 +09:00
nkzawa 89f96cc160 support next/head 2016-10-07 10:57:31 +09:00
Dan Zajdband 1833effeb7 Fixes next dev and adds the css requires 2016-10-06 18:40:15 -04:00
nkzawa 88b01e0a72 next-dev 2016-10-06 20:05:52 +09:00
nkzawa e51c7eabf1 fix client/router 2016-10-06 16:08:23 +09:00
nkzawa cb11c7cbc6 add Link component 2016-10-06 16:07:41 +09:00
nkzawa 2d8959d99c client/router: create uid instead of displayName 2016-10-06 10:20:48 +09:00
nkzawa 9b06a22f31 initial source 2016-10-06 08:52:50 +09:00