Skip to content

electron updater.Class.AppUpdater

Electron-Builder / electron-updater / AppUpdater

Extends

  • TypedEmitter<AppUpdaterEvents, this>

Extended by

Constructors

new AppUpdater()

protected new AppUpdater(options, app?): AppUpdater

Parameters

options: undefined | null | AllPublishOptions

app?: AppAdapter

Returns

AppUpdater

Overrides

(EventEmitter as new () => TypedEmitter<AppUpdaterEvents>).constructor

Properties

_logger

protected _logger: Logger = console


allowDowngrade

allowDowngrade: boolean = false

Whether to allow version downgrade (when a user from the beta channel wants to go back to the stable channel).

Taken in account only if channel differs (pre-release version component in terms of semantic versioning).

Default

false

allowPrerelease

allowPrerelease: boolean = false

GitHub provider only. Whether to allow update to pre-release versions. Defaults to true if application version contains prerelease components (e.g. 0.12.1-alpha.1, here alpha is a prerelease component), otherwise false.

If true, downgrade will be allowed (allowDowngrade will be set to true).


app

protected readonly app: AppAdapter


autoDownload

autoDownload: boolean = true

Whether to automatically download an update when it is found.


autoInstallOnAppQuit

autoInstallOnAppQuit: boolean = true

Whether to automatically install a downloaded update on app quit (if quitAndInstall was not called before).


autoRunAppAfterInstall

autoRunAppAfterInstall: boolean = true

windows-only Whether to run the app after finish install when run the installer NOT in silent mode.

Default

true

currentVersion

readonly currentVersion: SemVer

The current application version.


disableDifferentialDownload

disableDifferentialDownload: boolean = false

NSIS only Disable differential downloads and always perform full download of installer.

Default

false

disableWebInstaller

disableWebInstaller: boolean = false

Web installer files might not have signature verification, this switch prevents to load them unless it is needed.

Currently false to prevent breaking the current API, but it should be changed to default true at some point that breaking changes are allowed.

Default

false

downloadedUpdateHelper

protected downloadedUpdateHelper: null | DownloadedUpdateHelper = null


forceDevUpdateConfig

forceDevUpdateConfig: boolean = false

Allows developer to force the updater to work in “dev” mode, looking for “dev-app-update.yml” instead of “app-update.yml” Dev: path.join(this.app.getAppPath(), "dev-app-update.yml") Prod: path.join(process.resourcesPath!, "app-update.yml")

Default

false

fullChangelog

fullChangelog: boolean = false

GitHub provider only. Get all release notes (from current version to latest), not just the latest.

Default

false

requestHeaders

requestHeaders: null | OutgoingHttpHeaders = null

The request headers.


signals

readonly signals: UpdaterSignal

For type safety you can use signals, e.g. autoUpdater.signals.updateDownloaded(() => {}) instead of autoUpdater.on('update-available', () => {})


stagingUserIdPromise

protected readonly stagingUserIdPromise: Lazy<string>


updateInfoAndProvider

protected updateInfoAndProvider: null | UpdateInfoAndProvider = null

Accessors

channel

get channel(): null | string

Get the update channel. Doesn’t return channel from the update configuration, only if was previously set.

set channel(value): void

Set the update channel. Overrides channel in the update configuration.

allowDowngrade will be automatically set to true. If this behavior is not suitable for you, simple set allowDowngrade explicitly after.

Parameters

value: null | string

Returns

null | string


logger

get logger(): null | Logger

The logger. You can pass electron-log, winston or another logger with the following interface: { info(), warn(), error() }. Set it to null if you would like to disable a logging feature.

set logger(value): void

Parameters

value: null | Logger

Returns

null | Logger


netSession

get netSession(): Session

Returns

Session

Methods

addAuthHeader()

addAuthHeader(token): void

Shortcut for explicitly adding auth tokens to request headers

Parameters

token: string

Returns

void


addListener()

addListener<U>(event, listener): this

Type Parameters

U extends keyof AppUpdaterEvents

Parameters

event: U

listener: AppUpdaterEvents[U]

Returns

this

Inherited from

(EventEmitter as new () => TypedEmitter<AppUpdaterEvents>).addListener


checkForUpdates()

checkForUpdates(): Promise<null | UpdateCheckResult>

Asks the server whether there is an update.

Returns

Promise<null | UpdateCheckResult>


checkForUpdatesAndNotify()

checkForUpdatesAndNotify(downloadNotification?): Promise<null | UpdateCheckResult>

Parameters

downloadNotification?: DownloadNotification

Returns

Promise<null | UpdateCheckResult>


differentialDownloadInstaller()

protected differentialDownloadInstaller(fileInfo, downloadUpdateOptions, installerPath, provider, oldInstallerFileName): Promise<boolean>

Parameters

fileInfo: ResolvedUpdateFileInfo

downloadUpdateOptions: DownloadUpdateOptions

installerPath: string

provider: Provider<any>

oldInstallerFileName: string

Returns

Promise<boolean>


dispatchError()

protected dispatchError(e): void

Parameters

e: Error

Returns

void


dispatchUpdateDownloaded()

protected dispatchUpdateDownloaded(event): void

Parameters

event: UpdateDownloadedEvent

Returns

void


doDownloadUpdate()

abstract protected doDownloadUpdate(downloadUpdateOptions): Promise<string[]>

Parameters

downloadUpdateOptions: DownloadUpdateOptions

Returns

Promise<string[]>


downloadUpdate()

downloadUpdate(cancellationToken): Promise<string[]>

Start downloading update manually. You can use this method if autoDownload option is set to false.

Parameters

cancellationToken: CancellationToken = ...

Returns

Promise<string[]>

Paths to downloaded files.


emit()

emit<U>(event, …args): boolean

Type Parameters

U extends keyof AppUpdaterEvents

Parameters

event: U

• …args: Parameters<AppUpdaterEvents[U]>

Returns

boolean

Inherited from

(EventEmitter as new () => TypedEmitter<AppUpdaterEvents>).emit


eventNames()

eventNames<U>(): U[]

Type Parameters

U extends keyof AppUpdaterEvents

Returns

U[]

Inherited from

(EventEmitter as new () => TypedEmitter<AppUpdaterEvents>).eventNames


executeDownload()

protected executeDownload(taskOptions): Promise<string[]>

Parameters

taskOptions: DownloadExecutorTask

Returns

Promise<string[]>


getFeedURL()

getFeedURL(): undefined | null | string

Returns

undefined | null | string


getMaxListeners()

getMaxListeners(): number

Returns

number

Inherited from

(EventEmitter as new () => TypedEmitter<AppUpdaterEvents>).getMaxListeners


getUpdateInfoAndProvider()

protected getUpdateInfoAndProvider(): Promise<UpdateInfoAndProvider>

Returns

Promise<UpdateInfoAndProvider>


isUpdaterActive()

isUpdaterActive(): boolean

Returns

boolean


listenerCount()

listenerCount(type): number

Parameters

type: keyof AppUpdaterEvents

Returns

number

Inherited from

(EventEmitter as new () => TypedEmitter<AppUpdaterEvents>).listenerCount


listeners()

listeners<U>(type): AppUpdaterEvents[U][]

Type Parameters

U extends keyof AppUpdaterEvents

Parameters

type: U

Returns

AppUpdaterEvents[U][]

Inherited from

(EventEmitter as new () => TypedEmitter<AppUpdaterEvents>).listeners


off()

off<U>(event, listener): this

Type Parameters

U extends keyof AppUpdaterEvents

Parameters

event: U

listener: AppUpdaterEvents[U]

Returns

this

Inherited from

(EventEmitter as new () => TypedEmitter<AppUpdaterEvents>).off


on()

on<U>(event, listener): this

Type Parameters

U extends keyof AppUpdaterEvents

Parameters

event: U

listener: AppUpdaterEvents[U]

Returns

this

Inherited from

(EventEmitter as new () => TypedEmitter<AppUpdaterEvents>).on


once()

once<U>(event, listener): this

Type Parameters

U extends keyof AppUpdaterEvents

Parameters

event: U

listener: AppUpdaterEvents[U]

Returns

this

Inherited from

(EventEmitter as new () => TypedEmitter<AppUpdaterEvents>).once


onUpdateAvailable()

protected onUpdateAvailable(updateInfo): void

Parameters

updateInfo: UpdateInfo

Returns

void


prependListener()

prependListener<U>(event, listener): this

Type Parameters

U extends keyof AppUpdaterEvents

Parameters

event: U

listener: AppUpdaterEvents[U]

Returns

this

Inherited from

(EventEmitter as new () => TypedEmitter<AppUpdaterEvents>).prependListener


prependOnceListener()

prependOnceListener<U>(event, listener): this

Type Parameters

U extends keyof AppUpdaterEvents

Parameters

event: U

listener: AppUpdaterEvents[U]

Returns

this

Inherited from

(EventEmitter as new () => TypedEmitter<AppUpdaterEvents>).prependOnceListener


quitAndInstall()

abstract quitAndInstall(isSilent?, isForceRunAfter?): void

Restarts the app and installs the update after it has been downloaded. It should only be called after update-downloaded has been emitted.

Note: autoUpdater.quitAndInstall() will close all application windows first and only emit before-quit event on app after that. This is different from the normal quit event sequence.

Parameters

isSilent?: boolean

windows-only Runs the installer in silent mode. Defaults to false.

isForceRunAfter?: boolean

Run the app after finish even on silent install. Not applicable for macOS. Ignored if isSilent is set to false(In this case you can still set autoRunAppAfterInstall to false to prevent run the app after finish).

Returns

void


rawListeners()

rawListeners<U>(type): AppUpdaterEvents[U][]

Type Parameters

U extends keyof AppUpdaterEvents

Parameters

type: U

Returns

AppUpdaterEvents[U][]

Inherited from

(EventEmitter as new () => TypedEmitter<AppUpdaterEvents>).rawListeners


removeAllListeners()

removeAllListeners(event?): this

Parameters

event?: keyof AppUpdaterEvents

Returns

this

Inherited from

(EventEmitter as new () => TypedEmitter<AppUpdaterEvents>).removeAllListeners


removeListener()

removeListener<U>(event, listener): this

Type Parameters

U extends keyof AppUpdaterEvents

Parameters

event: U

listener: AppUpdaterEvents[U]

Returns

this

Inherited from

(EventEmitter as new () => TypedEmitter<AppUpdaterEvents>).removeListener


setFeedURL()

setFeedURL(options): void

Configure update provider. If value is string, GenericServerOptions will be set with value as url.

Parameters

options: PublishConfiguration | AllPublishOptions

If you want to override configuration in the app-update.yml.

Returns

void


setMaxListeners()

setMaxListeners(n): this

Parameters

n: number

Returns

this

Inherited from

(EventEmitter as new () => TypedEmitter<AppUpdaterEvents>).setMaxListeners