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
Markdown
# 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';
({
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