Skip to main content

Class: MacUpdater

Extends​

Constructors​

Constructor​

new MacUpdater(options?, app?): MacUpdater

Parameters​

options?​

AllPublishOptions

app?​

AppAdapter

Returns​

MacUpdater

Overrides​

AppUpdater.constructor

Properties​

_isUpdateSupported​

protected _isUpdateSupported: VerifyUpdateSupport

Inherited from​

AppUpdater._isUpdateSupported


_isUserWithinRollout​

protected _isUserWithinRollout: VerifyUpdateSupport

Inherited from​

AppUpdater._isUserWithinRollout


_logger​

protected _logger: Logger = console

Inherited from​

AppUpdater._logger


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

Inherited from​

AppImageUpdater.allowDowngrade


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).

Inherited from​

AppUpdater.allowPrerelease


app​

protected readonly app: AppAdapter

Inherited from​

AppUpdater.app


autoDownload​

autoDownload: boolean = true

Whether to automatically download an update when it is found.

Default​

true

Inherited from​

AppImageUpdater.autoDownload


autoInstallOnAppQuit​

autoInstallOnAppQuit: boolean = true

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

Default​

true

Inherited from​

AppUpdater.autoInstallOnAppQuit


autoRunAppAfterInstall​

autoRunAppAfterInstall: boolean = true

Whether to run the app after finish install when run the installer is NOT in silent mode.

Default​

true

Inherited from​

AppUpdater.autoRunAppAfterInstall


currentVersion​

readonly currentVersion: SemVer

The current application version.

Inherited from​

AppUpdater.currentVersion


disableDifferentialDownload​

disableDifferentialDownload: boolean = false

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

Default​

false

Inherited from​

AppImageUpdater.disableDifferentialDownload


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

Inherited from​

AppImageUpdater.disableWebInstaller


downloadedUpdateHelper​

protected downloadedUpdateHelper: DownloadedUpdateHelper | null = null

Inherited from​

AppUpdater.downloadedUpdateHelper


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

Inherited from​

AppImageUpdater.forceDevUpdateConfig


fullChangelog​

fullChangelog: boolean = false

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

Default​

false

Inherited from​

AppUpdater.fullChangelog


previousBlockmapBaseUrlOverride​

previousBlockmapBaseUrlOverride: string | null = null

The base URL of the old block map file.

When null, the updater will use the base URL of the update file to download the update. When set, the updater will use this string as the base URL of the old block map file. Some servers like github cannot download the old block map file from latest release, so you need to compute the old block map file base URL manually.

Default​

null

Inherited from​

AppImageUpdater.previousBlockmapBaseUrlOverride


requestHeaders​

requestHeaders: OutgoingHttpHeaders | null = null

The request headers.

Inherited from​

AppImageUpdater.requestHeaders


signals​

readonly signals: UpdaterSignal

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

Inherited from​

AppImageUpdater.signals


stagingUserIdPromise​

protected readonly stagingUserIdPromise: Lazy<string>

Inherited from​

AppImageUpdater.stagingUserIdPromise


updateInfoAndProvider​

protected updateInfoAndProvider: UpdateInfoAndProvider | null = null

Inherited from​

AppImageUpdater.updateInfoAndProvider

Accessors​

channel​

Get Signature​

get channel(): string | null

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

Returns​

string | null

Set Signature​

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​

string | null

Returns​

void

Inherited from​

AppUpdater.channel


isUpdateSupported​

Get Signature​

get isUpdateSupported(): VerifyUpdateSupport

Allows developer to override default logic for determining if an update is supported. The default logic compares the UpdateInfo minimum system version against the os.release() with semver package

Returns​

VerifyUpdateSupport

Set Signature​

set isUpdateSupported(value): void

Parameters​
value​

VerifyUpdateSupport

Returns​

void

Inherited from​

AppUpdater.isUpdateSupported


isUserWithinRollout​

Get Signature​

get isUserWithinRollout(): VerifyUpdateSupport

Allows developer to override default logic for determining if the user is below the rollout threshold. The default logic compares the staging percentage with numerical representation of user ID. An override can define custom logic, or bypass it if needed.

Returns​

VerifyUpdateSupport

Set Signature​

set isUserWithinRollout(value): void

Parameters​
value​

VerifyUpdateSupport

Returns​

void

Inherited from​

AppUpdater.isUserWithinRollout


logger​

Get Signature​

get logger(): Logger | null

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.

Returns​

Logger | null

Set Signature​

set logger(value): void

Parameters​
value​

Logger | null

Returns​

void

Inherited from​

AppUpdater.logger


netSession​

Get Signature​

get netSession(): Session

Returns​

Session

Inherited from​

AppUpdater.netSession

Methods​

addAuthHeader()​

addAuthHeader(token): void

Shortcut for explicitly adding auth tokens to request headers

Parameters​

token​

string

Returns​

void

Inherited from​

AppUpdater.addAuthHeader


addListener()​

addListener<U>(event, listener): this

Type Parameters​

U​

U extends keyof AppUpdaterEvents

Parameters​

event​

U

listener​

AppUpdaterEvents[U]

Returns​

this

Inherited from​

AppUpdater.addListener


checkForUpdates()​

checkForUpdates(): Promise<UpdateCheckResult | null>

Asks the server whether there is an update.

Returns​

Promise<UpdateCheckResult | null>

null if the updater is disabled, otherwise info about the latest version

Inherited from​

AppUpdater.checkForUpdates


checkForUpdatesAndNotify()​

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

Parameters​

downloadNotification?​

DownloadNotification

Returns​

Promise<UpdateCheckResult | null>

Inherited from​

AppUpdater.checkForUpdatesAndNotify


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>

Inherited from​

AppUpdater.differentialDownloadInstaller


dispatchError()​

protected dispatchError(e): void

Parameters​

e​

Error

Returns​

void

Inherited from​

AppUpdater.dispatchError


dispatchUpdateDownloaded()​

protected dispatchUpdateDownloaded(event): void

Parameters​

event​

UpdateDownloadedEvent

Returns​

void

Inherited from​

AppUpdater.dispatchUpdateDownloaded


doDownloadUpdate()​

protected doDownloadUpdate(downloadUpdateOptions): Promise<DownloadExecutorResult>

Parameters​

downloadUpdateOptions​

DownloadUpdateOptions

Returns​

Promise<DownloadExecutorResult>

Overrides​

AppUpdater.doDownloadUpdate


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.

Inherited from​

AppUpdater.downloadUpdate


emit()​

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

Type Parameters​

U​

U extends keyof AppUpdaterEvents

Parameters​

event​

U

args​

...Parameters<AppUpdaterEvents[U]>

Returns​

boolean

Inherited from​

AppUpdater.emit


eventNames()​

eventNames<U>(): U[]

Type Parameters​

U​

U extends keyof AppUpdaterEvents

Returns​

U[]

Inherited from​

AppUpdater.eventNames


executeDownload()​

protected executeDownload(taskOptions): Promise<DownloadExecutorResult>

Parameters​

taskOptions​

DownloadExecutorTask

Returns​

Promise<DownloadExecutorResult>

Inherited from​

AppUpdater.executeDownload


getFeedURL()​

getFeedURL(): string | null | undefined

Returns​

string | null | undefined

Inherited from​

AppUpdater.getFeedURL


getMaxListeners()​

getMaxListeners(): number

Returns​

number

Inherited from​

AppUpdater.getMaxListeners


getUpdateInfoAndProvider()​

protected getUpdateInfoAndProvider(): Promise<UpdateInfoAndProvider>

Returns​

Promise<UpdateInfoAndProvider>

Inherited from​

AppUpdater.getUpdateInfoAndProvider


isUpdaterActive()​

isUpdaterActive(): boolean

Returns​

boolean

Inherited from​

AppUpdater.isUpdaterActive


listenerCount()​

listenerCount(type): number

Parameters​

type​

keyof AppUpdaterEvents

Returns​

number

Inherited from​

AppUpdater.listenerCount


listeners()​

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

Type Parameters​

U​

U extends keyof AppUpdaterEvents

Parameters​

type​

U

Returns​

AppUpdaterEvents[U][]

Inherited from​

AppUpdater.listeners


off()​

off<U>(event, listener): this

Type Parameters​

U​

U extends keyof AppUpdaterEvents

Parameters​

event​

U

listener​

AppUpdaterEvents[U]

Returns​

this

Inherited from​

AppUpdater.off


on()​

on<U>(event, listener): this

Type Parameters​

U​

U extends keyof AppUpdaterEvents

Parameters​

event​

U

listener​

AppUpdaterEvents[U]

Returns​

this

Inherited from​

AppUpdater.on


once()​

once<U>(event, listener): this

Type Parameters​

U​

U extends keyof AppUpdaterEvents

Parameters​

event​

U

listener​

AppUpdaterEvents[U]

Returns​

this

Inherited from​

AppUpdater.once


onUpdateAvailable()​

protected onUpdateAvailable(updateInfo): void

Parameters​

updateInfo​

UpdateInfo

Returns​

void

Inherited from​

AppUpdater.onUpdateAvailable


prependListener()​

prependListener<U>(event, listener): this

Type Parameters​

U​

U extends keyof AppUpdaterEvents

Parameters​

event​

U

listener​

AppUpdaterEvents[U]

Returns​

this

Inherited from​

AppUpdater.prependListener


prependOnceListener()​

prependOnceListener<U>(event, listener): this

Type Parameters​

U​

U extends keyof AppUpdaterEvents

Parameters​

event​

U

listener​

AppUpdaterEvents[U]

Returns​

this

Inherited from​

AppUpdater.prependOnceListener


quitAndInstall()​

quitAndInstall(): 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.

Returns​

void

Overrides​

AppUpdater.quitAndInstall


rawListeners()​

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

Type Parameters​

U​

U extends keyof AppUpdaterEvents

Parameters​

type​

U

Returns​

AppUpdaterEvents[U][]

Inherited from​

AppUpdater.rawListeners


removeAllListeners()​

removeAllListeners(event?): this

Parameters​

event?​

keyof AppUpdaterEvents

Returns​

this

Inherited from​

AppUpdater.removeAllListeners


removeListener()​

removeListener<U>(event, listener): this

Type Parameters​

U​

U extends keyof AppUpdaterEvents

Parameters​

event​

U

listener​

AppUpdaterEvents[U]

Returns​

this

Inherited from​

AppUpdater.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

Inherited from​

AppUpdater.setFeedURL


setMaxListeners()​

setMaxListeners(n): this

Parameters​

n​

number

Returns​

this

Inherited from​

AppUpdater.setMaxListeners


filterFilesForArch()​

protected static filterFilesForArch(files, isArm64Mac): ResolvedUpdateFileInfo[]

Filters update files to the appropriate architecture. On arm64 Macs (including Rosetta), arm64 files are preferred when available. On x64 Macs, arm64 files are excluded.

Parameters​

files​

ResolvedUpdateFileInfo[]

isArm64Mac​

boolean

Returns​

ResolvedUpdateFileInfo[]