Releases: donejs/donejs
Handle creating folder structure for scoped projects
This enables creating plugins with scoped names:
donejs add plugin @bitovi/my-plugin
will create a folder called my-plugin
.
Ref - #1176
DoneJS 3.0 Release (don't tell anyone yet)
DoneJS 3.0 is out! But don't tell anyone yet! We are busy updating documentation, writing blog posts, making videos, migration guides, etc.
If you are a current user and feeling adventurous, please check it out. We are hanging out in gitter and watching the forums, eager to help you.
Once we've finished crossing our Q
s and dotting our j
s, we will have on official release. It will be time to celebrate. That's because DoneJS will not only bring together all the goodies from CanJS 5 and StealJS 2, it will include ...
Incremental server-side rendering (the fastest server rendering solution on the market) 🏁
Stay tuned for an announcement blog post, how to take advantage for the 🔥super speedy🔥 incremental SSR, and more!
v2.1.0
DoneJS 2.0
This release brings together the best of CanJS 4.0 with a curated list of packages that work well for developing real apps.
1.1.0 - SSR Zones API
DoneJS 1.1.0 release marks the introduction of done-ssr's new Zones API. This new API makes it possible to customize server-side rendering by using can-zone plugins.
done-ssr Zones
We believe that done-ssr is one of the best server-rendering libraries available for any framework. It was always designed to be able to be used with any framework. This is because it:
- Provides a minimal DOM layer with can-simple-dom.
- Uses can-zone to know when rendering is complete.
With these two pieces any framework that uses DOM and async APIs; all of them, will work with done-ssr. Nevertheless it has still been somewhat difficult to use done-ssr outside of a DoneJS app because of the dependency on steal.
For 1.1 we wanted to provide a way to use done-ssr with a DOM layer other than can-simple-dom (such as JSDOM which strives to be spec compliant). We settled on the best way to achieve this would be to provide all of the functionality of done-ssr through a set of Zone plugins. These include:
- Setting up DOM layers.
- Rerouting API requests from
XMLHttpRequest
andfetch
. - Copying cookies from a request to the DOM layer's
document.cookie
and then setting cookies back on the response once finished. - HTTP/2 PUSH support for
fetch
, XHR, and images. - Incremental Rendering.
You can use it like this:
const Zone = require("can-zone");
const requests = require("done-ssr/zones/requests");
const dom = require("can-zone-jsdom")
const steal = require("done-ssr/zones/steal");
require("http").createServer(async function(req, res) {
res.writeHead(200, { 'content-type': 'text/html' });
var zone = new Zone([
// Overrides XHR, fetch
requests(req),
// Sets up a DOM
dom(req, {
executeScripts: false,
html: __dirname + '/public/index.html'
}),
steal({
config: __dirname + '/public/package.json!npm',
main: 'react-client/main'
})
]);
let {html} = await zone.run();
res.end(html);
});
React Server rendering guide
To go with this new API we've also created a new Server rendering React guide on donejs.com. It walks you through building a small React application using its default tools and then using done-ssr, can-zone, and can-zone-jsdom to implement server rendering.
At the end of the guide you have an incrementally rendered React application that looks like this:
v1.0.1 — npm 5 support!
DoneJS now supports creating new apps with npm 5! 🏁 ✨ 🎊
To upgrade, run npm install -g donejs@1.0.1
This repo also contains the website, so the full diff shows hundreds of other changes: v1.0.0...v1.0.1
1.0.0
DoneJS 1.0.0 is here! It is the culmination of the releases of CanJS 3.0 and StealJS 1.0. You can read more about DoneJS 1.0 is the release article.
Features
In addition to bringing together the two major projects of DoneJS, there are also a few new features:
- can-connect replaces can.Model as the method for creating typed models.
- Electron is replacing NW.js as the default desktop native app runtime through donejs-electron. NW.js is still supported and has been upgraded for use in DoneJS 1.0.
- can-define replaces can.Map as the utility for creating observable types. Using DefineMaps you can create types that do not require using the
.attr()
method! - CanJS now embraces modularity and a variety of 3rd party plugins have been created, such as can-validate, can-connect-feathers, and can-connect-signalr.
- steal-conditional is a new extension for StealJS that allows conditional loading of modules. See the introductory blog post.