diff --git a/src/index.ts b/src/index.ts index 53b648c..cd8acbd 100644 --- a/src/index.ts +++ b/src/index.ts @@ -28,6 +28,13 @@ export interface InstallExtensionOptions { session?: Session; } +type ExtensionApi = Pick< + Session, + 'getAllExtensions' | 'removeListener' | 'removeExtension' | 'loadExtension' +> & { + on: Extract any>; +}; + /** * @param extensionReference Extension or extensions to install * @param options Installation options @@ -73,8 +80,10 @@ export async function installExtension( throw new Error(`Invalid extensionReference passed in: "${extensionReference}"`); } - const extensionApi: Electron.Extensions | Electron.Session = - (targetSession.extensions as Electron.Extensions | undefined) || targetSession; + const extensionApi: ExtensionApi = + 'extensions' in targetSession + ? (targetSession as unknown as { extensions: ExtensionApi }).extensions + : targetSession; const installedExtension = extensionApi.getAllExtensions().find((e) => e.id === chromeStoreID); if (!forceDownload && installedExtension) {