UNPKG

ngx-electron-plus

Version:

This library is a fork of a great module created by Thorsten Hans located here: http://github.com/ThorstenHans/ngx-electron With more usefull tools fs-jetpack , node-powershell, notifier, ssh2.Client etc...

117 lines (85 loc) 4.12 kB
# ngx-electron-plus This library is a fork of a great module created by Thorsten Hans located here: http://github.com/ThorstenHans/ngx-electron With more usefull tools fs-jetpack , node-powershell, notifier, ssh2.Client etc... ## ngx-electron-plus ngx-electron-plus is a fork of a great module created by Thorsten Hans located here: http://github.com/ThorstenHans/ngx-electron, however in his releases there is a bug that is causing the entire electron package to bundled into a built apps node-modules directory when using electron-packager or similar building tools. The fix looks to be pulled into the original project, however there has yet to be a release and it seems the pull took some time. I created this fork to have a module that can be installed easily in the meantime. ## What does it do? This module provides an angular wrapper for Electron's APIs exposed as part of the renderer process. ## Installation # New Projects `ngx-electron-plus` can be installed easily using either yarn or npm commands in the scope of an angular project. ``` $ yarn add ngx-electron-plus # OR $ npm install ngx-electron-plus ``` # Existing Projects with ngx-electron `ngx-electron-plus` can be used as a drop in replacement for `ngx-electron`, just remove `ngx-electron` via: ``` $ yarn remove ngx-electron # OR $ npm unistall ngx-electron ``` Then install `ngx-electron-plus` via the above section and change all your imports from `ngx-electron` to `ngx-electron-plus`. ## How do I use it? `ngx-electron-plus` is exposing a service called `NgxElectronPlusService` which needs to be added into your component page under imports. ``` import { Component, OnInit } from '@angular/core'; import { NgxElectronPlusService } from 'ngx-electron-plus'; @Component({ selector: 'my-app', templateUrl: 'app.html' }) export class AppComponent { constructor (private electronPlusService: NgxElectronPlusService) { } public logArchitecture() { if(this.electronPlusService.isElectron) { console.log(this.electronPlusService.process.arch); } } // Sample to run powershell command public runPowerShell(cmd): Promise<any> { const electron = this.electronPlusService; return new Promise(function (resolve, reject) { const psw = new electron.powershell({ executionPolicy: 'Bypass', noProfile: true }); psw.addCommand(`${cmd}`) .then(() => psw.invoke() .then((res) => { console.log("Call :",res) resolve(res); }) .catch((reason) => { console.log("Error ",reason) reject(reason); }) ) }); } } ``` ## The ElectronPlusService The `ElectronPlusService` is exposing all API's accessible from within Electron's renderer process. If your app is not 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 - jetpack: FSJetpack - Expose all properties of npm `fs-jetpack` package - ssh: SSH2.Client - Expose all properties of npm `ssh2` package - powershell: Shell - Expose all properties class of npm `node-powershell` package - notifier: Notifier - Expose all properties class of npm `node-notifer` package actually not stable.... ## Credits # Author Hervé de CHAVIGNY ## License MIT