Skip to main content

OverwolfPackageManager

Electron APIs / packages / OverwolfPackageManager

Overwolf Package Manager interface.

For package-specific API types, see @overwolf/ow-electron-packages-types.

Extends

  • EventEmitter
note

This interface is a standard Node.js EventEmitter. Its inherited members (once, off, removeListener, setMaxListeners, and so on) are available but are not listed below — only the members Overwolf adds are documented here.

Properties

PropertyModifierTypeDescription
logsFolderPathreadonlystringThe path to the application's logs folder.
phasePercentreadonlynumberThe ow-electron phase percentage (used by the package manager).

Methods

getAvailableChannels()

getAvailableChannels(...packageNames: string[]): Promise<AvailableChannelsResult>;

Returns the list of release channels available on the server for one or more packages.

  • Pass no arguments to query all packages registered in the app's packages list.
  • Pass one or more package names to query a specific subset.
  • Packages with no channels defined return an empty array [].
  • Throws if any supplied name is not in the registered packages list.

Parameters

ParameterTypeDescription
...packageNamesstring[]Optional package names to query.

Returns

Promise<AvailableChannelsResult>

Example

const channels = await api.getAvailableChannels();
// { overlay: ['pre-release', 'beta'], gep: ['pre-release'], utility: [] }

const { overlay } = await api.getAvailableChannels("overlay");
// overlay: ['pre-release', 'beta']

getChannel()

getChannel(...packageNames: string[]): Promise<CurrentChannelsResult>;

Returns the currently active release channel for one or more packages.

  • 'public' means the package is on the default public release.
  • Pass no arguments to query all registered packages (plus any package with a non-public channel stored, even if not in package.json).
  • Unknown package names are silently omitted from the result (no error thrown).

Parameters

ParameterTypeDescription
...packageNamesstring[]Optional package names to query.

Returns

Promise<CurrentChannelsResult>

Example

const current = await api.getChannel();
// { overlay: 'pre-release', gep: 'public', utility: 'public' }

const { overlay } = await api.getChannel("overlay");
// 'pre-release'

hasPendingUpdates()

hasPendingUpdates(): PendingUpdatesResult;

Checks if there are any pending package updates that require a client restart.

Returns

PendingUpdatesResult

  • Result indicating the status of pending updates.

on("crashed")

on(eventName: "crashed", listener: (event: Event, canRecover: boolean) => void): this;

Register listener for Overwolf Package crashes. Calling event.preventDefault() will prevent the package from automatically attempting to re-launch itself.

Parameters
ParameterTypeDescription
eventName"crashed"Name of the node event ('crashed')
listener(event: Event, canRecover: boolean) => voidThe listener that will be invoked when this event is fired
Returns

this

The current instance of the Overwolf Package Manager

Overrides
NodeJS.EventEmitter.on;

on("ready")

on(eventName: "ready", listener: (event: Event, packageName: string, version: string) => void): this;

Register listener for when an Overwolf Package is ready

Parameters
ParameterTypeDescription
eventName"ready"Name of the node event ('ready')
listener(event: Event, packageName: string, version: string) => voidThe listener that will be invoked when this event is fired
Returns

this

The current instance of the Overwolf Package Manager

Overrides
NodeJS.EventEmitter.on;

on("package-update-pending")

on(eventName: "package-update-pending", listener: (event: Event, info: PackageInfo[]) => void): this;

Register listener for when an Overwolf Package is ready to update

Parameters
ParameterTypeDescription
eventName"package-update-pending"Name of the node event ('package-update-pending')
listener(event: Event, info: PackageInfo[]) => voidThe listener that will be invoked when this event is fired
Returns

this

The current instance of the Overwolf Package Manager

Overrides
NodeJS.EventEmitter.on;

on("updated")

on(eventName: "updated", listener: (event: Event, packageName: string, version: string) => void): this;

Register listener for when an Overwolf Package updated

Parameters
ParameterTypeDescription
eventName"updated"Name of the node event ('updated')
listener(event: Event, packageName: string, version: string) => void-
Returns

this

The current instance of the Overwolf Package Manager

Overrides
NodeJS.EventEmitter.on;

on("failed-to-initialize")

on(eventName: "failed-to-initialize", listener: (event: Event, packageName: string) => void): this;

Register listener for Overwolf Package initialization failures

Parameters
ParameterTypeDescription
eventName"failed-to-initialize"Name of the node event ('failed-to-initialize')
listener(event: Event, packageName: string) => voidThe listener that will be invoked when this event is fired
Returns

this

The current instance of the Overwolf Package Manager

Overrides
NodeJS.EventEmitter.on;

on("loading")

on(eventName: "loading", listener: (event: Event, packageName: string) => void): this;

Register listener for when an Overwolf Package begins its load sequence. Fires before 'ready'.

Parameters
ParameterTypeDescription
eventName"loading"Name of the node event ('loading')
listener(event: Event, packageName: string) => voidThe listener that will be invoked when this event is fired
Returns

this

The current instance of the Overwolf Package Manager

Overrides
NodeJS.EventEmitter.on;

relaunch()

relaunch(): void;

Relaunch the Overwolf Package Manager. Call it to force all pending Overwolf Package updates.

The Overwolf Package Manager will automatically relaunch itself if an update is available and no package is currently running.*

Returns

void


setChannel()

setChannel(
packageName: string,
channel?: string,
ready?: (packageInfo: ChannelPackageInfo) => void): Promise<SetChannelResult>;

Switches a package to a named release channel and immediately triggers a download of that channel's version.

  • Channel preferences are persisted in storage and applied on every subsequent update check, including the next app launch.
  • Pass undefined, null, an empty string, or 'public' to restore the default public release.
  • The optional ready callback is invoked with { name, version } once the download completes and the app must restart to apply the new version.
  • If the package is already at the requested channel version, ready never fires.
  • Throws if packageName is not listed in the app's package.json packages array.

Parameters

ParameterTypeDescription
packageNamestringThe package to switch.
channel?stringTarget channel name. Omit or pass 'public' / empty string to restore the public release.
ready?(packageInfo: ChannelPackageInfo) => voidInvoked when the download completes and a restart is required.

Returns

Promise<SetChannelResult>

Examples

const result = await api.setChannel("overlay", "pre-release", (pkg) => {
console.log(`overlay v${pkg.version} ready - restart required`);
api.relaunch();
});
if (!result.success) console.error("setChannel failed:", result.error);
// Restore the public release - all four are equivalent
await api.setChannel("overlay");
await api.setChannel("overlay", undefined);
await api.setChannel("overlay", "");
await api.setChannel("overlay", "public");