Skip to content

juliangruber/electron-stream

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

144 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Streaming wrapper around electron

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors