@splitsoftware/splitio-commons
Version:
Split JavaScript SDK common components
24 lines (20 loc) • 776 B
text/typescript
import { IEventSourceConstructor } from '../../services/types';
let __isCustom = false;
let __eventSource: IEventSourceConstructor | undefined;
// This function is only exposed for testing purposes.
export function __setEventSource(eventSource: IEventSourceConstructor) {
__eventSource = eventSource;
__isCustom = true;
}
export function __restore() {
__isCustom = false;
}
export function getEventSource() {
// returns EventSource at `eventsource` package. If not available, return global EventSource or undefined
try {
return __isCustom ? __eventSource : require('./eventsource');
} catch (error) {
// eslint-disable-next-line no-undef -- Feature detection for EventSource
return typeof EventSource === 'function' ? EventSource : undefined;
}
}