diff options
author | kumavis <aaron@kumavis.me> | 2015-12-19 14:05:16 +0800 |
---|---|---|
committer | kumavis <aaron@kumavis.me> | 2015-12-19 14:05:16 +0800 |
commit | 72a747165dda417aa7968e44b404eb90707202a2 (patch) | |
tree | 0fd4c52727815665b8851ca80b2b8d9dc462b19a /app/scripts/lib/port-stream.js | |
parent | cc935a1ebaa73d855056d143ef548ca982a5f8e8 (diff) | |
download | tangerine-wallet-browser-72a747165dda417aa7968e44b404eb90707202a2.tar.gz tangerine-wallet-browser-72a747165dda417aa7968e44b404eb90707202a2.tar.zst tangerine-wallet-browser-72a747165dda417aa7968e44b404eb90707202a2.zip |
migrate to ProviderEngine zero-client
Diffstat (limited to 'app/scripts/lib/port-stream.js')
-rw-r--r-- | app/scripts/lib/port-stream.js | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/app/scripts/lib/port-stream.js b/app/scripts/lib/port-stream.js new file mode 100644 index 000000000..d256efc9a --- /dev/null +++ b/app/scripts/lib/port-stream.js @@ -0,0 +1,36 @@ +const Duplex = require('readable-stream').Duplex +const inherits = require('util').inherits + +module.exports = PortDuplexStream + + +inherits(PortDuplexStream, Duplex) + +function PortDuplexStream(port){ + Duplex.call(this, { + objectMode: true, + }) + this._port = port + port.onMessage.addListener(this._onMessage.bind(this)) +} + +// private + +PortDuplexStream.prototype._onMessage = function(msg){ + // console.log('PortDuplexStream - saw message', msg) + this.push(msg) +} + +// stream plumbing + +PortDuplexStream.prototype._read = noop + +PortDuplexStream.prototype._write = function(msg, encoding, cb){ + // console.log('PortDuplexStream - sent message', msg) + this._port.postMessage(msg) + cb() +} + +// util + +function noop(){}
\ No newline at end of file |