24 lines
1019 B
JavaScript
24 lines
1019 B
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.evaluateVolume = void 0;
|
|
const evaluateVolume = ({ frame, volume, mediaVolume = 1, }) => {
|
|
if (typeof volume === 'number') {
|
|
return volume * mediaVolume;
|
|
}
|
|
if (typeof volume === 'undefined') {
|
|
return Number(mediaVolume);
|
|
}
|
|
const evaluated = volume(frame) * mediaVolume;
|
|
if (typeof evaluated !== 'number') {
|
|
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}`);
|
|
}
|
|
if (Number.isNaN(evaluated)) {
|
|
throw new TypeError(`You passed in a function to the volume prop but it returned NaN for frame ${frame}.`);
|
|
}
|
|
if (!Number.isFinite(evaluated)) {
|
|
throw new TypeError(`You passed in a function to the volume prop but it returned a non-finite number for frame ${frame}.`);
|
|
}
|
|
return Math.max(0, evaluated);
|
|
};
|
|
exports.evaluateVolume = evaluateVolume;
|