electron-stream

11.0.2 • Public • Published

electron-stream

Write JavaScript to electron, get console output back!

downloads

Example

Boot a hidden electron instance, log to stdout and clean up:

var electron = require('electron-stream');

var browser = electron();

browser.pipe(process.stdout);

browser.write('console.log(window.location.href);');
browser.write('window.close();');
browser.end();

Alternatively, use an existing http server. Note you cannot write to electron-stream when outside http server is in use.

var electron = require('electron-stream');
var http = require('http');

var server = http.createServer((req, res) => {
  if (/^\/bundle\.js/.test(req.url)) {
    res.setHeader('content-type', 'application/javascript');
    res.setHeader('cache-control', 'no-cache');
    res.end('console.log("hello");window.close();');
    return;
  }

  if (req.url == '/') {
    res.setHeader('Content-Type', 'text/html');
    res.end(`<!DOCTYPE html><meta charset="utf8"><body><script src="/bundle.js"></script></body>`);
    return;
  }
});

server.listen(8000);
var browser = electron({ loc: 'http://localhost:8000' });
browser.pipe(process.stdout);
browser.end();

Output streams

electron-stream lets you read all of the console output together, or split up into stdout and stderr:

// console.log and console.error
browser.pipe(...);
browser.stdall.pipe(...);

// console.log only
browser.stdout.pipe(...);

// console.error only
browser.stderr.pipe(...);

Installation

To install as a library:

$ npm install electron-stream

To install as a binary:

$ npm install -g electron-stream
$ echo "console.log('foo');window.close()" | electron-stream

Travis

To use electron on travis, add this to your travis.yml:

addons:
  apt:
    packages:
      - xvfb
install:
  - export DISPLAY=':99.0'
  - Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
  - npm install

Source.

API

electron([opts])

Create a writable stream around a newly spawned electron which forwards written data to electron. This module bundles electron-prebuilt.

Options:

  • show: Show the electron window. Defaults to false.
  • node: Enable node integration. Defaults to false.
  • basedir: Set this if you need to require node modules in node mode
  • static: Serve static files from this directory at /
  • loc: a full url like http://localhost:8080/ for using an existing http server. When loc is supplied, options node, basedir, and static are all ignored.
  • sandbox: Run electron with sandbox. Disable to emit debug information when using Docker. Defaults to true.

electron#stdout

electron#stderr

electron#stdall

Readable streams containing the console output. console.log will be forwarded to .stdout, console.error to .stderr. .stdall has them both.

electron#kill()

Kill the child process.

electron#on('exit', fn)

Emitted when the underlying electron exits. There can be multiple reasons for this:

  • electron#kill() was called
  • window.close() was sent as a script
  • there was a fatal error

License

MIT

Versions

Current Tags

VersionDownloads (Last 7 Days)Tag
11.0.2557latest

Version History

VersionDownloads (Last 7 Days)Published
11.0.2557
11.0.10
11.0.00
10.0.22
10.0.10
10.0.00
9.1.161
9.1.00
9.0.00
8.0.027
7.1.042
7.0.10
7.0.00
6.0.00
5.1.2375
5.1.10
5.1.00
5.0.62
5.0.52
5.0.40
5.0.30
5.0.20
5.0.10
5.0.01
4.2.273
4.2.10
4.2.00
4.1.11
4.1.00
4.0.00
3.1.01
3.0.20
3.0.10
3.0.01
2.6.21
2.6.10
2.6.01
2.5.00
2.4.10
2.4.00
2.3.00
2.2.00
2.1.21
2.1.10
2.1.01
2.0.00
1.1.10
1.1.00
1.0.20
1.0.10
1.0.01

Package Sidebar

Install

npm i electron-stream

Weekly Downloads

1,150

Version

11.0.2

License

MIT

Unpacked Size

18.1 kB

Total Files

10

Last publish

Collaborators

  • juliangruber