UNPKG

@huddle01/web-core

Version:

The Huddle01 Javascript SDK offers a comprehensive suite of methods and event listeners that allow for seamless real-time audio and video communication with minimal coding required.

60 lines (57 loc) 1.5 kB
'use strict'; // src/helpers/index.ts var getMediaStreamKind = (stream) => { let kind = null; const tracks = stream.getTracks(); for (const track of tracks) { if (track.kind === "audio") { kind = "audio"; break; } if (track.kind === "video") { kind = "video"; break; } } if (!kind) { throw new Error("Stream Kind Not Found"); } return kind; }; var getMediaDeviceKind = (track) => { if (track.kind === "audio") { return "mic"; } if (track.kind === "video") { const settings = track.getSettings(); if (settings.displaySurface) { return "screen"; } return "cam"; } return "cam"; }; var getMediaTrack = (data) => { const { stream, kind } = data; const tracks = stream.getTracks(); for (const track of tracks) { if (track.kind === kind) { return track; } } throw new Error("Track Not Found"); }; var estimateSize = (obj) => { const str = JSON.stringify(obj); return new TextEncoder().encode(str).length; }; var isBrowser = () => typeof window !== "undefined"; var isNode = () => typeof global !== "undefined"; var isReactNative = () => typeof navigator !== "undefined" && navigator.product === "ReactNative"; exports.estimateSize = estimateSize; exports.getMediaDeviceKind = getMediaDeviceKind; exports.getMediaStreamKind = getMediaStreamKind; exports.getMediaTrack = getMediaTrack; exports.isBrowser = isBrowser; exports.isNode = isNode; exports.isReactNative = isReactNative;