@twilio/rtc-diagnostics
Version:
Various diagnostics functions to help analyze connections to Twilio
36 lines (32 loc) • 972 B
text/typescript
import { UnsupportedError } from '../errors';
/**
* This file provides a cross-browser polyfill for AudioContext.
*
* Currently, Safari is the only browser that needs this as it still prefixes
* `AudioContext` as `webkitAudioContext`.
*
* It is necessary to declare `AudioContext` in the `Window` global as it does
* not exist in older typings.
*/
declare global {
interface Window {
AudioContext: typeof AudioContext;
webkitAudioContext: typeof AudioContext;
}
}
/**
* @internalapi
* Common error that can be thrown when the polyfill is unable to work.
*/
export const AudioContextUnsupportedError: UnsupportedError =
new UnsupportedError(
'AudioContext is not supported by this browser.',
);
/**
* @internalapi
* Attempts to polyfill `AudioContext`.
*/
export const AudioContextPolyfill: typeof window.AudioContext | undefined =
typeof window !== 'undefined'
? window.AudioContext || window.webkitAudioContext
: undefined;