refresh.js
v0.0.1
Published
Refresh.js is library that "Hot Reloads" your Node.js code base (Browser solution is coming soon). Whenever you change a file (execept the bootstrap files - I'll explain later), without actually reloading the whole process, your changes will be processed and executed correctly.
Downloads
2
Readme
Refresh.js
Refresh.js is library that "Hot Reloads" your Node.js code base (Browser solution is coming soon). Whenever you change a file (execept the bootstrap files - I'll explain later), without actually reloading the whole process, your changes will be processed and executed correctly.
No more canceling and restarting the node.js process. Hot Code Push/Reload is the most effecient way to work.
Note: This effectively creates a different programming environment. It adds some complexity because you're working in a dirty state, one that might have changes or pending changes. Though, this library is here to solve the complexity by providing a simple API and simple conventions.
How it works (right now)
I'll start by explaining that a "package", in this context, is simply a JavaScript file. That's it.
For every "package" you create, you must (If you want to work with the "Hot Code Push") define a few things. The first is to register the current file with the package manager "Package", original, I know.
// main.js
Storm.package.register(__filename);
It's as simple as that! Do note that "Storm" is an example global namespace for the project. You can change it at your will. Simply change lib/main.js
's config object to your desire. The library (apart from the examples) doesn't use Storm
but uses the configuration to attach objects to the global namespace.
To work with a dirty state, you must register the migration
event. The whole package
API is chainable.
Storm.package.register(__filename)
.on('migration', function(){
// Do something.
});
Note: Client-side migration is not implemented yet. When it is, they'll be a simple API to save the state before a page reload. For example:
...
.migrate(function(){
if (this.client) {
// Client-side stuff...
}
});