
Research
wget to Wipeout: Malicious Go Modules Fetch Destructive Payload
Socket's research uncovers three dangerous Go modules that contain obfuscated disk-wiping malware, threatening complete data loss.
electron-edge-js
Advanced tools
This is a fork of edge-js adapted to support Electron
electron-edge-js
binaries will be compiled during npm install
using node-gyp
.electron-edge-js
binaries during npm install
using node-gyp
.nan
module compatibility issues versions prior to Electron 29 are not supported.Electron | x86/x64 | arm64 |
---|---|---|
Electron 31.x - 36.x | :heavy_check_mark: | :heavy_check_mark: |
Electron | x64 | arm64 |
---|---|---|
Electron 31.x - 36.x | :heavy_check_mark: | :heavy_check_mark: |
Supports Electron 29.x - 36.x
On Linux npm install
will compile binaries with correct Electron headers for a given Electron version.
Electron | x64 | arm64 |
---|---|---|
Electron 29.x - 36.x | :heavy_check_mark: | :heavy_check_mark: |
Other Linux architectures might work but have not been tested.
require('edge-js')
with require('electron-edge-js')
:npm install electron-edge-js
-var edge = require('edge-js');
+var edge = require('electron-edge-js');
var helloWorld = edge.func(function () {/*
async (input) => {
return ".NET Welcomes " + input.ToString();
}
*/});
Sample app that shows how to work with .NET Core using inline code and compiled C# libraries.
https://github.com/agracio/electron-edge-js-quick-start
electron-edge-js
needs to be specified as an external module, some examples
webpack.config.js
externals: {
'electron-edge-js': 'commonjs2 electron-edge-js',
},
node: {
__dirname: true,
__filename: true,
},
webpack.config.js
externals: {
'electron-edge-js': 'commonjs2 electron-edge-js',
},
node: {
__dirname: false,
__filename: false,
},
extraResources:[
"./node_modules/electron-edge-js/**",
]
Electron main.js
// https://github.com/ScottJMarshall/electron-webpack-module-resolution
require("module").globalPaths.push(process.cwd()+'/node_modules');
var edge = require('electron-edge-js');
vue.config.js
module.export = {
pluginOptions: {
electronBuilder: {
externals:["electron-edge-js"]
}
}
}
Related issues to use for troubleshooting:
https://github.com/agracio/electron-edge-js/issues/39
https://github.com/agracio/electron-edge-js/issues/74
https://github.com/agracio/electron-edge-js/issues/21
https://github.com/agracio/electron-edge-js/issues/138
electron-edge-js
should be excluded from rebuild.
electron-forge example based on electron-edge-js-quick-start
https://github.com/agracio/electron-edge-js-quick-start-forge
If electron-edge-js
module is used on main Electron thread it will cause Electron app to freeze when executing long-running .NET code even if your C# code is fully async.
To avoid this you can use worker thread packages such as threads.js or piscina
This issue is not present when using Electron IPC
main.js
const { fork } = require("child_process"); fork("../child.js", [], { env: {file: 'filename'}, })
child.js
const path = require('path');
const powerpoint = require('office-script').powerpoint;
const filePath = '../../directory/';
powerpoint.open(path.join(${remotePath}${process.env.file}.pptx), function(err) {
if(err) throw err;
});
If electron-edge-js
module is used on main Electron thread refreshing the window (F5, Ctrl+R, Command+R etc) will cause a hard crash in electron-edge-js
module and Electron app.
Currently there is no solution to this issue other than using Electron IPC.
For full documentation see edge-js repo.
FAQs
Edge.js: run .NET and Node.js in-process on Electron
The npm package electron-edge-js receives a total of 1,231 weekly downloads. As such, electron-edge-js popularity was classified as popular.
We found that electron-edge-js demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Socket's research uncovers three dangerous Go modules that contain obfuscated disk-wiping malware, threatening complete data loss.
Research
Socket uncovers malicious packages on PyPI using Gmail's SMTP protocol for command and control (C2) to exfiltrate data and execute commands.
Product
We redesigned Socket's first logged-in page to display rich and insightful visualizations about your repositories protected against supply chain threats.