@exodus/basic-utils
v3.2.0
Published
Basic lightweight lib with common utility classes and methods.
Downloads
45,734
Readme
Exodus Basic Utils
[![npm][npm-image]][npm-url]] [npm-image]: https://img.shields.io/npm/v/@exodus/basic-utils.svg?style=flat-square [npm-url]: https://www.npmjs.com/package/@exodus/basic-utils
Install
yarn add @exodus/basic-utils
Usage
SynchronizedTime
import { SynchronizedTime } from '@exodus/basic-utils'
console.log(SynchronizedTime.now())
cleanInput
import { cleanInput } from '@exodus/basic-utils'
cleanInput('1.2abc@!#') // returns 1.2
flattenToPaths
Flatten an object to an array of [...path, leafValue]
arrays.
import { flattenToPaths } from '@exodus/basic-utils'
flattenToPaths({
harry: {
wand: 'holly',
},
grindie: {
wand: 'yew',
},
voldie: {
wand: 'yew',
},
})
// [
// ['harry', 'wand', 'holly'],
// ['grindie', 'wand', 'yew'],
// ['voldie', 'wand', 'yew'],
// ]
Lodash-like utility functions
The following functions work like their lodash counterparts, with some caveats:
- They're strict with respect to arguments, and don't support multiple options like arrays, strings, etc. For example,
pick(users, ['name', 'age'])
but NOTpick(users, 'name')
. Please see the tests before you use them. - Functions that create objects return objects with a null prototype.
Before using a function, check its unit tests to make sure you're using the API correctly.
import {
pick,
pickBy,
omit,
mapKeys,
mapValues,
keyBy,
orderBy,
isNil,
isObjectLike,
isPlainObject,
difference,
intersection,
partition,
set,
} from '@exodus/basic-utils'
async helpers
See ./src/async.js and ./src/p-debounce.js for more details.
mapValuesAsync
,filterAsync
,partitionAsync
are the async counterparts ofmapValues
,filter
,partition
respectively.pDebounce
: p-debounce, copied from the original temporarily to avoid having to ship this as ESM.