@wscsports/blaze-rtn-sdk
Version:
WSC Sports Blaze SDK component for React Native
78 lines (77 loc) • 2.7 kB
JavaScript
;
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