object-path-plus

1.3.1 • Public • Published

object-path-plus

object-path-plus is an object-path compatible library that also provides the ability to synthesize values from multiple provided paths. Currently, it only supports the . delimited path format of object-path.

Installation

npm install object-path-plus

or

yarn add object-path-plus

Usage

object-path usage

To see basic object path usage, see object-path's documentation

Concatenating values

Concatenation with object-path-plus is very simple, just add a + sign! You can concatenate resolve values from multiple object-paths and you can also concatenate string literals with resolved path values.

const { resolve } = require('object-path-plus');
 
resolve({ a: { b: 1 }, c: { d: 2 } }, 'a.b + c.d') === 3;
 
resolve({ a: { b: 'foo' }, c: { d: 'bar' } }, 'a.b + c.d') === 'foobar';
 
resolve({ a: { b: 1 }, c: { d: 2 } }, 'a.b + " - " + c.d') === '1 - 2';
 
resolve({ a: { b: 'foo' }, c: { d: 'bar' } }, 'a.b + " " + c.d') === 'foo bar';
 
resolve({
  a: { b: 'foo' },
  c: { d: 'bar' },
  e: { f: [ 'baz', 'whiz' ] }
}, 'a.b + " " + c.d + " " + e.f.1') === 'foo bar whiz';
 
resolve({
  a: { b: 'foo' },
  c: { d: 'bar' },
  e: { f: [ 0, 1 ] }
}, 'a.b + " " + c.d + " " + e.f.1') === 'foo bar 1';

Dynamic array lookups

You can also use a property to index within an array. Just use the [] syntax.

resolve({
  firstkey: {index: 1},
  arr: [{key: 1}, {key: 2}]
}, 'arr[firstkey.index].key') === 2

Validating object-path-plus paths

You can also test if a path is valid prior to trying to resolve a value with it.

const { validate } = require('object-path-plus');
 
validate('a.b') === true;
 
validate('a.b + c.d') === true;
 
validate('a.b + hello world') === false;

Readme

Keywords

none

Package Sidebar

Install

npm i object-path-plus

Weekly Downloads

61

Version

1.3.1

License

MIT

Unpacked Size

9.36 kB

Total Files

5

Last publish

Collaborators

  • leonardo-mixmax
  • laszlovaspal
  • akashbhalla
  • hishank
  • jordins
  • joneslloyd
  • kamilgruszka
  • tharindu-wj
  • aminao
  • enuma
  • adriandmitroca
  • mixmaxkristina
  • corridonimatias
  • mikusd
  • mixmax_it
  • andra.lazariuc
  • adborroto
  • aaavakian
  • dnechay
  • raphaelbs
  • guilhermemj
  • eduard.borges
  • mixmax-codeship
  • bradvogel
  • jessem3
  • jsalvata
  • gabriel-mixmax
  • ttacon