@bigfishtv/cockpit
Version:
94 lines (82 loc) • 2.6 kB
JavaScript
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
/**
* Type Definition Utilities
* @module Utilities/typeUtils
*/
/**
* Returns true/false if provided value is numeric
* @param {*} value - Can be anything
* @return {Boolean}
*/
export function isNumeric(val) {
return !isNaN(parseFloat(val)) && isFinite(val);
}
/**
* Returns true/false if provided value is an array
* @param {*} value - Can be anything
* @return {Boolean}
*/
export function isArray(val) {
return val instanceof Array;
}
/**
* Returns true/false if provided value is object (not array)
* @param {*} value - Can be anything
* @return {Boolean}
*/
export function isObject(val) {
return val !== null && (typeof val === 'undefined' ? 'undefined' : _typeof(val)) === 'object' && !isArray(val);
}
/**
* Returns true/false if provided value is a string
* @param {*} value - Can be anything
* @return {Boolean}
*/
export function isString(val) {
return typeof val === 'string';
}
/**
* Returns true/false if provided value is a function
* @param {*} value - Can be anything
* @return {Boolean}
*/
export function isFunction(val) {
return typeof val === 'function';
}
/**
* Works the same way as PHP's empty function
* Recursively goes through an object/array and checks all key values
* @param {Object} object Object/array
* @return {Boolean}
*/
export function isEmpty(object) {
if (!isObject(object) && !isArray(object)) return false;
var empty = true;
var keys = Object.keys(object);
for (var _iterator = keys, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
var _ref;
if (_isArray) {
if (_i >= _iterator.length) break;
_ref = _iterator[_i++];
} else {
_i = _iterator.next();
if (_i.done) break;
_ref = _i.value;
}
var key = _ref;
var value = object[key];
if (!(typeof value == 'undefined' || value === null || value === '')) empty = false;else if (isObject(value) || isArray(value)) empty = isEmpty(value);
}
return empty;
}
/**
* Checks if provided variable is string and is url
* @param {String}
* @return {Boolean}
*/
export function isUrl(str) {
if (!isString(str)) return false;
var parser = document.createElement('a');
parser.href = str;
return parser.host && parser.host != window.location.host;
}