UNPKG

voluptatumquo

Version:

A wrapper for Electron Renderer APIs. Finally easy to use in Angular

87 lines (67 loc) 2.44 kB
import * as Electron from 'electron'; import { ElectronWindow } from './typings/electron.window'; declare let window: ElectronWindow; export class ElectronService { private _electron: Electron.RendererInterface; private get electron(): Electron.RendererInterface { if (!this._electron) { if (window && window.require) { this._electron = window.require('electron'); return this._electron; } return null; } return this._electron; } /** * determines if SPA is running in Electron */ public get isElectronApp(): boolean { return !!window.navigator.userAgent.match(/Electron/); } public get isMacOS(): boolean { return this.isElectronApp && process.platform === 'darwin'; } public get isWindows(): boolean { return this.isElectronApp && process.platform === 'win32'; } public get isLinux(): boolean { return this.isElectronApp && process.platform === 'linux'; } public get isX86(): boolean { return this.isElectronApp && process.arch === 'ia32'; } public get isX64(): boolean { return this.isElectronApp && process.arch === 'x64'; } public get desktopCapturer(): Electron.DesktopCapturer { return this.electron ? this.electron.desktopCapturer : null; } public get ipcRenderer(): Electron.IpcRenderer { return this.electron ? this.electron.ipcRenderer : null; } public get remote(): Electron.Remote { return this.electron ? this.electron.remote : null; } public get webFrame(): Electron.WebFrame { return this.electron ? this.electron.webFrame : null; } public get clipboard(): Electron.Clipboard { return this.electron ? this.electron.clipboard : null; } public get crashReporter(): Electron.CrashReporter { return this.electron ? this.electron.crashReporter : null; } public get process(): any { return this.remote ? this.remote.process : null; } public get nativeImage(): typeof Electron.nativeImage { return this.electron ? this.electron.nativeImage : null; } public get screen(): Electron.Screen { return this.electron ? this.electron.screen : null; } public get shell(): Electron.Shell { return this.electron ? this.electron.shell : null; } }