nw-auto-updater
v1.0.5
Published
A high level API to make node-webkit apps auto updating easy
Readme
nw-auto-updater (NWAU)
This is nw-auto-updater, inspired by electron-autoUpdater API
npm install nw-auto-updaterit gives high level API to :
- Check if an update is available or not
- Download an update
- Install an update
- Restart your node-webkit app
API
configure
Configure NWAU.
Params
- options
Object- encoding
Stringthe remote manifest file encoding. Default to 'utf-8' - nw-gui
nw-guithe nw-gui instance, likevar gui = require('nw.gui') - remoteManifest
Stringthe remote manifest file url, likehttp://www.exemple.com?version={{version}}. NWAU will replace{{version}}with the package.json version - tmpManifest
Stringthe path where manifest will be stored, likepath.resolve('./tmp/update_manifest.json').tmpdirectory must exists - tmpArchive
Stringthe path where zip archive will be stored, likepath.resolve('./tmp/update_archive.zip').tmpdirectory must exists - update-not-available
Functioncallback called if updates are not available (server unreachable or client up to date) - update-available
Functioncallback called if updates are available (server return a status 200 code) - update-downloaded
Functioncallback called when zip archive is downloaded - update-downloading
Functioncallback called when download is progressing - error
Functioncallback called if ay errors are encountered
- encoding
launch
Launch auto update. Must be called after updater.configure()
Update JSON Format
When an update is available, NWAU expects the following schema in response to the update request provided:
{
"url": "http://mycompany.com/myapp/releases/myrelease",
"name": "My Release Name",
"notes": "Theses are some release notes innit",
"pub_date": "2013-09-18T12:29:53+01:00"
}The only required key is "url" the others are optional. NWAU only supports installing ZIP updates for now, and your server must return an 'application/json' response. Your zip archive must replace the package.json with a correct app version, or updates will be downloaded in an infinite loop.
Exemple
var updater = require('nw-auto-updater');
var path = require('path');
updater.configure({
'remoteManifest' : 'http://yourserver.com/?version={{version}}',
'tmpManifest' : path.resolve('tmp/update_manifest.json'),
'tmpArchive' : path.resolve('tmp/update_archive.zip'),
'extractPath' : path.resolve('.'),
'nwGui' : require('nw.gui'),
'update-available' : function() {
console.log('available');
},
'update-not-available' : function() {
console.log('not available');
},
'update-downloading' : function(state) {
console.log('downloading, ' + state.percent + " %");
},
'update-downloaded' : function() {
console.log('zip downloaded');
},
'update-installed' : function() {
console.log('archive installed');
},
'error' : function(e) {
console.error(e);
}
});
updater.launch();