Skip to content
This repository has been archived by the owner on Nov 17, 2023. It is now read-only.
/ ngx-electron Public archive

A simple Angular wrapper for electron's Renderer API

License

Notifications You must be signed in to change notification settings

ThorstenHans/ngx-electron

Repository files navigation

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

  • 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
  • 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