UNPKG

@sisal_digital/sisal-bridge

Version:

The bridge for Sisal applications in iframe

1 lines 2.64 kB
'use strict';Object.defineProperty(exports,'__esModule',{value:!0});var _createClass=function(){function a(a,b){for(var c,d=0;d<b.length;d++)c=b[d],c.enumerable=c.enumerable||!1,c.configurable=!0,'value'in c&&(c.writable=!0),Object.defineProperty(a,c.key,c)}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),_venice=require('@spindox/venice'),_venice2=_interopRequireDefault(_venice),_cordovaVeniceBridge=require('@spindox/cordova-venice-bridge'),_cordovaVeniceBridge2=_interopRequireDefault(_cordovaVeniceBridge),_config=require('./apps/config'),_config2=_interopRequireDefault(_config),_logger=require('./utils/logger'),_logger2=_interopRequireDefault(_logger);function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}function _classCallCheck(a,b){if(!(a instanceof b))throw new TypeError('Cannot call a class as a function')}var SisalBridge=function(){function a(b){_classCallCheck(this,a);var c=_config2.default[b];if(!c)throw new Error(b+' application does not exist!');this.config=c,this.logger=_logger2.default.get(this.config.channel),this.channel=null}return _createClass(a,[{key:'connect',value:function connect(a){var b=this,c=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},d=2<arguments.length&&void 0!==arguments[2]?arguments[2]:function(){},e=Object.assign({},{handlers:{},log:!1},c);e.log||this.logger.disable(),this.logger.log('connect channel'),_cordovaVeniceBridge2.default.host.connect(a,{log:e.log}),this.channel=_venice2.default.channel(this.config.channel,{window:a.contentWindow,onReady:function(){b.logger.log('channel is ready!')}}),this.channel.subscribe('ready',function(a,c){return b.logger.log(b.config.name+' is ready!'),d(a,c)}),Object.keys(e.handlers).forEach(function(a){b.channel.subscribe(a,e.handlers[a]),b.logger.log('channel subscribed to '+a)})}},{key:'disconnect',value:function disconnect(){this.logger.log('disconnect channel'),_cordovaVeniceBridge2.default.host.disconnect(),_venice2.default.disconnect(this.config.channel),this.logger.log('channel disconnected!')}},{key:'auth',value:function auth(a,b){_venice2.default.publish({channel:this.config.channel,topic:'auth',data:{type:a,payload:b}}),this.logger.log('authentication: '+a+' message sent to '+this.config.name)}},{key:'login',value:function login(a){this.auth('login',a)}},{key:'logout',value:function logout(){this.auth('logout')}},{key:'navigate',value:function navigate(a){_venice2.default.publish({channel:this.config.channel,topic:'navigation',data:a}),this.logger.log('attempt to navigate with following payload:',a)}}]),a}();exports.default=SisalBridge,module.exports=exports['default'];