ThorstenHans / ngx-electron

A simple Angular wrapper for electron's Renderer API
MIT License
428 stars 86 forks source link
angular electron hacktoberfest

ngx-electron

Build Status semantic-release

ngx-electron is a small Module for Angular which makes calling Electron 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.

Introduction

Checkout the introduction post on my blog for more details.

Support me

Become a Patron!

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

The NgxElectronModule needs to be import in your root Angular module (eg AppModule).

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';

import { NgxElectronModule } from '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.

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