UNPKG

@wscsports/blaze-rtn-sdk

Version:
78 lines (77 loc) 2.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BlazeGlobalDelegateHelper = void 0; var _BlazeGlobalEvents = require("../shared/BlazeGlobalEvents"); var _blazeError = require("../interfaces/blaze-error.interface"); var _BlazeAsyncBridge = require("../shared/BlazeAsyncBridge"); class BlazeGlobalDelegateHelper { static registerGlobalDelegate(globalDelegate) { BlazeGlobalDelegateHelper.onEventTriggered(globalDelegate?.onEventTriggered); BlazeGlobalDelegateHelper.onErrorThrown(globalDelegate?.onErrorThrown); BlazeGlobalDelegateHelper.playbackModificationHandler(globalDelegate?.playbackModificationHandler); } static playbackModificationHandler(callback) { const methodName = 'Blaze.GlobalDelegate.playbackModificationHandler'; if (callback) { _BlazeAsyncBridge.BlazeAsyncBridge.registerJSMethod(methodName, async params => { const request = params; try { return await callback(request); } catch (error) { console.error(`Error in ${methodName}:`, error); return { modifiedURL: request.originalURL ?? '' }; } }); } else { _BlazeAsyncBridge.BlazeAsyncBridge.unregisterJSMethod(methodName); } } static onEventTriggered(callback) { const eventName = 'Blaze.onEventTriggered'; if (callback) { _BlazeGlobalEvents.BlazeGlobalEvents.createEventSubscription(eventName, data => { try { if (data) { const parsed = JSON.parse(data['eventData']); callback({ event: parsed }); } else { console.error('onEventTriggered: was called with no data.'); } } catch (e) { console.error('onEventTriggered', e); } }); } else { _BlazeGlobalEvents.BlazeGlobalEvents.cancelEventSubscription(eventName); } } static onErrorThrown(callback) { const eventName = 'Blaze.onErrorThrown'; if (callback) { _BlazeGlobalEvents.BlazeGlobalEvents.createEventSubscription(eventName, data => { try { const error = (0, _blazeError.parseBlazeError)(data['error']); if (error) { callback({ error: error }); } else { console.error('onErrorThrown: failed to parse error from data:', data); } } catch (e) { console.error('onErrorThrown', e); } }); } else { _BlazeGlobalEvents.BlazeGlobalEvents.cancelEventSubscription(eventName); } } } exports.BlazeGlobalDelegateHelper = BlazeGlobalDelegateHelper; //# sourceMappingURL=global-delegate.js.map