JSPM

electron-server

0.2.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 13
  • Score
    100M100P100Q49778F
  • License MIT

Use Fastify inside an Electron app without consuming a port

Package Exports

  • electron-server

Readme

Electron Server

A super-fast and easy-to-use library to use Fastify, and it's ecosystem inside an Electron application without the need of exposing (and consuming) a port.

Use-cases

  • Running GraphQL in your Electron application.
  • Running Next.js using fastify-nextjs to create chrome://extensions like pages for your Electron app
  • Communication between main and renderer process using HTTP methods
  • Static file (assets) sharing between renderer process and the main process

Install

To install electron-server in an existing project as a dependency:

Install with npm:

npm i electron-server

Install with pnpm:

pnpm add electron-server

Example

// Require fastify and instantiate it.
const Fastify = require('fastify')
const server = Fastify({ ignoreTrailingSlash: true })
server.get('/hello-world', () => ({ hello: 'world' }))

// Require registerProtocol and call it on your root file.
const { registerProtocol } = require('electron-server')

// Register custom scheme to Electron
registerProtocol({
  scheme: 'my-scheme',
  server,
})

app.whenReady().then(() => {
  const win = new BrowserWindow({
    width: 800,
    height: 600,
  });
  
  // Visit the custom scheme
  win.loadURL("my-protocol://hello-world");
});

Do you want to run the example? Head to the Playground.