twilio-video
Version:
Twilio Video JavaScript Library
84 lines (74 loc) • 3.07 kB
text/typescript
;
import type { ConnectOptions, CreateLocalAudioTrackOptions, CreateLocalTrackOptions } from '../tsdef/types';
import type { LocalAudioTrack as LocalAudioTrackType } from '../tsdef/LocalAudioTrack';
import type { LocalVideoTrack as LocalVideoTrackType } from '../tsdef/LocalVideoTrack';
import type { Log } from '../tsdef/loglevel';
import type { Room } from '../tsdef/Room';
import { createLocalTracks } from './createlocaltracks';
import { runPreflight } from './preflight/preflighttest';
const internals = {
connect: require('./connect'),
createLocalAudioTrack: require('./createlocaltrack').audio,
createLocalVideoTrack: require('./createlocaltrack').video,
isSupported: require('./util/support')(),
version: require('../package.json').version,
Logger: require('./vendor/loglevel'),
LocalAudioTrack: require('./media/track/es5').LocalAudioTrack,
LocalDataTrack: require('./media/track/es5').LocalDataTrack,
LocalVideoTrack: require('./media/track/es5').LocalVideoTrack
};
function connect(token: string, options?: ConnectOptions): Promise<Room> {
const internalOptions = {
createLocalTracks,
...options
};
return internals.connect(token, internalOptions);
}
function createLocalAudioTrack(options?: CreateLocalTrackOptions|CreateLocalAudioTrackOptions): Promise<LocalAudioTrackType> {
const internalOptions = {
createLocalTracks,
...options
};
return internals.createLocalAudioTrack(internalOptions);
}
function createLocalVideoTrack(options?: CreateLocalTrackOptions): Promise<LocalVideoTrackType> {
const internalOptions = {
createLocalTracks,
...options
};
return internals.createLocalVideoTrack(internalOptions);
}
/**
* @module twilio-video
* @property {boolean} isSupported - true if the current browser is officially
* supported by twilio-video.js; In this context, "supported" means that
* twilio-video.js has been extensively tested with this browser; This
* <a href="https://www.twilio.com/docs/video/javascript#supported-browsers" target="_blank">table</a>
* specifies the list of officially supported browsers.
*
* @property {object} Logger - The <a href="https://www.npmjs.com/package/loglevel" target="_blank">loglevel</a>
* module used by the SDK. Use this object to access the internal loggers and perform actions as defined by the
* <a href="https://www.npmjs.com/package/loglevel" target="_blank">loglevel</a> APIs.
* See [connect](#.connect) for examples.
*
* @property {string} version - current version of twilio-video.js.
*/
const isSupported: boolean = internals.isSupported;
const version: boolean = internals.version;
const Logger: Log.RootLogger = internals.Logger;
const LocalAudioTrack = internals.LocalAudioTrack;
const LocalVideoTrack = internals.LocalVideoTrack;
const LocalDataTrack = internals.LocalDataTrack;
module.exports = {
connect,
createLocalAudioTrack,
createLocalVideoTrack,
createLocalTracks,
runPreflight,
isSupported,
version,
Logger,
LocalAudioTrack,
LocalVideoTrack,
LocalDataTrack,
};