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@!#')
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',
},
})
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 NOT pick(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 of mapValues
, filter
, partition
respectively.pDebounce
: p-debounce, copied from the original temporarily to avoid having to ship this as ESM.
Prototype pollution safety