UNPKG

@doubco/wtf

Version:
124 lines (120 loc) 3.83 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); /* globals Symbol */ var isString = function (i) { return typeof i === "string" || i instanceof String; }; var isArray = function (i) { return Array.isArray(i); }; var isObject = function (i) { if (i === null || isArray(i)) { return false; } return typeof i === "function" || typeof i === "object"; }; var isDate = function (value) { var getDay = Date.prototype.getDay; var tryDateObject = function tryDateGetDayCall(value) { try { getDay.call(value); return true; } catch (e) { return false; } }; var toStr = Object.prototype.toString; var dateClass = "[object Date]"; var hasToStringTag = typeof Symbol === "function" && typeof Symbol.toStringTag === "symbol"; if (typeof value !== "object" || value === null) { return false; } return hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass; }; var isFunction = function (i) { return i && {}.toString.call(i) === "[object Function]"; }; var isFloat = function (n) { return Number(n) === n && n % 1 !== 0; }; var isInteger = function (n) { return Number(n) === n && n % 1 === 0; }; var isNumber = function (n) { return isFloat(n) || isInteger(n); }; var isEmpty = function (value) { if (value === null) return true; if (value === undefined) return true; if (isObject(value) && !Object.keys(value).length) return true; if (!value.length) return true; }; var isRegExp = function (input) { return Object.prototype.toString.call(input) === "[object RegExp]"; }; var isBoolean = function (input) { return input === true || input === false; }; var isISO8601 = function (input) { var re = /^(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(.[0-9]+)?(Z)?$/; return re.test(input); }; var isNull = function (i) { return i == null || i == undefined; }; var isColor = function (input) { if (isString(input)) { var re = /#(?:[a-f\d]{3}){1,2}\b|rgb\((?:(?:\s*0*(?:25[0-5]|2[0-4]\d|1?\d?\d)\s*,){2}\s*0*(?:25[0-5]|2[0-4]\d|1?\d?\d)|\s*0*(?:100(?:\.0+)?|\d?\d(?:\.\d+)?)%(?:\s*,\s*0*(?:100(?:\.0+)?|\d?\d(?:\.\d+)?)%){2})\s*\)|hsl\(\s*0*(?:360|3[0-5]\d|[12]?\d?\d)\s*(?:,\s*0*(?:100(?:\.0+)?|\d?\d(?:\.\d+)?)%\s*){2}\)|(?:rgba\((?:(?:\s*0*(?:25[0-5]|2[0-4]\d|1?\d?\d)\s*,){3}|(?:\s*0*(?:100(?:\.0+)?|\d?\d(?:\.\d+)?)%\s*,){3})|hsla\(\s*0*(?:360|3[0-5]\d|[12]?\d?\d)\s*(?:,\s*0*(?:100(?:\.0+)?|\d?\d(?:\.\d+)?)%\s*){2},)\s*0*(?:1(?:\.0+)?|0(?:\.\d+)?)\s*\)/gi; var results = input.match(re); if (results) { if (results.length == 1) { if (results[0] == input) { return true; } } } } return false; }; var WTF = { string: isString, object: isObject, date: isDate, fn: isFunction, array: isArray, float: isFloat, integer: isInteger, number: isNumber, regexp: isRegExp, boolean: isBoolean, empty: isEmpty, ISO8601: isISO8601, color: isColor, null: isNull, }; exports['default'] = WTF; exports.isArray = isArray; exports.isBoolean = isBoolean; exports.isColor = isColor; exports.isDate = isDate; exports.isEmpty = isEmpty; exports.isFloat = isFloat; exports.isFunction = isFunction; exports.isISO8601 = isISO8601; exports.isInteger = isInteger; exports.isNull = isNull; exports.isNumber = isNumber; exports.isObject = isObject; exports.isRegExp = isRegExp; exports.isString = isString; //# sourceMappingURL=index.js.map