Common utils for every single day tasks.
This function returns the value type, but this function is not just a typeof wrapper, because actually can determinate a more detailed data type. The data type is always a string starting with capital letter.
utils.getType({}) // 'Object'
utils.getType(new Date()) // 'Date'
utils.getType(String()) // 'String'
utils.getType('') // 'String'
utils.getType('123') // 'String'
utils.getType(123) // 'Number'
utils.getType(123.4) // 'Number'
utils.getType(true) // 'Boolean'
utils.getType(false) // 'Boolean'
utils.getType(BigInt(1)) // 'BigInt'
utils.getType([]) // 'Array'
utils.getType(new Int16Array(3)) // 'Int16Array'
This function evaluate equality between two values, the values could by any data type, including nested object.
utils.isEqual(1, 1) // true
utils.isEqual(1.23, 1.23) // true
utils.isEqual('1', '1') // true
utils.isEqual(true, true) // true
utils.isEqual(undefined, undefined) // true
utils.isEqual(null, null) // true
utils.isEqual({}, {}) // true
utils.isEqual({ foo: 'bar' }, { foo: 'bar' }) // true
utils.isEqual([], []) // true
utils.isEqual(['foo'], ['foo']) // true
utils.isEqual(['foo', { foo: 'bar' }, 1, 'a'], ['foo', { foo: 'bar' }, 1, 'a']) // true
utils.isEqual(['foo', { foo: 'bar' }, 1, 'a'], ['foo', { foo: 'baz' }, 1, 'a']) // false
utils.isEqual(true, 1) // false
utils.isEqual({ foo: 'bar' }, {}) // false
utils.camelCase('someValue') // someValue
utils.camelCase('some value') // someValue
utils.camelCase('some value') // someValue
utils.camelCase('SOME VALUE') // someValue
utils.kebabCase('someValue') // some-value
utils.kebabCase('some value') // some-value
utils.kebabCase('some value') // some-value
utils.kebabCase('SOME VALUE') // some-value
utils.snakeCase('someValue') // some_value
utils.snakeCase('some value') // some_value
utils.snakeCase('some value') // some_value
utils.snakeCase('SOME VALUE') // some_value