insomnia/app/main/updates.js
Gregory Schier d675222bdd Merge develop for 5.1.0 (#246)
* Add Slack badge to README

* Add Twitter badge

* Appveyor badge

* Fix badges again on README

* Fix Twitter badge link

* Simplify README.md

* Migrate Travis secure items to Travis project settings (#198)

* Remove docker linux build (using Travis now) (#199)

* Fix travis build

* Update Issue and PR templates (#200)

* Add template for future pull requests

* Format issue template like pull request template

* Will not clear selected file if dialog is dismissed (#202)

* #183, Body type "Text -> Other" reverts to previous body type (#193)

* ISSUE#183

* Adding condition to check mime-type to other

* Removing older changes for fixing issue.

* Save full response to a file (#207)

* Save full response to a file

* Add a new button on the response preview pane
* Save full response to file when button clicked

* Update after PR comments

* It's a Response, not a Request

* Remove file extension requirement

* Implement lazy tag rendering and some fixes (#211)

* expanding to 3 decimals (#213)

* Update PULL_REQUEST_TEMPLATE.md (#214)

* Show build info in console (#216)

* Add waiting message in dev mode while webpack compile happens

* Switch license from GPL to AGPL (#221)

* Default remote URLs to production

* Don't use Curl's cookie handling (#220)

* Some improvements to the response tag

* Add tests for XPath response queries

* Refactor conditional element syntax

* Add option to toggle Menu Bar showing for Windows/Linux (#225)

* Add option to toggle MenuBar showing on Windows/Linux

* Extract Toggling Menu Bar functionality to App Container. Default show Menu Bar. Remove tip from Response Pane.

* Finalize {% response ... %} Tag (#224)

* Some improvements to the response tag

* Add tests for XPath response queries

* Refactor conditional element syntax

* Update nunjucks-tags.js

* Better Nunjucks Tag Editor (#234)

* Helper to tokenize Nunjucks tag

* More granular types

* Add tag definitions

* Improve editor to be more WYSIWYG

* Fixed tests

* Added raw response tag

* A few improvements to tag editor enum

* fix NTLM typo (#244)

* Tweaks and fixes for next release (#245)
2017-05-24 09:25:22 -07:00

71 lines
2.0 KiB
JavaScript

import electron from 'electron';
import {CHECK_FOR_UPDATES_INTERVAL, getAppVersion, isDevelopment, isLinux} from '../common/constants';
const {autoUpdater, BrowserWindow} = electron;
const UPDATE_URLS = isDevelopment() ? {
darwin: `http://localhost:8000/builds/check/mac?v=${getAppVersion()}`,
linux: `http://localhost:8000/builds/check/linux?v=${getAppVersion()}`,
win32: `http://localhost:8000/updates/win?v=${getAppVersion()}`
} : {
darwin: `https://updates.insomnia.rest/builds/check/mac?v=${getAppVersion()}`,
linux: `https://updates.insomnia.rest/builds/check/linux?v=${getAppVersion()}`,
win32: `https://updates.insomnia.rest/updates/win?v=${getAppVersion()}`
};
let hasPromptedForUpdates = false;
export function init () {
// Check for updates immediately
_checkForUpdates();
// Check for updates on an interval
setInterval(_checkForUpdates, CHECK_FOR_UPDATES_INTERVAL);
autoUpdater.on('error', e => {
console.log(`[updater] Error: ${e.message}`);
});
autoUpdater.on('update-not-available', () => {
console.log('[updater] Not Available --');
});
autoUpdater.on('update-available', () => {
console.log('[updater] Update Available --');
});
autoUpdater.on('update-downloaded', (e, releaseNotes, releaseName, releaseDate, updateUrl) => {
console.log(`[updater] Downloaded ${releaseName} --`);
_showUpdateNotification();
});
}
function _showUpdateNotification () {
if (hasPromptedForUpdates) {
return;
}
const windows = BrowserWindow.getAllWindows();
if (windows.length && windows[0].webContents) {
windows[0].webContents.send('update-available');
}
hasPromptedForUpdates = true;
}
function _checkForUpdates () {
if (hasPromptedForUpdates) {
// We've already prompted for updates. Don't bug the user anymore
return;
}
if (!isLinux() && !isDevelopment()) {
try {
autoUpdater.setFeedURL(UPDATE_URLS[process.platform]);
autoUpdater.checkForUpdates();
} catch (err) {
console.warn('[updater] Failed to check for updates:', err.message);
}
}
}