# transform-hoek

> Transforms an existing object into a new one based on the supplied obj and transform map

Latest version **0.0.1** (published 2016-02-15) · BSD-3-Clause license · 0 weekly downloads

## Install

```sh
npm install transform-hoek
pnpm add transform-hoek
yarn add transform-hoek
bun add transform-hoek
```

## Health

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

Positive: no vulnerabilities.

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

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.1 |
| Published | 2016-02-15 |
| First published | 2016-02-15 |
| Weekly downloads | 0 |
| License | BSD-3-Clause |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Filirom1 |
| Maintainers | filirom1 |

## Links

- npm: https://www.npmjs.com/package/transform-hoek
- Repository: https://github.com/Filirom1/transform
- Homepage: https://github.com/Filirom1/transform#readme
- Issues: https://github.com/Filirom1/transform/issues
- npm.io page: https://npm.io/package/transform-hoek

## Recent versions

- 0.0.1 (latest) — 2016-02-15

## README

# Transform

A substract of [hapijs/hoek](https://raw.githubusercontent.com/hapijs/hoek) to be small enough for browserify

* [Introduction](#introduction "Introduction")
* [Object](#object "Object")
  * [reach](#reachobj-chain-options "reach")
  * [transform](#transformobj-transform-options "transform")
  * [stringify](#stringifyobj "stringify")
* [Errors](#errors "Errors")
  * [assert](#assertcondition-message "assert")



### reach(obj, chain, [options])

Converts an object key chain string to reference

- `options` - optional settings
    - `separator` - string to split chain path on, defaults to '.'
    - `default` - value to return if the path or value is not present, default is `undefined`
    - `strict` - if `true`, will throw an error on missing member, default is `false`
    - `functions` - if `true` allow traversing functions for properties. `false` will throw an error if a function is part of the chain.

A chain including negative numbers will work like negative indices on an
array.

If chain is `null`, `undefined` or `false`, the object itself will be returned.

```javascript

var chain = 'a.b.c';
var obj = {a : {b : { c : 1}}};

Hoek.reach(obj, chain); // returns 1

var chain = 'a.b.-1';
var obj = {a : {b : [2,3,6]}};

Hoek.reach(obj, chain); // returns 6
```

### transform(obj, transform, [options])

Transforms an existing object into a new one based on the supplied `obj` and `transform` map. `options` are the same as the `reach` options. The first argument can also be an array of objects. In that case the method will return an array of transformed objects.

```javascript
var source = {
    address: {
        one: '123 main street',
        two: 'PO Box 1234'
    },
    title: 'Warehouse',
    state: 'CA'
};

var result = Hoek.transform(source, {
    'person.address.lineOne': 'address.one',
    'person.address.lineTwo': 'address.two',
    'title': 'title',
    'person.address.region': 'state'
});
// Results in
// {
//     person: {
//         address: {
//             lineOne: '123 main street',
//             lineTwo: 'PO Box 1234',
//             region: 'CA'
//         }
//     },
//     title: 'Warehouse'
// }
```

### stringify(obj)

Converts an object to string using the built-in `JSON.stringify()` method with the difference that any errors are caught
and reported back in the form of the returned string. Used as a shortcut for displaying information to the console (e.g. in
error message) without the need to worry about invalid conversion.

```javascript
var a = {};
a.b = a;
Hoek.stringify(a);    // Returns '[Cannot display object: Converting circular structure to JSON]'
```


# Errors

### assert(condition, message)

```javascript

var a = 1, b = 2;

Hoek.assert(a === b, 'a should equal b');  // Throws 'a should equal b'
```

Note that you may also pass an already created Error object as the second parameter, and `assert` will throw that object.

```javascript

var a = 1, b = 2;

Hoek.assert(a === b, new Error('a should equal b')); // Throws the given error object
```

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