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");