UNPKG

@benliam12/ngx-electron

Version:

An Angular wrapper for Electron's Renderer APIs

92 lines (68 loc) 3.77 kB
# ngx-electron-fresh This package forked from [markbrutx/ngx-electron-fresh](https://github.com/markbrutx/ngx-electron-fresh) [![Build Status](https://travis-ci.org/markbrutx/ngx-electron-fresh.svg?branch=master)](https://travis-ci.org/markbrutx/ngx-electron-fresh) [![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=flat-square)](https://github.com/semantic-release/semantic-release) `ngx-electron` is a small Module for [Angular](http://angular.io) which makes calling [Electron](https://electronjs.org) APIs from the `Renderer Process` easier. By adding it to your Angular project, you'll get IntelliSense and a simple Angular service which acts as facade for Electron APIs. `ngx-electron` is licensed under [MIT](https://opensource.org/licenses/MIT). ## Introduction Checkout the introduction post on my [blog](https://thorsten-hans.com/integrating-angular-and-electron-using-ngx-electron) for more details. ## Installation `ngx-electron` can be installed easily using `npm` commands in the scope of an angular project. ```bash npm install @benliam12/ngx-electron --save ``` The `NgxElectronModule` needs to be import in your `root` Angular module (eg `AppModule`). ``` typescript import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { AppComponent } from './app.component'; import { NgxElectronModule } from '@benliam12/ngx-electron'; @NgModule({ declarations: [], imports: [ BrowserModule, NgxElectronModule ], bootstrap: [AppComponent] }) export class AppModule { } ``` Once the module has been imported, you can easily use dependency injection to get an instance of `ElectronService`. ``` typescript import { Component } from '@angular/core'; import { ElectronService } from '@benliam12/ngx-electron'; @Component({ selector: 'my-app', templateUrl: 'app.html' }) export class AppComponent { constructor(private _electronService: ElectronService) { } public playPingPong() { if(this._electronService.isElectronApp) { let pong: string = this._electronService.ipcRenderer.sendSync('ping'); console.log(pong); } } } ``` ## ElectronService The `ElectronService` is exposing all API's accessible from within Electron's renderer process. **If your app is not running inside electron, all getters will return NULL instead**. ### Properties * `desktopCapturer: Electron.DesktopCapturer` - Electron's desktop capturing API * `ipcRenderer: Electron.IpcRenderer` - Electron IpcRenderer * `remote: any` - Electron Remote capabilities * `webFrame: Electron.WebFrame` - Electron WebFrame * `clipboard: Electron.Clipboard` - Clipboard API * `crashReporter: Electron.CrashReporter` - Electron's CrashReporter * `process: NodeJS.Process` - Electron's Process Object * `screen: Electron.Screen` - Electron's Screen API * `shell: Electron.Shell` - Electron's Shell API * `nativeImage: Electron.NativeImage` - Electron's NativeImage API * `isElectronApp: boolean` - Indicates if app is being executed inside of electron or not * `isMacOS: boolean` - Indicates if app is running in electron and on `macOS` * `isWindows: boolean` - Indicates if app is running in electron and on `Windows` * `isLinux: boolean` - Indicates if app is running in electron and on `Linux` * `isX86: boolean` - Indicates if app is running in electron and on a `x86` architecture * `isX64: boolean` - Indicates if app is running in electron and on a `x64` architecture * `isArm: boolean` - Indiciates it app is running in electron adn on a `ARM` architecture