UNPKG

1.03 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.evaluateVolume = void 0;
4const evaluateVolume = ({ frame, volume, mediaVolume = 1, }) => {
5 if (typeof volume === 'number') {
6 return Math.min(1, volume * mediaVolume);
7 }
8 if (typeof volume === 'undefined') {
9 return Number(mediaVolume);
10 }
11 const evaluated = volume(frame) * mediaVolume;
12 if (typeof evaluated !== 'number') {
13 throw new TypeError(`You passed in a a function to the volume prop but it did not return a number but a value of type ${typeof evaluated} for frame ${frame}`);
14 }
15 if (Number.isNaN(evaluated)) {
16 throw new TypeError(`You passed in a function to the volume prop but it returned NaN for frame ${frame}.`);
17 }
18 if (!Number.isFinite(evaluated)) {
19 throw new TypeError(`You passed in a function to the volume prop but it returned a non-finite number for frame ${frame}.`);
20 }
21 return Math.min(1, evaluated);
22};
23exports.evaluateVolume = evaluateVolume;