abb-core
Version:
Application Build Butler Core
113 lines (112 loc) • 3.98 kB
JavaScript
import EABBFileSizeShortName from './EABB-file-size-short-name';
import EABBFileSizeFullName from './EABB-file-size-full-name';
var ABBLib = /** @class */ (function () {
function ABBLib() {
}
ABBLib.isObject = function (subject) {
return (typeof subject === 'object' && ABBLib.isNotArray(subject));
};
ABBLib.isString = function (subject) {
return (typeof subject === 'string');
};
ABBLib.isArray = function (subject) {
return (subject instanceof Array);
};
ABBLib.isNotArray = function (subject) {
return (!ABBLib.isArray(subject));
};
ABBLib.isEmptyString = function (subject) {
return (ABBLib.isString(subject) && subject === '');
};
ABBLib.isNull = function (subject) {
return (subject === null);
};
ABBLib.isNotUndefined = function (subject) {
return subject !== undefined;
};
ABBLib.isUndefined = function (subject) {
return subject === undefined;
};
ABBLib.isInt = function (n) {
return n % 1 === 0;
};
ABBLib.generateRandomString = function () {
return Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
};
ABBLib.mergeObj = function (objArr) {
var mergedObj = {};
objArr.forEach(function (obj) {
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
mergedObj[key] = obj[key];
}
}
});
return mergedObj;
};
ABBLib.copyObject = function (obj, deep) {
var _this = this;
if (deep === void 0) { deep = false; }
var copy = Object.assign({}, obj);
if (deep) {
Object.keys(obj).forEach(function (key) {
if (_this.isObject(obj[key])) {
copy[key] = _this.copyObject(obj[key], deep);
}
});
}
return copy;
};
ABBLib.filterObject = function (obj, filterCallback) {
var filterObject = this.copyObject(obj, true);
Object.keys(filterObject).forEach(function (key) {
if (!filterCallback(key, filterObject[key])) {
delete filterObject[key];
}
});
return filterObject;
};
ABBLib.replaceObjectKeys = function (obj, replaceCallback) {
var newObj = {};
Object.keys(obj).forEach(function (key) {
newObj[replaceCallback(key)] = obj[key];
});
return newObj;
};
ABBLib.fileListToArray = function (fileList) {
return Array.prototype.slice.call(fileList);
};
ABBLib.getEnumNameByValue = function (myEnum, value, defaultNameIndex) {
var name;
var numericValue = -1;
for (var enumMember in myEnum) {
var isValueProperty = parseInt(enumMember, 10) >= 0;
if (!isValueProperty) {
numericValue++;
if (value === numericValue) {
name = enumMember;
}
}
}
if (!name && defaultNameIndex != -1) {
name = this.getEnumNameByValue(myEnum, defaultNameIndex, -1);
}
return name;
};
ABBLib.autoformatFileSize = function (fileSize) {
var i = 0;
var formattedFileSize = fileSize;
while (Math.floor(formattedFileSize).toString().length > 3) {
i++;
formattedFileSize = formattedFileSize / 1000;
}
return {
shortName: this.getEnumNameByValue(EABBFileSizeShortName, i, EABBFileSizeShortName.Unkown),
fullName: this.getEnumNameByValue(EABBFileSizeFullName, i, EABBFileSizeShortName.Unkown),
fileSizeInByte: fileSize,
formattedFileSize: this.isInt(formattedFileSize) ? formattedFileSize.toString() : parseFloat(formattedFileSize.toFixed(1)).toLocaleString()
};
};
return ABBLib;
}());
export { ABBLib };