Replace quality setter conditions with Array.find()

This commit is contained in:
Albin Larsson
2018-06-11 04:22:40 +02:00
parent 4c1337b4c5
commit 62c263bda3

View File

@ -669,36 +669,28 @@ class Plyr {
* @param {number} input - Quality level * @param {number} input - Quality level
*/ */
set quality(input) { set quality(input) {
let quality = null; const config = this.config.quality;
const options = this.options.quality;
if (!utils.is.empty(input)) { if (!options.length) {
quality = Number(input);
}
if (!utils.is.number(quality)) {
quality = this.storage.get('quality');
}
if (!utils.is.number(quality)) {
quality = this.config.quality.selected;
}
if (!utils.is.number(quality)) {
quality = this.config.quality.default;
}
if (!this.options.quality.length) {
return; return;
} }
if (!this.options.quality.includes(quality)) { let quality = ([
const closest = utils.closest(this.options.quality, quality); !utils.is.empty(input) && Number(input),
this.storage.get('quality'),
config.selected,
config.default,
]).find(utils.is.number);
if (!options.includes(quality)) {
const closest = utils.closest(options, quality);
this.debug.warn(`Unsupported quality option: ${quality}, using ${closest} instead`); this.debug.warn(`Unsupported quality option: ${quality}, using ${closest} instead`);
quality = closest; quality = closest;
} }
// Update config // Update config
this.config.quality.selected = quality; config.selected = quality;
// Set quality // Set quality
this.media.quality = quality; this.media.quality = quality;