Package Exports
- @zero-dependency/utils
- @zero-dependency/utils/dist/index.cjs.js
- @zero-dependency/utils/dist/index.es.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@zero-dependency/utils) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
@zero-dependency/utils
Installation
npm install @zero-dependency/utilsyarn add @zero-dependency/utilspnpm add @zero-dependency/utilsUsage
import {
hexToRgb,
rgbToHex,
isHexColor,
debounce,
throttle,
toNumber,
addZero,
entries,
pick,
omit,
pluralize,
randomNum,
randomToken,
generateChars,
capitalize
wait,
match
} from '@zero-dependency/utils'
// hex
console.log(hexToRgb('#000')) // { r: 0, g: 0, b: 0 }
console.log(rgbToHex({ r: 0, g: 0, b: 0 })) // #000000
console.log(isHexColor('#000')) // RegExpExecArray
console.log(isHexColor('wrong')) // null
// debounce
const debounced = debounce((msg) => console.log(msg), 1000)
// throttle
const throttled = throttle((msg) => console.log(msg), 1000)
// number
console.log(toNumber('1')) // 1
console.log(addZero(1)) // '01'
console.log(randomNum(1, 10))
// object
console.log(entries({ a: 1, b: 2 })) // [['a', 1], ['b', 2]]
console.log(pick({ a: 1, b: 2 }, ['a'])) // { a: 1 }
console.log(omit({ a: 1, b: 2 }, ['a'])) // { b: 2 }
// pluralize
const tasksPluralize = pluralize({
one: 'задание',
two: 'задания',
few: 'заданий',
prefix: true
})
console.log(tasksPluralize(1)) // '1 задание'
console.log(tasksPluralize(3)) // '3 задания'
console.log(tasksPluralize(5)) // '5 заданий'
console.log(tasksPluralize(999)) // '999 заданий'
// string
console.log(randomToken()) // 'vpxi4hpzmy'
console.log(generateChars('a', 'd')) // ['a', 'b', 'c', 'd']
console.log(capitalize('hello')) // 'Hello'
// wait
await wait(1000)
console.log('resolve after 1s')
// pattern matching
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') // 'User not found'
matcher('John', 'Doe') // 'John Doe'