import {
hexToRgb,
rgbToHex,
isHexColor,
debounce,
throttle,
toNumber,
addZero,
entries,
pick,
omit,
pluralize,
randomNum,
randomToken,
generateChars,
capitalize
wait,
match
} from '@zero-dependency/utils'
console.log(hexToRgb('#000'))
console.log(rgbToHex({ r: 0, g: 0, b: 0 }))
console.log(isHexColor('#000'))
console.log(isHexColor('wrong'))
const debounced = debounce((msg) => console.log(msg), 1000)
const throttled = throttle((msg) => console.log(msg), 1000)
console.log(toNumber('1'))
console.log(addZero(1))
console.log(randomNum(1, 10))
console.log(entries({ a: 1, b: 2 }))
console.log(pick({ a: 1, b: 2 }, ['a']))
console.log(omit({ a: 1, b: 2 }, ['a']))
const tasksPluralize = pluralize({
one: 'задание',
two: 'задания',
few: 'заданий',
prefix: true
})
console.log(tasksPluralize(1))
console.log(tasksPluralize(3))
console.log(tasksPluralize(5))
console.log(tasksPluralize(999))
console.log(randomToken())
console.log(generateChars('a', 'd'))
console.log(capitalize('hello'))
await wait(1000)
console.log('resolve after 1s')
const matcher = match<[string, string], string>((test) => ({
[test((firstName) => !firstName)]: 'User not found',
[test((firstName) => firstName.length < 8)]: (firstName, lastName) => `${firstName} ${lastName}`,
[test((firstName) => firstName.length >= 8)]: (firstName) => firstName
}))
matcher('', 'Doe')
matcher('John', 'Doe')