electron-stream v11.0.2
electron-stream
Write JavaScript to electron, get console output back!
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-streamTo install as a binary:
$ npm install -g electron-stream
$ echo "console.log('foo');window.close()" | electron-streamTravis
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 installAPI
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 tofalse.node: Enable node integration. Defaults tofalse.basedir: Set this if you need to require node modules innodemodestatic: Serve static files from this directory at/loc: a full url likehttp://localhost:8080/for using an existing http server. Whenlocis supplied, optionsnode,basedir, andstaticare all ignored.sandbox: Run electron with sandbox. Disable to emit debug information when using Docker. Defaults totrue.
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 calledwindow.close()was sent as a script- there was a fatal error
License
MIT
2 years ago
2 years ago
2 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
6 years ago
7 years ago
7 years ago
7 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago