UNPKG

@aidenlx/player

Version:

Headless web components that make integrating media on the a web a breeze.

40 lines (39 loc) 1.24 kB
import "../chunks/chunk.LNH2V2XS.js"; import { isArray, isNumber, isUndefined } from "@vidstack/foundation"; function rangeCheck(fnName, index, maxIndex) { if (!isNumber(index) || index < 0 || index > maxIndex) { throw new Error(`Failed to execute '${fnName}' on 'TimeRanges': The index provided (${index}) is non-numeric or out of bounds (0-${maxIndex}).`); } } function getRange(fnName, valueIndex, ranges, rangeIndex) { rangeCheck(fnName, rangeIndex, ranges.length - 1); return ranges[rangeIndex][valueIndex]; } function createTimeRangesObj(ranges) { if (isUndefined(ranges) || ranges.length === 0) { const throwEmptyError = () => { throw new Error("This TimeRanges object is empty"); }; return { length: 0, start: throwEmptyError, end: throwEmptyError }; } return { length: ranges.length, start: getRange.bind(null, "start", 0, ranges), end: getRange.bind(null, "end", 1, ranges) }; } function createTimeRanges(start, end) { if (isArray(start)) { return createTimeRangesObj(start); } else if (isUndefined(start) || isUndefined(end)) { return createTimeRangesObj(); } return createTimeRangesObj([[start, end]]); } export { createTimeRanges };