Skip to content

maku/ngx-electron

 
 

Repository files navigation

ngx-electron

Build Status semantic-release

ngx-electron provides an angular wrapper for Electron's APIs exposed as part of the renderer process.

Besides taking away the pain of correctly loading the APIs, it's also providing strongly typed APIs using @types/electron as a dependency.

Checkout the introduction post on my blog for more details.

Breaking changes

With version 1.0.1 static properties like isElectronApp and runningInElectron have been removed. Use instance property isElectronApp instead.

Installation

ngx-electron can be installed easily using either yarn or npm commands in the scope of an angular project.

$ yarn add ngx-electron --save
# or
$ npm install ngx-electron --save

ngx-electron is exposing a module called NgxElectronModule which needs to be imported in your AppModule.

import {NgModule} from '@angular/core';
import {BrowserModule} from '@angular/platform-browser';
import {NgxElectronModule} from 'ngx-electron';
import {AppComponent} from './app.component';
 
@NgModule({
    declarations: [],
    imports: [
      BrowserModule,
      NgxElectronModule
    ],
    bootstrap: [AppComponent]
})
export class AppModule {
 
}

Once the module has been imported, you can easily use angular DI to ask for ElectronService.

import {Component} from '@angular/core';
import {ElectronService} from '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: Electron.Remote - 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

Static Properties

Have been removed in release 1.0.1

  • runningInElectron: boolean - removed see isElectronApp instance property instead
  • isElectronApp: boolean - removed see isElectronApp instance property

About

angular wrapper for electron renderer apis

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 51.9%
  • JavaScript 48.1%