OverwolfPackageManager
Electron APIs / packages / OverwolfPackageManager
Overwolf Package Manager interface.
For package-specific API types, see @overwolf/ow-electron-packages-types.
Extends
EventEmitter
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
| Property | Modifier | Type | Description |
|---|---|---|---|
logsFolderPath | readonly | string | The path to the application's logs folder. |
phasePercent | readonly | number | The 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
packageslist. - 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
| Parameter | Type | Description |
|---|---|---|
...packageNames | string[] | 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
| Parameter | Type | Description |
|---|---|---|
...packageNames | string[] | 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
- 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
| Parameter | Type | Description |
|---|---|---|
eventName | "crashed" | Name of the node event ('crashed') |
listener | (event: Event, canRecover: boolean) => void | The 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
| Parameter | Type | Description |
|---|---|---|
eventName | "ready" | Name of the node event ('ready') |
listener | (event: Event, packageName: string, version: string) => void | The 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
| Parameter | Type | Description |
|---|---|---|
eventName | "package-update-pending" | Name of the node event ('package-update-pending') |
listener | (event: Event, info: PackageInfo[]) => void | The 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
| Parameter | Type | Description |
|---|---|---|
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
| Parameter | Type | Description |
|---|---|---|
eventName | "failed-to-initialize" | Name of the node event ('failed-to-initialize') |
listener | (event: Event, packageName: string) => void | The 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
| Parameter | Type | Description |
|---|---|---|
eventName | "loading" | Name of the node event ('loading') |
listener | (event: Event, packageName: string) => void | The 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
readycallback 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,
readynever fires. - Throws if
packageNameis not listed in the app'spackage.jsonpackagesarray.
Parameters
| Parameter | Type | Description |
|---|---|---|
packageName | string | The package to switch. |
channel? | string | Target channel name. Omit or pass 'public' / empty string to restore the public release. |
ready? | (packageInfo: ChannelPackageInfo) => void | Invoked 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");