locustjs-base
Version:
This library contains basic functions
280 lines (200 loc) • 7.59 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.similars = exports.equals = exports.forEach = exports.isSubClassOf = exports.isNamespace = exports.isSomeArray = exports.isIterable = exports.isArray = exports.isFormatedDate = exports.hasBool = exports.hasDate = exports.isjQueryElement = exports.isSomeNumber = exports.isNumeric = exports.isFunction = exports.isSomeObject = exports.isSomething = exports.isObject = exports.isAnObject = exports.isSomeString = exports.isEmpty = exports.isNull = exports.isPrimitive = exports.isBasic = exports.isaN = exports.isBool = exports.isDate = exports.isNumber = exports.isString = void 0;
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
function _instanceof(left, right) { if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) { return !!right[Symbol.hasInstance](left); } else { return left instanceof right; } }
var isString = function isString(x, n) {
return (typeof x == 'string' || _instanceof(x, String)) && (n == undefined || x.length == n);
};
exports.isString = isString;
var isNumber = function isNumber(x) {
return (typeof x == 'number' || _instanceof(x, Number)) && !isNaN(x);
};
exports.isNumber = isNumber;
var isDate = function isDate(x) {
return _instanceof(x, Date) && !isNaN(x.valueOf());
};
exports.isDate = isDate;
var isBool = function isBool(x) {
return typeof x == 'boolean' || _instanceof(x, Boolean);
};
exports.isBool = isBool;
var isaN = isNumber;
exports.isaN = isaN;
var isBasic = function isBasic(x) {
var type = _typeof(x);
return type == 'string' || type == 'number' || type == 'boolean' || isDate(x);
};
exports.isBasic = isBasic;
var isPrimitive = function isPrimitive(x) {
return isString(x) || isNumber(x) || isDate(x) || isBool(x);
};
exports.isPrimitive = isPrimitive;
var isNull = function isNull(x) {
return x == null;
};
exports.isNull = isNull;
var isEmpty = function isEmpty(x) {
return isNull(x) || typeof x == 'number' && isNaN(x) || isString(x) && x.trim() == '';
};
exports.isEmpty = isEmpty;
var isSomeString = function isSomeString(x) {
return isString(x) && x.trim() != '';
};
exports.isSomeString = isSomeString;
var isAnObject = function isAnObject(x) {
return _typeof(x) == 'object' && !isNull(x);
};
exports.isAnObject = isAnObject;
var isObject = function isObject(x) {
return isAnObject(x) && !isPrimitive(x);
};
exports.isObject = isObject;
var isSomething = function isSomething(x) {
return !isNull(x);
};
exports.isSomething = isSomething;
var isSomeObject = function isSomeObject(x) {
return isObject(x) && !isArray(x) && Object.keys(x).length > 0;
};
exports.isSomeObject = isSomeObject;
var isFunction = function isFunction(x) {
return typeof x == 'function' && typeof x.nodeType !== 'number';
};
exports.isFunction = isFunction;
var isNumeric = function isNumeric(x) {
return (isSomeString(x) || isNumber(x)) && !isNaN(x - parseFloat(x));
}; // borrowed from jQuery
exports.isNumeric = isNumeric;
var isSomeNumber = function isSomeNumber(x) {
return isNumeric(x) && x > 0;
};
exports.isSomeNumber = isSomeNumber;
var isjQueryElement = function isjQueryElement(x) {
return isObject(x) && isSomeString(x.jquery);
};
exports.isjQueryElement = isjQueryElement;
var hasDate = function hasDate(x) {
return (isDate(x) || isString(x) || isNumber(x)) && !isNaN(Date.parse(x));
};
exports.hasDate = hasDate;
var hasBool = function hasBool(x) {
return isBool(x) || isSomeString(x) && ['true', 'false'].indexOf(x.trim().toLowerCase()) >= 0;
};
exports.hasBool = hasBool;
var isFormatedDate = function isFormatedDate(x) {
return isSomeString(x) && (/^\d{1,4}\.\d{1,4}\.\d{1,4}$/.test(x) || /^\d{1,4}-\d{1,4}-\d{1,4}$/.test(x) || /^\d{1,4}\/\d{1,4}\/\d{1,4}$/.test(x) || /^\d{1,4}\\\d{1,4}\\\d{1,4}$/.test(x));
};
exports.isFormatedDate = isFormatedDate;
var isArray = Array.isArray;
exports.isArray = isArray;
var isIterable = function isIterable(x) {
// source: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/@@iterator
return Symbol.iterator in Object.getPrototypeOf(x);
/* or "Symbol.iterator in Object.__proto__"
or "it[Symbol.iterator]" */
};
exports.isIterable = isIterable;
var isSomeArray = function isSomeArray(x) {
return isArray(x) && x.length > 0;
};
exports.isSomeArray = isSomeArray;
var isNamespace = function isNamespace(x) {
return isSomeString(x) && /^[a-zA-Z]\w*(\.[a-zA-Z]\w*)*$/.test(x);
};
exports.isNamespace = isNamespace;
var isSubClassOf = function isSubClassOf(child, parent) {
return child && isFunction(parent) && (child === parent || _instanceof(child.prototype, parent));
};
exports.isSubClassOf = isSubClassOf;
var forEach = function forEach(x, callback) {
var result;
if (!isFunction(callback)) {
throw "expected function for callback.";
}
if (!isEmpty(x)) {
var _keys = Object.keys(x);
for (var i = 0; i < _keys.length; i++) {
var args = {
source: x,
index: i,
key: _keys[i],
value: x[_keys[i]],
count: _keys.length
};
var r = callback(args);
if (args.break) {
result = r || args.result;
break;
}
}
}
return result;
};
exports.forEach = forEach;
var equals = function equals(objA, objB) {
var strict = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
if (isPrimitive(objA) || isEmpty(objA) || isFunction(objA)) {
return strict ? objA === objB : objA == objB;
}
if (isArray(objA)) {
if (isArray(objB) && objA.length == objB.length) {
for (var i = 0; i < objA.length; i++) {
if (!equals(objA[i], objB[i], strict)) {
return false;
}
}
return true;
} else {
return false;
}
}
var keysA = Object.keys(objA);
var keysB = Object.keys(objB);
if (keysA.length != keysB.length) {
return false;
}
for (var _i = 0, _keysA = keysA; _i < _keysA.length; _i++) {
var key = _keysA[_i];
if (!equals(objA[key], objB[key], strict)) {
return false;
}
}
return true;
};
exports.equals = equals;
var similars = function similars(objA, objB) {
if (isPrimitive(objA)) {
if (isPrimitive(objB)) {
return _typeof(objA) == _typeof(objB);
}
return false;
}
if (isArray(objA)) {
if (isArray(objB) && objA.length == objB.length) {
for (var i = 0; i < objA.length; i++) {
if (!similars(objA[i], objB[i])) {
return false;
}
}
return true;
} else {
return false;
}
}
var keysA = Object.keys(objA);
var keysB = Object.keys(objB);
if (keysA.length != keysB.length) {
return false;
}
for (var _i2 = 0, _keysA2 = keysA; _i2 < _keysA2.length; _i2++) {
var key = _keysA2[_i2];
if (!similars(objA[key], objB[key])) {
return false;
}
}
return true;
};
exports.similars = similars;