UNPKG

@bigfishtv/cockpit

Version:

105 lines (91 loc) 2.79 kB
'use strict'; exports.__esModule = true; 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; }; exports.isNumeric = isNumeric; exports.isArray = isArray; exports.isObject = isObject; exports.isString = isString; exports.isFunction = isFunction; exports.isEmpty = isEmpty; exports.isUrl = isUrl; /** * Type Definition Utilities * @module Utilities/typeUtils */ /** * Returns true/false if provided value is numeric * @param {*} value - Can be anything * @return {Boolean} */ 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} */ function isArray(val) { return val instanceof Array; } /** * Returns true/false if provided value is object (not array) * @param {*} value - Can be anything * @return {Boolean} */ 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} */ function isString(val) { return typeof val === 'string'; } /** * Returns true/false if provided value is a function * @param {*} value - Can be anything * @return {Boolean} */ 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} */ 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} */ function isUrl(str) { if (!isString(str)) return false; var parser = document.createElement('a'); parser.href = str; return parser.host && parser.host != window.location.host; }