Khal
Utils for node project
Disclaimer
There is a lot of other npm that do what I've done but in a better/more fashion/more optimized way. But well, I know what is inside this,
and this is the one I used a lot in my project. So don't blame for all the duplicates bytes I've done here.
I might optimize theses function in the future, just for the lolz and the learning.
More info about what has changed in the last version : Changelog
API
cl(args)
- Works like console.log, but it return the args passed. If no arg passed, it just return the timestamp. If only one arg is passed, it return the arg, if many it return arrayce(args)
- Same as above for console.errorclone(obj)
- Make a clone of an object (useful is you don't want to keep ref)intersect(arr, arr)
- Return an array being the intersect of arrays givenunion(arr,arr)
- Return an array being the union of arrays givenis
- Test a given argument being of type/state expectedarr
int
number
float
string
bool
obj
fn
def
undef
promise
obs
event
stringified
JSON
sort
- Handle sortingby
(el, param) given an object el, will sort by param defined
Exemple :
let obj = [{name:"alex",age:15},{name:"jean",age:10},{name:"brice",age:10},{name:"charles",age:50},{name:"franck",age:1}];
sort.by(obj,{age:1}); //Will sort asc by age similar to sort.by(obj,{age:'asc'});
sort.by(obj,{age:-1}); //Will sort desc by age similar to sort.by(obj,{age:'desc'});
sort.by(obj,{name:1,age:1}); //Will first sort asc by name then by age (so brice will be before jean having same age)
file
- Handle filecreate(filename, [cb])
- Create an empty file (sync if not cb passed, async in the other case)delete(filename, [cb])
- Delete a file (sync if not cb passed, async in the other case)append(filename, data, [cb])
- Append data in file (sync if not cb passed, async in the other case)exist(filename, [cb])
- Check if a file exist (sync if not cb passed, async in the other case)sizeof(filename, [cb])
- Get bytes size of a file (sync if not cb passed, async in the other case)
geo
- Handle geoCordinatecreate(lat, lon)
- returns a GeoCordinate objectgeocordinateStringToGeoCoordinateObject(str)
- transform a str "43.597446,1.454469" to a geoObjectcalculateDistance(geoCordinate, geoCordinate, [unit{str}, [precision {int}]])
- get distance between two geoObject, can be inkm
,m
ormiles
,convert(float)
toMiles()
- convert to Miles a value in meterstoMeters()
- convert to Meters a value in miles
string
- Handle stringpad
- Handle Paddingleft(string, length, [replacementString])
- Transform an input and adding in left the replacement value. Returns a string.right(string, length, [replacementString])
- Transform an input and adding in right the replacement value. Returns a string.
math
- Handle mathradianToDegree(rad)
degreeToRadian(deg)
randomBetweenMinAndMax(min,max,[precision])
levenshtein(stringA, stringB)
- return an array as of levenshtein (string distance)stringDistance(stringA, stringB)
- return an int, value of the distance between two stringshighest(numbersList)
- return the highest number from a list of numberslowest(numbersList)
- return the lowest number from a list of numbersmedian(numbersList)
- return the median number from a list of numbersmean(numbersList)
- return the mean number from a list of numbersaverage(numbersList)
- return the average number from a list of numbers
misc
- Handle stuffformatByteSize(bytes,[isSIForm])
- Make bytes readable using IEEC (MB) or SI (MiB) formsizeOfObject(obj)
- Get bytes size from obj (number, object or string)sizeOfObjectReadable(obj,[isSIForm])
- Make bytes readable using IEEC (MB) or SI (MiB) form from objmerge(obj,[obj[...]])
- merge object with priority from left to right (left is left untouched), see it like an extends of left.
os
- Handle OS stuffgetServerIp([_family])
- Get server ip by his familly (IPv4 by default, IPv6 should be passed as arg)
=>khal.os.getServerIP("IPv6")
for IPv6
=>khal.os.getServerIP()
orkhal.os.getServerIP("IPv4")
for IPv4
regex
regTest(reg, val)
- Handy shortcut for regex testingisUUIDV4(uuid)
- Test a valid UUID V4isUsername(username)
- Test a valid usernameisBirthdate(birthday)
- Test a valid birthdateisGender(gender)
- Test a valid genderisPassword(password)
- Test a valid passwordisEmail(email)
- Test a valid emailisUnicodeEmail(email)
- Test a valid unicode email
date
time
date
datetime
UTCEpochMS
UTCEpoch
localEpochMS
localEpoch
calculateAge(dateString, [date])
- Given a date String (YYYY-MM-DD) return the year diff between today or the date given as second arg.YYYYMMDDhhmmss([params]]
Return formatted date in specified form with specified separator. Where params can be :- separatorDate - Default "-", - Allow to set a separator between years, months, and date.
- separatorTime - Default ":" - Allow to set a separator between Hours, minutes and seconds.
- separatorBetween - Default " " - Will allow to set a separateur between the Time block and the Date block.
- d - Default is Now Date. - Allow to use a specific Date object to format from.