import * as path from "path" import { AppAdapter, getAppCacheDir } from "./AppAdapter" export class ElectronAppAdapter implements AppAdapter { constructor(private readonly app = require("electron").app) {} whenReady(): Promise { return this.app.whenReady() } get version(): string { return this.app.getVersion() } get name(): string { return this.app.getName() } get isPackaged(): boolean { return this.app.isPackaged === true } get appUpdateConfigPath(): string { return this.isPackaged ? path.join(process.resourcesPath, "app-update.yml") : path.join(this.app.getAppPath(), "dev-app-update.yml") } get userDataPath(): string { return this.app.getPath("userData") } get baseCachePath(): string { return getAppCacheDir() } quit(): void { this.app.quit() } relaunch(): void { this.app.relaunch() } onQuit(handler: (exitCode: number) => void): void { this.app.once("quit", (_: Electron.Event, exitCode: number) => handler(exitCode)) } }