New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

electron-edge-js

Package Overview
Dependencies
Maintainers
1
Versions
65
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

electron-edge-js

Edge.js: run .NET and Node.js in-process on Electron

  • 30.0.0
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
566
decreased by-63.46%
Maintainers
1
Weekly downloads
 
Created
Source

.NET and Node.js in-process on Electron

This is a fork of edge-js adapted to support Electron.

Windows binaries pre-compiled for

ElectronNode.Js Version
Electron 19.xv16.14.2
Electron 20.xv16.15.0
Electron 21.xv16.16.0
Electron 22.xv16.17.1
Electron 23.xv18.12.1
Electron 24.xv18.14.0
Electron 25.xv18.15.0
Electron 26.xv18.16.1
Electron 27.xv18.17.1
Electron 28.xv18.18.2
Electron 29.xv20.9.0
Electron 30.xv20.11.1
  • You do not need to use same version of Node.js in your project as Electron Node.js version
  • On Linux and MacOS npm install will compile binaries with correct Node.Js headers for a given Electron version.
Usage is the same as edge-js, replace 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();
    }
*/});

Migration to .NET 6 :exclamation:

Edge.Js C# code has been migrated to .NET 6.
If your project is referencing EdgeJs.dll file locations have changed.

node_modules/electron-edge-js/lib/bootstrap/bin/Release/net6.0/EdgeJs.dll

Requirements (Windows)

You must install Microsoft Visual C++ Redistributable (x86)

Why use electron-edge-js?

Electron is built using specific version of Node.js. In order to use edge-js in Electron project you would need to recompile it using the same Node.js version and Electron headers.

electron-edge-js comes precompiled with correct Node.js versions and headers.

Quick start

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

MacOS

edge-js and electron-edge-js will fail to build on MacOS if Visual Studio for Mac is installed. VS installs Mono runtimes that edge-js fails to access during nmp install. Removing VS does not remove Mono fully and leaves behind an incomplete Mono install. To remove Mono from macOS use this script

sudo rm -rf /Library/Frameworks/Mono.framework
sudo pkgutil --forget com.xamarin.mono-MDK.pkg
sudo rm /etc/paths.d/mono-commands

Packaging Electron application

'electron-edge-js' needs to be specified as external module, some examples

webpack.config.js

     externals: {
    'electron-edge-js': 'commonjs2 electron-edge-js',
    },
    node: {
        __dirname: false,
        __filename: false,
    },

vue.config.js

    module.export = {
        pluginOptions: {
            electronBuilder: {
            externals:["electron-edge-js"]
        }
    }

Packaging example based on electron-edge-js-quick-start.
https://github.com/zenb/electron-edge-js-quick-start

Related issues to use for troubleshooting:
https://github.com/agracio/electron-edge-js/issues/138
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

Async execution

Underlying 'edge' component is written as synchronous C++ Node.js module and will cause Electron app to freeze when executing long running .NET code.
For workaround refer to this issue: https://github.com/agracio/electron-edge-js/issues/97

Documentation

For full documentation see edge-js repo.

Build

Build.bat supports only Electron major versions.

Keywords

FAQs

Package last updated on 24 Apr 2024

Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc