aboutsummaryrefslogtreecommitdiffstats
path: root/app/scripts/lib/port-stream.js
diff options
context:
space:
mode:
authorkumavis <aaron@kumavis.me>2015-12-19 14:05:16 +0800
committerkumavis <aaron@kumavis.me>2015-12-19 14:05:16 +0800
commit72a747165dda417aa7968e44b404eb90707202a2 (patch)
tree0fd4c52727815665b8851ca80b2b8d9dc462b19a /app/scripts/lib/port-stream.js
parentcc935a1ebaa73d855056d143ef548ca982a5f8e8 (diff)
downloadtangerine-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.js36
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