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, InjectableContext } from '@hexajs-dev/common';
@Injectable({ context: InjectableContext.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.