stdobj
v0.6.2
Published
Fast, small, dependency-free lib for common work with object literals.
Downloads
4
Readme
STDOBJ
Fast, small, dependency-free lib for common work with object literals.
Installation
yarn add stdobj
# ...or...
npm i stdobjUsage
stdobj provides a number of methods which can be destructured and used
in code. Below is a list of the supported methods:
isObj- Checks if parameter passed is an object literalkeys- Retruns array of keys from objecttoPairs- Converts object to array of key-value pair arraysfromPairs- Converts array of key-value pairs to objectget- Gets a value using standard or dot-notated keyset- Sets a value using standard or dot-notated keyflatten- Flattens object to dot-notated key-value objectexpand- Expands a flattened, dot-notated object to nested objectredact- Redacts keys or values on an object literalmerge- Performs a deep merge on object parameter(s)
isObj
isObj(<*>)- Checks if parameter passed is an object literal
const obj = { foo: 'bar' }
const notObj = 42
isObj(obj) // -> true
isObj(notObj) // -> falsekeys
keys(<Object>)- Retruns array of keys from object
const obj = { foo: 'bar', fizz: 'buzz' }
keys(obj) // -> [ 'foo', 'fizz' ]toPairs
toPairs(<Object>)- Converts object to array of key-value pair arrays
const obj = { foo: 'bar', fizz: 'buzz' }
toPairs(obj) // -> [ [ 'foo', 'bar' ], [ 'fizz', 'buzz' ] ]fromPairs
fromPairs(<Array>)- Converts array of key-value pairs to object
const pairs = [ [ 'foo', 'bar' ], [ 'fizz', 'buzz' ] ]
fromPairs(pairs) // -> { foo: 'bar', fizz: 'buzz' }get
get(<String>)- Gets a value using standard or dot-notated key
const obj = {
foo: 'bar',
fizz: {
buzz: 'bizz'
}
}
get('foo') // -> 'bar'
get('fizz.buzz') // -> 'bizz'set
set(Obj<Object>, Key<String>, Value<*>)- Sets a value using standard or dot-notated key
const obj = {}
set(obj, 'foo.bar', 'fizz') // obj = { foo: { bar: 'fizz' } }flatten
flatten(<Object>)- Flattens object to dot-notated key-value object
const obj = {
foo: 'bar',
fizz: {
buzz: 'bizz'
}
}
flatten(obj) // -> { foo: 'bar', 'fizz.buzz': 'bizz' }expand
expand(<Object>)- Expands a flattened, dot-notated object to nested object
const flatObj = { foo: 'bar', 'fizz.buzz': 'bizz' }
expand(flatObj) // -> { foo: 'bar', fizz: { buzz: 'bizz' } }redact
redact(Obj<Object>, <Object{keys<Array>, values<Array>}>- Redacts keys or values on an object literal
const obj = {
foo: 'bar',
quz: 'baz',
fizz: {
buzz: 'fizz',
bizz: 'fuzz'
}
}
redact(obj, { keys: [ 'fizz.bizz' ], values: [ 'baz' ] }) // -> { foo: 'bar', fizz: { buzz: 'fizz' } }Note: for arrays, you can specify the index explicity: foo.bar[1]... or specify
that all keys be affected during redaction with n; foo.bar[n].... This is useful for
picking off properties of object nested in arrays
merge
merge(...<Object>)- Performs a deep merge on object parameter(s)
const objOne = { foo: 'bar' }
const objTwo = { fizz: { buzz: 'fizz' } }
merge(objOne, objTwo) // -> { foo: 'bar', fizz: { buzz: 'fizz' } }