keyd

A small library for using and manipulating key path in JavaScript.

Usage no npm install needed!

<script type="module">
  import keyd from 'https://cdn.skypack.dev/keyd';
</script>

README

keyd

A small library for using and manipulating key paths in JavaScript.

Installation

npm install --save keyd
const keyd = require('keyd');

Getting / Setting Values

Getting Values

keyd(obj).get('my.keypath');

Getting values in array and sub-arrays.

keyd(obj).get.all('my.keypath');

Setting Values

keyd(obj).set('my.keypath', value);

Manipulating Key Paths

Components

const components = keyd.components('my.key.path');
/* -> ['my','key','path'] */

Throws an error if input is not a string.

Joining

const keyPath = keyd.join(['my','key','path']);
/* -> 'my.key.path' */

Throws an error if input is not an array.

Appending Keys

const keyPath = keyd.append('my.key', 'path');
/* -> 'my.key.path' */

or

const keyPath = keyd.append('my', ['key', 'path']);
/* -> 'my.key.path' */

Both inputs can be either strings or arrays.

Last

Getting

const lastComponent = keyd.last('my.key.path');
/* -> 'path' */

Input can be a string or an array.

Removing

const keyPath = keyd.eatLast('my.key.path');
/* -> 'my.key' */

Input can be a string or an array.

First

Getting

const firstComponent = keyd.first('my.key.path');
/* -> 'my' */

Input can be a string or an array.

Removing

const keyPath = keyd.eatFirst('my.key.path');
/* -> 'key.path' */

or

const keyPath = keyd.eatFirst('my.key.path', 'my.key');
/* -> 'path' */

Input can be a string or an array.

Latter example with throw an error if second key path is not within the first.

Match

const within = keyd.within('my.key.path', 'my.key');
/* -> true */

Both inputs can be either strings or arrays.

Options

All methods supports options, which is provided as an object as the last parameter.

The table below shows the supported key(s).

Name Default value Description
separator . A string that represents the separation characters of keys in a key path string.

License

MIT (see LICENSE).