timing-provider
Version:
An implementation of the timing provider specification.
21 lines • 1.72 kB
JavaScript
import { filterTimingStateVectorUpdate, translateTimingStateVector } from 'timing-object';
import { createEventTargetConstructor } from './factories/event-target-constructor';
import { createEventTargetFactory } from './factories/event-target-factory';
import { createRTCPeerConnectionFactory } from './factories/rtc-peer-connection-factory';
import { createSignalingFactory } from './factories/signaling-factory';
import { createSortByHopsAndRoundTripTime } from './factories/sort-by-hops-and-round-trip-time';
import { createTimingProviderConstructor } from './factories/timing-provider-constructor';
import { createUpdateTimingStateVector } from './factories/update-timing-state-vector';
import { createWindow } from './factories/window';
import { compareHops } from './functions/compare-hops';
import { wrapEventListener } from './functions/wrap-event-listener';
/*
* @todo Explicitly referencing the barrel file seems to be necessary when enabling the
* isolatedModules compiler option.
*/
export * from './types/index';
const window = createWindow();
const timingProviderConstructor = createTimingProviderConstructor(createRTCPeerConnectionFactory(window), createSignalingFactory((url) => new WebSocket(url)), createEventTargetConstructor(createEventTargetFactory(window), wrapEventListener), performance, setTimeout, createSortByHopsAndRoundTripTime(compareHops, ([, { hops }]) => hops, ([, , roundTripTime]) => roundTripTime), createUpdateTimingStateVector(filterTimingStateVectorUpdate, performance, translateTimingStateVector));
export { timingProviderConstructor as TimingProvider };
// @todo Expose an isSupported flag which checks for fetch and performance.now() support.
//# sourceMappingURL=module.js.map