1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.evaluateVolume = void 0;
|
4 | const 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 | };
|
23 | exports.evaluateVolume = evaluateVolume;
|