X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Futils%2FUtils.js;h=9d071a415faabcb5a086ce1a6ab765d8320736bc;hb=fee830211b36e79b9d89d4c0d689d02bc6da4156;hp=85b2d4748d91c52daab0dfbcff866f63fdedbbac;hpb=2e3ac96de33fd8c94e746fee6a7dcde877d6ddc5;p=e-mobility-charging-stations-simulator.git diff --git a/src/utils/Utils.js b/src/utils/Utils.js index 85b2d474..9d071a41 100644 --- a/src/utils/Utils.js +++ b/src/utils/Utils.js @@ -1,7 +1,7 @@ -const {v4: uuid} = require('uuid'); +import {v4 as uuid} from 'uuid'; -class Utils { - static generateGUID() { +export default class Utils { + static generateUUID() { return uuid(); } @@ -15,38 +15,6 @@ class Utils { return date.toISOString().substr(11, 8); } - static convertToDate(date) { - // Check - if (!date) { - return date; - } - // Check Type - if (!(date instanceof Date)) { - return new Date(date); - } - return date; - } - - static isIterable(obj) { - if (obj) { - return typeof obj[Symbol.iterator] === 'function'; - } - return false; - } - - static isEmptyJSon(document) { - // Empty? - if (!document) { - return true; - } - // Check type - if (typeof document !== 'object') { - return true; - } - // Check - return Object.keys(document).length === 0; - } - static removeExtraEmptyLines(tab) { // Start from the end for (let i = tab.length - 1; i > 0; i--) { @@ -63,6 +31,18 @@ class Utils { } } + static convertToDate(date) { + // Check + if (!date) { + return date; + } + // Check Type + if (!(date instanceof Date)) { + return new Date(date); + } + return date; + } + static convertToObjectID(id) { let changedID = id; // Check @@ -74,43 +54,130 @@ class Utils { return changedID; } - static convertToInt(id) { - let changedID = id; - if (!id) { + static convertToInt(value) { + let changedValue = value; + if (!value) { return 0; } + if (Number.isSafeInteger(value)) { + return value; + } // Check - if (typeof id === 'string') { + if (typeof value === 'string') { // Create Object - changedID = parseInt(id); + changedValue = parseInt(value); } - return changedID; + return changedValue; } - static convertToFloat(id) { - let changedID = id; - if (!id) { + static convertToFloat(value) { + let changedValue = value; + if (!value) { return 0; } // Check - if (typeof id === 'string') { + if (typeof value === 'string') { // Create Object - changedID = parseFloat(id); + changedValue = parseFloat(value); } - return changedID; + return changedValue; } - static getRandomInt(max, min) { + static convertToBoolean(value) { + let result = false; + // Check boolean + if (value) { + // Check the type + if (typeof value === 'boolean') { + // Already a boolean + result = value; + } else { + // Convert + result = (value === 'true'); + } + } + return result; + } + + static getRandomFloat(max, min = 0) { + return Math.random() < 0.5 ? (1 - Math.random()) * (max - min) + min : Math.random() * (max - min) + min; + } + + static getRandomInt(max, min = 0) { if (min) { - return Math.floor((Math.random() * (max - min)) + min); + return Math.floor(Math.random() * (max - min + 1) + min); } - return Math.floor((Math.random() * max)); + return Math.floor(Math.random() * max + 1); } - static basicFormatLog(prefixString = '') { + static roundTo(number, scale) { + return Utils.convertToFloat(number.toFixed(scale)); + } + + static getRandomFloatRounded(max, min = 0, scale = 2) { + if (min) { + return Utils.roundTo(Utils.getRandomFloat(max, min), scale); + } + return Utils.roundTo(Utils.getRandomFloat(max), scale); + } + + static logPrefix(prefixString = '') { const date = new Date(); - return date.toISOString().substr(0, 19) + prefixString; + return date.toLocaleString() + prefixString; } -} -module.exports = Utils; + static objectHasOwnProperty(object, property) { + return Object.prototype.hasOwnProperty.call(object, property); + } + + static cloneObject(object) { + return JSON.parse(JSON.stringify(object)); + } + + static isIterable(obj) { + if (obj) { + return typeof obj[Symbol.iterator] === 'function'; + } + return false; + } + + static isEmptyJSon(document) { + // Empty? + if (!document) { + return true; + } + // Check type + if (typeof document !== 'object') { + return true; + } + // Check + return Object.keys(document).length === 0; + } + + static isString(value) { + return typeof value === 'string'; + } + + static isUndefined(value) { + return typeof value === 'undefined'; + } + + static isNullOrUndefined(value) { + // eslint-disable-next-line eqeqeq + if (value == null) { + return true; + } + return false; + } + + static isEmptyArray(object) { + if (Array.isArray(object) && object.length > 0) { + return false; + } + return true; + } + + static isEmptyObject(obj) { + return !Object.keys(obj).length; + } +}