# retrieve-object-child

> Retrieves object children

Latest version **1.0.1** (published 2014-10-16) · MIT license · 0 weekly downloads

## Install

```sh
npm install retrieve-object-child
pnpm add retrieve-object-child
yarn add retrieve-object-child
bun add retrieve-object-child
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.1 |
| Published | 2014-10-16 |
| First published | 2014-10-16 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 1 |
| Author | Christophe Bol |
| Maintainers | boljen |
| Keywords | nested object, object, child, nested |

## Links

- npm: https://www.npmjs.com/package/retrieve-object-child
- Repository: https://github.com/boljen/retrieve-object-child
- Issues: https://github.com/boljen/retrieve-object-child/issues
- npm.io page: https://npm.io/package/retrieve-object-child

## Recent versions

- 1.0.1 (latest) — 2014-10-16

## README

# retrieve-object-child (NodeJS)

[![Build Status](https://travis-ci.org/boljen/retrieve-object-child.svg)](https://travis-ci.org/boljen/retrieve-object-child)

Retrieve child objects from an object.

## Installation

First get the package from NPM

    npm install retrieve-object-child

And now simply require it in your application

    var retrieveChild = require('retrieve-object-child');

## Api

    /**
     * @param  {Object} object
     * @param  {string|array} position - Key or an array containing keys.
     * @param  {boolean} insert - Create the child object if it doesn't exist.
     * @param  {boolean} throwConflicts - Throw an error if there are conflicts.
     * @return {Object|undefined} - The child object or undefined if none was found.
     */
    function retrieveChild(object, position, insert, throwConflicts)

## Usage

First up is the most basic format of usage of this function with all the default
parameters:

    object.customNested = {};
    object.customNested.deeper = {};

    var child = retrieveChild(object, ['customNested', 'deeper']);
    child === object.customNested.deeper

It will return undefined when the child does not exist

    var child = retrieveChild(object, 'non_existent');
    child === undefined

or when there's a conflict

    object.customNested = "not an object";

    var child = retrieveChild(object, ['customNested', 'deeper']);
    child === undefined

### insert enabled
Retrieving existing objects works the same way, but when trying to access an
unexisting object path, it will build one recursively.

    object = {};
    var child = retrieveChild(object, ['customNested', 'deeper'], true);
    child === object.customNested.deeper

or will override all children when there's a conflict.

    object.customNested = "not an object";

    var child = retrieveChild(object, ['customNested', 'deeper'], true);
    child === object.customNested.deeper

### throwConflict enabled

An error will be thrown whenever there's a conflict instead of falling back on
the default behavior.

    object.customNested = "some primitive type like a string";

    try {
      retrieveChild(object, ['customNested', 'deeper'], false, true);
    } catch (e) {
      e.message === 'Conflict detected at key customNested on position 0'
      e.key === 'customNested'
      e.index === 0
    }

As you can see, you can find out exactly where a conflict has been detected.

## Test

    grunt test

## License

MIT.

---
_Source: https://npm.io/package/retrieve-object-child · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
