electron-protocols

1.0.4 • Public • Published

electron-protocols

Linux Build Status Windows Build status Dependency Status devDependency Status

Manage file protocols in Electron

Install

npm install --save electron-protocols

Run the example:

npm start example

Usage

First register your protocol in main process before app.on('ready'):

main process

const protocols = require('electron-protocols');
protocols.register('app', protocols.basepath(app.getAppPath()));

Then you can use protocols.path to map your protocol to a file path:

renderer/main process

const protocols = require('electron-protocols');
 
// return the module in ${app.getAppPath()}/my/module.js
const myModule = require(protocols.path('app://my/module.js'));

Also, you are free to use protocol in html in renderer process:

  <img src="app://my/image.png" />
  <script src="app://my/script.js" />

FAQ

What is the benefit to register again in renderer process?

It will speed up the search of protocols.path by skip calling the remote (ipc-sync) functions.

API

Methods

protocols.register(protocol, fn)

  • protocol string
  • fn function

Register a protocol so that {@link Editor.url} can use it to convert an url to the filesystem path. The fn accept an url Object via url.parse

Example:

const {app} = require('electron');
const protocols = require('electron-protocols');
const path = require('path');
 
protocols.register('app', uri => {
  let base = app.getAppPath();
  if ( uri.pathname ) {
    return path.join( base, uri.host, uri.pathname );
  }
  return path.join( base, uri.host );
});

protocols.path(url)

  • url string

Convert a url by its protocol to a filesystem path. This function is useful when you try to get some internal file. You can use protocols.register to register and map your filesystem path to url.

Example:

// it will return "{your-app-path}/foobar/foobar.js"
protocols.path('app://foobar/foobar.js');

protocols.basepath(base)

  • base string

A function help you register protocol by base path you provide.

Example:

protocols.register('app', protocols.basepath(app.getAppPath()));

License

MIT © 2017 Johnny Wu

Readme

Keywords

Package Sidebar

Install

npm i electron-protocols

Weekly Downloads

4

Version

1.0.4

License

MIT

Last publish

Collaborators

  • johnnywu