README
UtiJs
Light-weight Js Utilities
Installation
npm i -S uti-js
Usage
const uti = require('uti-js');
uti.isDate(new Date()) // true
API
isString
uti.isString("hello world") === true
isEmptyString
uti.isEmptyString("") === true uti.isEmptyString("hello world") === false
isNull
uti.isNull(nulll) === true
isBoolean
uti.isBoolean(true) === true
isUndefined
uti.isUndefined(undefined) === true
isDate
uti.isDate(new Date()) === true
isObject
uti.isObject({}) === true uti.isObject([]) === false
isNumber
uti.isNumber(3) === true
isArrayAndHasLength
uti.isArrayAndHasLength([1,2,3]) === true uti.isArrayAndHasLength([]) === false
isFunction
uti.isFunction(function(){return 0}) === true
isAllPass
uti.isAllPass([1, 2, 3], uti.isNumber) === true
isInRange
uti.isInRange([1, 12], 5) === true
lastDayOfMonth
uti.lastDayOfMonth(1, 2018) === 31
formatDateHour
uti.formatDateHour(new Date()) === '2018-12-24 20:59:00'
formatDate
uti.formatDate(new Date()) === '2018-12-24'
formatHour
uti.formatHour(new Date()) === '20:59:00'
makeArray
uti.makeArray(3, 0) // [0, 0, 0]
ascending
[3, 1, 2].sort(uti.ascending) // [1, 2, 3]
ascendingByProp
[{age: 10}, {age: 5}, {age: 20}].sort(uti.ascendingByProp('age')) // [{age: 5}, {age: 10}, {age: 20}]
descending
descendingByProp
descendingByIdx
[['bob', 5], ['alice', 10]].sort(uti.descendingByIdx(1)) // [['bob', 10], ['alice', 5]]
descendingByIdxIdx
[['bob', [5]], ['alice', [10]]].sort(uti.descendingByIdxIdx(1, 0)) // [['bob', [10]], ['alice', [5]]]
descendingByIdxProp
[['bob', {age: 5}], ['alice', {age: 10}]].sort(uti.descendingByIdxProp(1, 'age')) // [['bob', {age: 10}], ['alice', {age: 5}]]
words
uti.words("hello world") // ["hello", "world"]
uniqueWords
uti.words("hello hello world") // ["hello", "world"]
diffOfSecs
uti.diffOfSecs(new Date(2018, 10, 1), new Date(2018, 10, 2)) // 24 * 60 * 60
convTimeUnitCombToNum
uti.convTimeUnitCombToNum('3h') === 3 * 60 * 60
percent
uti.percent(0.543) === "54.3%"
noop
uti.noop() // nothing happens
upperFirstChar
uti.upperFirstChar('hello') === 'Hello'
isTheSameStrIgnoreCase
uti.isTheSameStrIgnoreCase('abc', 'AbC') === true
parseDate
uti.parseDate('2018-10-10').valueOf() === new Date(2018, 10, 10) uti.parseDate('2018-10').valueOf() === new Date(2018, 10) uti.parseDate('2018').valueOf() === new Date(2018,0) uti.parseDate('2018-2-30') instanceof Error === true uti.parseDate('2018-13-30') instanceof Error === true uti.parseDate('2018-13-30sd') instanceof Error === true
repeat
uti.repeat('-', 3) // '---'
swap
uti.swap([1, 2, 3], 1, 2) // [1, 3, 2]
randRange
uti.randRange(1, 5) // 3
map
uti.map.call([1, 2], x => 2 * x) // [2, 4]
slice
uti.slice.call([1, 2, 3], 0, 1) // 1
range
uti.range(1, 5) // [1, 2, 3, 4, 5]
execute
uti.execute(function(a, b) {console.log(a, b)}, 2, 1, 3) // 1 3 // 1 3
inherit
function List() {} uti.inherit(List, Array) const list = new List() list.push(3) console.log(list) // List { '0': 1, length: 1}
shuffle
uti.shuffle([1, 9, 8, 6]) // [9, 6, 8, 1]
groupArr
const arr = [ {tag: 'one', content: 'A'}, {tag: 'one', content: 'B'}, {tag: 'two', content: 'C'}, {tag: 'two', content: 'D'}, {tag: 'three', content: 'E'}, {tag: 'three', content: 'F'} ]; // group by the `tag` property uti.groupArr(arr, 'tag') /* { one: [ {tag: 'one', content: 'A'}, {tag: 'one', content: 'B'} ], two: [ {tag: 'two', content: 'C'}, {tag: 'two', content: 'D'} ], three: [ {tag: 'three', content: 'E'}, {tag: 'three', content: 'F'} ] } */