QubitProducts/cherrytree

2.0

KidkArolis opened this issue · 7 comments

Code

  • fix the scripted build process - smth fails currently
  • polish the location implementations, make sure they make sense (consider introducing makeHref and makePath on the location object itself)
  • improve handling of uncaught transition errors
  • fix #destroy(), currently the link delegation does not get removed
  • clone query and params when setting them on transition and router.state
  • make it possible to use native/global Promise
  • lower level createRoute function that takes location, qs and Promise implementations as params and this way avoids pulling them in as dependencies
  • throw a more specific error when trying to transitionTo/generate a route that is not a leaf node
  • move custom location to router options away from listen()
  • update upstream dependencies
  • rename history.js to browser.js

Docs

  • add the size of the lib to README
  • create a backbone example (the backbone-route workflow)
  • create examples folder where various middlewares are demonstrated
  • write a blogpost about the journey to 2.0

Other

  • create cherrytree-for-backbone not now, for now cherrytree-for-react will do
  • create cherrytree-for-react. Done https://github.com/KidkArolis/cherrytree-for-react
  • proof of concept isomorphic example now now, for now the server-side-react example will do

Great to see this list! I have to say this is the router I've been looking for for a long time. Promise-based, nested routing, with map and use being the only APIs yet make it simple and powerful. I love the design.

I created cherrytree-for-knockout to create a angular-ui-router like experience where users can register their knockout components during router.map and then have a binding handler that will match the nested routes for them.

Big +1 on using the native/global Promise and having the option to provide your own library. Bluebird apparently is more performant than the native Promise too, not that it matters much on browsers, but some people love it, so it's good to take that concern out.

Thanks for the kind words!

We've been using the current 2.0.0-alpha in production for over three months now, so it should be good to use. But now that I know some of these features would be useful to you I'll have another go with this list.

Let me know if you need any further help or if you find any issues.

If you created a README + perhaps a runnable example in the cherrytree-for-knockout - I could link it from the cherrytree docs.

If you created a README + perhaps a runnable example in the cherrytree-for-knockout - I could link it from the cherrytree docs.

I just barely started with it, so more of an FYI now, but yes I'll do that and get tests and into the API into the shape I'll want, then I'll let you know. I wouldn't want people to use it yet.

2.0.0-rc1 is here! Check out the changelog.

@nathanboktae if you could npm install --save cherrytree@latest and give it a spin in your app - that would be great. And thanks again for the new API suggestion.

All right, 2.0.0-rc4 is the candidate for 2.0.0 final release, it's definitely time.. If there's anything we want to change we can always just bump to 3.0.0 later.

🎉 👏 Great work!