1.0.5 • Published 9 years ago
nw-auto-updater v1.0.5
nw-auto-updater (NWAU)
This is nw-auto-updater, inspired by electron-autoUpdater API
npm install nw-auto-updater
it 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
encodingString
the remote manifest file encoding. Default to 'utf-8' nw-guinw-gui
the nw-gui instance, likevar gui = require('nw.gui')
remoteManifestString
the remote manifest file url, likehttp://www.exemple.com?version={{version}}
. NWAU will replace{{version}}
with the package.json version tmpManifestString
the path where manifest will be stored, likepath.resolve('./tmp/update_manifest.json')
.tmp
directory must exists tmpArchiveString
the path where zip archive will be stored, likepath.resolve('./tmp/update_archive.zip')
.tmp
directory must exists update-not-availableFunction
callback called if updates are not available (server unreachable or client up to date) update-availableFunction
callback called if updates are available (server return a status 200 code) update-downloadedFunction
callback called when zip archive is downloaded update-downloadingFunction
callback called when download is progressing errorFunction
callback called if ay errors are encountered
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();