JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 139
  • Score
    100M100P100Q69804F
  • License MIT

Additional utils

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

npm version npm bundle size (scoped) npm license

Installation

npm install @zero-dependency/utils
yarn add @zero-dependency/utils
pnpm add @zero-dependency/utils

Usage

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'