| 'use strict'; |
| |
| var JSON3 = require('json3') |
| , iframeUtils = require('./utils/iframe') |
| ; |
| |
| function FacadeJS(transport) { |
| this._transport = transport; |
| transport.on('message', this._transportMessage.bind(this)); |
| transport.on('close', this._transportClose.bind(this)); |
| } |
| |
| FacadeJS.prototype._transportClose = function(code, reason) { |
| iframeUtils.postMessage('c', JSON3.stringify([code, reason])); |
| }; |
| FacadeJS.prototype._transportMessage = function(frame) { |
| iframeUtils.postMessage('t', frame); |
| }; |
| FacadeJS.prototype._send = function(data) { |
| this._transport.send(data); |
| }; |
| FacadeJS.prototype._close = function() { |
| this._transport.close(); |
| this._transport.removeAllListeners(); |
| }; |
| |
| module.exports = FacadeJS; |