Merge pull request #1023 from friday/make-utils-static
Make utils static
This commit is contained in:
@ -1133,7 +1133,7 @@ class Plyr {
|
|||||||
} else if (utils.is.nodeList(selector)) {
|
} else if (utils.is.nodeList(selector)) {
|
||||||
targets = Array.from(selector);
|
targets = Array.from(selector);
|
||||||
} else if (utils.is.array(selector)) {
|
} else if (utils.is.array(selector)) {
|
||||||
targets = selector.filter(i => utils.is.element(i));
|
targets = selector.filter(utils.is.element);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (utils.is.empty(targets)) {
|
if (utils.is.empty(targets)) {
|
||||||
|
@ -11,63 +11,64 @@ const utils = {
|
|||||||
// Check variable types
|
// Check variable types
|
||||||
is: {
|
is: {
|
||||||
object(input) {
|
object(input) {
|
||||||
return this.getConstructor(input) === Object;
|
return utils.getConstructor(input) === Object;
|
||||||
},
|
},
|
||||||
number(input) {
|
number(input) {
|
||||||
return this.getConstructor(input) === Number && !Number.isNaN(input);
|
return utils.getConstructor(input) === Number && !Number.isNaN(input);
|
||||||
},
|
},
|
||||||
string(input) {
|
string(input) {
|
||||||
return this.getConstructor(input) === String;
|
return utils.getConstructor(input) === String;
|
||||||
},
|
},
|
||||||
boolean(input) {
|
boolean(input) {
|
||||||
return this.getConstructor(input) === Boolean;
|
return utils.getConstructor(input) === Boolean;
|
||||||
},
|
},
|
||||||
function(input) {
|
function(input) {
|
||||||
return this.getConstructor(input) === Function;
|
return utils.getConstructor(input) === Function;
|
||||||
},
|
},
|
||||||
array(input) {
|
array(input) {
|
||||||
return !this.nullOrUndefined(input) && Array.isArray(input);
|
return !utils.is.nullOrUndefined(input) && Array.isArray(input);
|
||||||
},
|
},
|
||||||
weakMap(input) {
|
weakMap(input) {
|
||||||
return this.instanceof(input, WeakMap);
|
return utils.is.instanceof(input, WeakMap);
|
||||||
},
|
},
|
||||||
nodeList(input) {
|
nodeList(input) {
|
||||||
return this.instanceof(input, NodeList);
|
return utils.is.instanceof(input, NodeList);
|
||||||
},
|
},
|
||||||
element(input) {
|
element(input) {
|
||||||
return this.instanceof(input, Element);
|
return utils.is.instanceof(input, Element);
|
||||||
},
|
},
|
||||||
textNode(input) {
|
textNode(input) {
|
||||||
return this.getConstructor(input) === Text;
|
return utils.getConstructor(input) === Text;
|
||||||
},
|
},
|
||||||
event(input) {
|
event(input) {
|
||||||
return this.instanceof(input, Event);
|
return utils.is.instanceof(input, Event);
|
||||||
},
|
},
|
||||||
cue(input) {
|
cue(input) {
|
||||||
return this.instanceof(input, window.TextTrackCue) || this.instanceof(input, window.VTTCue);
|
return utils.is.instanceof(input, window.TextTrackCue) || utils.is.instanceof(input, window.VTTCue);
|
||||||
},
|
},
|
||||||
track(input) {
|
track(input) {
|
||||||
return this.instanceof(input, TextTrack) || (!this.nullOrUndefined(input) && this.string(input.kind));
|
return utils.is.instanceof(input, TextTrack) || (!utils.is.nullOrUndefined(input) && utils.is.string(input.kind));
|
||||||
},
|
},
|
||||||
url(input) {
|
url(input) {
|
||||||
return !this.nullOrUndefined(input) && /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-/]))?/.test(input);
|
return !utils.is.nullOrUndefined(input) && /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-/]))?/.test(input);
|
||||||
},
|
},
|
||||||
nullOrUndefined(input) {
|
nullOrUndefined(input) {
|
||||||
return input === null || typeof input === 'undefined';
|
return input === null || typeof input === 'undefined';
|
||||||
},
|
},
|
||||||
empty(input) {
|
empty(input) {
|
||||||
return (
|
return (
|
||||||
this.nullOrUndefined(input) ||
|
utils.is.nullOrUndefined(input) ||
|
||||||
((this.string(input) || this.array(input) || this.nodeList(input)) && !input.length) ||
|
((utils.is.string(input) || utils.is.array(input) || utils.is.nodeList(input)) && !input.length) ||
|
||||||
(this.object(input) && !Object.keys(input).length)
|
(utils.is.object(input) && !Object.keys(input).length)
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
instanceof(input, constructor) {
|
instanceof(input, constructor) {
|
||||||
return Boolean(input && constructor && input instanceof constructor);
|
return Boolean(input && constructor && input instanceof constructor);
|
||||||
},
|
},
|
||||||
getConstructor(input) {
|
},
|
||||||
return !this.nullOrUndefined(input) ? input.constructor : null;
|
|
||||||
},
|
getConstructor(input) {
|
||||||
|
return !utils.is.nullOrUndefined(input) ? input.constructor : null;
|
||||||
},
|
},
|
||||||
|
|
||||||
// Unfortunately, due to mixed support, UA sniffing is required
|
// Unfortunately, due to mixed support, UA sniffing is required
|
||||||
@ -625,16 +626,16 @@ const utils = {
|
|||||||
formatTime(time = 0, displayHours = false, inverted = false) {
|
formatTime(time = 0, displayHours = false, inverted = false) {
|
||||||
// Bail if the value isn't a number
|
// Bail if the value isn't a number
|
||||||
if (!utils.is.number(time)) {
|
if (!utils.is.number(time)) {
|
||||||
return this.formatTime(null, displayHours, inverted);
|
return utils.formatTime(null, displayHours, inverted);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Format time component to add leading zero
|
// Format time component to add leading zero
|
||||||
const format = value => `0${value}`.slice(-2);
|
const format = value => `0${value}`.slice(-2);
|
||||||
|
|
||||||
// Breakdown to hours, mins, secs
|
// Breakdown to hours, mins, secs
|
||||||
let hours = this.getHours(time);
|
let hours = utils.getHours(time);
|
||||||
const mins = this.getMinutes(time);
|
const mins = utils.getMinutes(time);
|
||||||
const secs = this.getSeconds(time);
|
const secs = utils.getSeconds(time);
|
||||||
|
|
||||||
// Do we need to display hours?
|
// Do we need to display hours?
|
||||||
if (displayHours || hours > 0) {
|
if (displayHours || hours > 0) {
|
||||||
@ -792,10 +793,10 @@ const utils = {
|
|||||||
|
|
||||||
// Parse URL if needed
|
// Parse URL if needed
|
||||||
if (input.startsWith('http://') || input.startsWith('https://')) {
|
if (input.startsWith('http://') || input.startsWith('https://')) {
|
||||||
({ search } = this.parseUrl(input));
|
({ search } = utils.parseUrl(input));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.is.empty(search)) {
|
if (utils.is.empty(search)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user