You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
session-desktop/ts/updater/index.ts

59 lines
1.5 KiB
TypeScript

import { BrowserWindow } from 'electron';
import { start as startUpdater, stop as stopUpdater } from './updater';
import { LoggerType, MessagesType } from './common';
import { UserConfig } from '../../app/user_config';
let initialized = false;
let localUserConfig: UserConfig;
export async function start(
getMainWindow: () => BrowserWindow,
userConfig: UserConfig,
messages: MessagesType,
logger: LoggerType
) {
if (initialized) {
throw new Error('updater/start: Updates have already been initialized!');
}
if (!userConfig) {
throw new Error('updater/start: userConfig is needed!');
}
if (!messages) {
throw new Error('updater/start: Must provide messages!');
}
if (!logger) {
throw new Error('updater/start: Must provide logger!');
}
initialized = true;
localUserConfig = userConfig; // reused below
if (autoUpdateDisabled()) {
logger.info('updater/start: Updates disabled - not starting new version checks');
return;
}
await startUpdater(getMainWindow, messages, logger);
}
export function stop() {
if (initialized) {
stopUpdater();
initialized = false;
}
}
function autoUpdateDisabled() {
// We need to ensure that if auto update is not present in the user config then we assume it is on by default
const userSetting = localUserConfig.get('autoUpdate');
const autoUpdate = typeof userSetting !== 'boolean' || userSetting;
return (
process.mas || // From Electron: Mac App Store build
// tslint:disable-next-line: no-backbone-get-set-outside-model
!autoUpdate // User setting
);
}