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.
		
		
		
		
		
			
		
			
				
	
	
		
			66 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			TypeScript
		
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			TypeScript
		
	
| import { get as getFromConfig } from 'config';
 | |
| 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 config: 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!');
 | |
|   }
 | |
|   initialized = true;
 | |
|   config = userConfig;
 | |
| 
 | |
|   if (!messages) {
 | |
|     throw new Error('updater/start: Must provide messages!');
 | |
|   }
 | |
|   if (!logger) {
 | |
|     throw new Error('updater/start: Must provide logger!');
 | |
|   }
 | |
| 
 | |
|   if (autoUpdateDisabled()) {
 | |
|     /*
 | |
|       If you really want to enable auto-updating in dev mode
 | |
|       You need to create a dev-app-update.yml file.
 | |
|       A sample can be found in dev-app-update.yml.sample.
 | |
|       After that you can change `updatesEnabled` to `true` in the default config.
 | |
|     */
 | |
| 
 | |
|     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 = config.get('autoUpdate');
 | |
|   const autoUpdate = typeof userSetting !== 'boolean' || userSetting;
 | |
| 
 | |
|   return (
 | |
|     process.mas || // From Electron: Mac App Store build
 | |
|     !getFromConfig('updatesEnabled') || // Hard coded config
 | |
|     // tslint:disable-next-line: no-backbone-get-set-outside-model
 | |
|     !autoUpdate // User setting
 | |
|   );
 | |
| }
 |