ManagementPort
ManagementPort introspects and controls the lifecycle of installed browser extensions, including enabling, disabling, and monitoring install events.
Context
- Availability: Background
- Source:
packages/ports/src/background/management/management.port.ts
Key Methods
getAll(): Promise<WebExtManagementExtensionInfo[]>- List all installed extensions.getSelf(): Promise<WebExtManagementExtensionInfo>- Get metadata about the current extension.setEnabled(id: string, enabled: boolean): Promise<void>- Enable or disable an extension by ID.onInstalledAddListener(listener: (info: WebExtManagementExtensionInfo) => void): void- Subscribe to extension install events.onInstalledRemoveListener(listener: (info: WebExtManagementExtensionInfo) => void): void- Unsubscribe from install events.onUninstalledAddListener(listener: (id: string) => void): void- Subscribe to extension uninstall events.onUninstalledRemoveListener(listener: (id: string) => void): void- Unsubscribe from uninstall events.
Usage
import { ManagementPort } from '@hexajs-dev/ports';
import { Injectable, HexaContext } from '@hexajs-dev/common';
@Injectable({ context: HexaContext.Background })
export class ExtensionRegistryService {
constructor(private readonly management: ManagementPort) {}
async getEnabledExtensions(): Promise<string[]> {
const all = await this.management.getAll();
return all.filter((ext) => ext.enabled).map((ext) => ext.id);
}
async getSelfVersion(): Promise<string> {
const self = await this.management.getSelf();
return self.version;
}
}
API Reference Appendix
Below is the exhaustive, auto-generated technical reference for all types, interfaces, and signatures associated with this API.
Classes
ManagementPort
import { ManagementPort } from '@hexajs-dev/ports';
class ManagementPort { ... }
Methods
getAll()
getAll(): Promise<HexaWebManagementExtensionInfo[]>
getSelf()
getSelf(): Promise<HexaWebManagementExtensionInfo>
onDisabledAddListener()
onDisabledAddListener(listener: (info: HexaWebManagementExtensionInfo) => void): void
onDisabledRemoveListener()
onDisabledRemoveListener(listener: (info: HexaWebManagementExtensionInfo) => void): void
onEnabledAddListener()
onEnabledAddListener(listener: (info: HexaWebManagementExtensionInfo) => void): void
onEnabledRemoveListener()
onEnabledRemoveListener(listener: (info: HexaWebManagementExtensionInfo) => void): void
onInstalledAddListener()
onInstalledAddListener(listener: (info: HexaWebManagementExtensionInfo) => void): void
onInstalledRemoveListener()
onInstalledRemoveListener(listener: (info: HexaWebManagementExtensionInfo) => void): void
onUninstalledAddListener()
onUninstalledAddListener(listener: (id: string) => void): void
onUninstalledRemoveListener()
onUninstalledRemoveListener(listener: (id: string) => void): void
setEnabled()
setEnabled(id: string, enabled: boolean): Promise<void>