@minimaltech/electron-infra
Version:
Minimal Technology ElectronJS Infrastructure
86 lines (85 loc) • 4.26 kB
TypeScript
import { AnyType, ApplicationLogger, ValueOrPromise } from '@minimaltech/node-infra';
import { Application, Binding, BindingTag, Constructor, DynamicValueProviderClass } from '@minimaltech/node-infra/@loopback/core';
import { AppUpdater, ProgressInfo, UpdateInfo } from 'electron-updater';
import { IAutoUpdaterOptions, IElectronApplication, IWindowManager } from '../../common/types';
export declare abstract class AbstractElectronApplication extends Application implements IElectronApplication {
protected logger: ApplicationLogger;
protected application: Electron.App;
protected autoUpdater: AppUpdater;
protected windowManager: IWindowManager;
protected autoUpdaterOptions?: {
use: false;
} | IAutoUpdaterOptions<AnyType>;
constructor(opts: {
scope: string;
appName?: string;
application: Electron.App;
autoUpdater?: AppUpdater;
windowManager?: IWindowManager;
autoUpdaterOptions?: {
use: false;
} | IAutoUpdaterOptions<AnyType>;
});
abstract onBeforeMigrate(): ValueOrPromise<void>;
abstract onMigrate(): ValueOrPromise<void>;
abstract onAfterMigrate(): ValueOrPromise<void>;
abstract onWillFinishLaunching(): void;
abstract onReady(): void;
abstract onSecondApplicationInstance(event: Electron.Event, args: string[], dir: string, additionalData: any): void;
abstract onBrowserWindowCreated(event: Electron.Event, window: Electron.BrowserWindow): void;
abstract onAllWindowsClosed(): void;
abstract onWillQuit(event: Electron.Event): void;
abstract onBeforeQuit(event: Electron.Event): void;
abstract onQuit(event: Electron.Event, exitCode: number): void;
abstract getProjectRoot(): string;
abstract bindContext(): ValueOrPromise<void>;
abstract onCheckingForUpdate(): ValueOrPromise<void>;
abstract onUpdateAvailable(updateInfo: UpdateInfo): ValueOrPromise<void>;
abstract onUpdateNotAvailable(updateInfo: UpdateInfo): ValueOrPromise<void>;
abstract onDownloadProgress(progress: ProgressInfo): ValueOrPromise<void>;
abstract onUpdateDownloaded(updateInfo: UpdateInfo): ValueOrPromise<void>;
abstract onUpdateError(error: Error): ValueOrPromise<void>;
getAutoUpdater(): AppUpdater;
executeWin32SignatureVerification(): void;
bindAutoUpdater(): ValueOrPromise<void>;
getApplicationInstance(): Electron.App;
getDialog(): Electron.Main.Dialog;
getWindowManager(): IWindowManager;
getPreloadPath(opts?: {
fileName?: string;
}): string;
preConfigure(): ValueOrPromise<void>;
postConfigure(): ValueOrPromise<void>;
getMethodExecutor(opts: {
binding: Readonly<Binding<any>>;
methodName: string;
}): (...args: any[]) => unknown;
buildRoute(opts: {
binding: Readonly<Binding<any>>;
methodName: string;
}): void;
buildRoutes(): void;
injectable<T>(scope: string, value: DynamicValueProviderClass<T> | Constructor<T>, tags?: BindingTag[]): void;
datasource<T>(value: DynamicValueProviderClass<T> | Constructor<T>): void;
repository<T>(value: DynamicValueProviderClass<T> | Constructor<T>): void;
bindEvents(): void;
start(): Promise<void>;
}
export declare abstract class BaseElectronApplication extends AbstractElectronApplication {
onBeforeMigrate(): ValueOrPromise<void>;
onMigrate(): ValueOrPromise<void>;
onAfterMigrate(): ValueOrPromise<void>;
onWillFinishLaunching(): void;
onSecondApplicationInstance(event: Electron.Event, args: string[], _dir: string, _additionalData: any): void;
onBrowserWindowCreated(event: Electron.Event, window: Electron.BrowserWindow): void;
onAllWindowsClosed(): void;
onWillQuit(event: Electron.Event): void;
onBeforeQuit(event: Electron.Event): void;
onQuit(event: Electron.Event, exitCode: number): void;
onUpdateError(error: Error): ValueOrPromise<void>;
onCheckingForUpdate(): ValueOrPromise<void>;
onUpdateNotAvailable(updateInfo: UpdateInfo): ValueOrPromise<void>;
onUpdateAvailable(updateInfo: UpdateInfo): Promise<void>;
onDownloadProgress(progress: ProgressInfo): ValueOrPromise<void>;
onUpdateDownloaded(updateInfo: UpdateInfo): ValueOrPromise<void>;
}