# dot-notes

> Two way conversions between objects and dot/bracket notation

Latest version **3.2.2** (published 2023-11-14) · MIT license · 0 weekly downloads

## Install

```sh
npm install dot-notes
pnpm add dot-notes
yarn add dot-notes
bun add dot-notes
```

## 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 | 3.2.2 |
| Published | 2023-11-14 |
| First published | 2015-03-05 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 15.5 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 13 |
| Author | Isaac Whitfield |
| Maintainers | whitfin |
| Keywords | accessor, conversion, bracket notation, dot notation, objects, parsing, property |

## Links

- npm: https://www.npmjs.com/package/dot-notes
- Repository: https://github.com/whitfin/dot-notes-js
- Homepage: https://github.com/whitfin/dot-notes-js#readme
- Issues: http://github.com/whitfin/dot-notes-js/issues
- npm.io page: https://npm.io/package/dot-notes

## Recent versions

- 3.2.2 (latest) — 2023-11-14
- 3.2.1 — 2022-07-27
- 3.2.0 — 2018-10-14
- 3.1.1 — 2016-03-03
- 3.1.0 — 2016-02-28
- 3.0.0 — 2016-02-05
- 2.1.0 — 2015-11-16
- 2.0.1 — 2015-11-16
- 2.0.0 — 2015-11-13
- 1.1.1 — 2015-03-22
- 1.1.0 — 2015-03-22
- 1.0.0 — 2015-03-05

## README

# dot-notes

[![Build Status](https://img.shields.io/github/actions/workflow/status/whitfin/dot-notes-js/ci.yml?branch=main)](https://github.com/whitfin/dot-notes-js/actions) [![Published Version](https://img.shields.io/npm/v/dot-notes.svg)](https://npmjs.com/package/dot-notes) [![Published Downloads](https://img.shields.io/npm/dt/dot-notes)](https://npmjs.com/package/dot-notes)

This module provides a simple way of constructing/parsing dot/bracket notation in JavaScript/Node.js. It was born from a need to flatten Objects in a customized way, making `dot-notes` useful in many scenarios.

- [Getting Started](#setup)
- [Quick Examples](#quick-examples)
- [Migrating from 2.x to 3.x](#migrating-from-2x-to-3x)
- [Contributing](#contributing)
- [Testing](#testing)

### Getting Started

`dot-notes` lives on [npm](https://www.npmjs.com/package/dot-notes), so just install it via the command line and you're good to go. There are no dependencies either, so it should be pretty fast to download in your production environment (there *are* dev dependencies).

```bash
$ npm install --save dot-notes
```

In the interest of short READMEs, please visit the wiki for [documentation](https://github.com/zackehh/dot-notes/wiki) on how to use this module, including example usage.

### Quick Examples

```javascript
const dots = require('dot-notes');

dots.create({}, 'test.test', 'example');
  => { "test": { "test": "example" } }
dots.get({ "test": { "test": "example" } }, 'test.test');
  => "example"
dots.keys('this["is"].my[1].example');
  => [ 'this', 'is', 'my', 1, 'example' ]
dots.join([ 'this', 'is', 'my', 1, 'example' ]);
  => 'this.is.my[1].example'
dots.recurse({ "test": { "test": "example" } }, console.log);
  => [ 'test', 'example', 'test.test' ]

```

### Migrating from 2.x to 3.x

The argument syntax for any functions taking an Object target and a String have been flipped, to follow the `(haystack, needle)` format. This means that the arguments for a target are now required where they weren't previously - *however*, if you pass undefined you will get the same behaviour as previously.

This is the only non-backwards compatible change in 3.x (and is the change which forced the jump to 3.0.0).

### Contributing

If you wish to contribute (awesome!), please file an issue before filing a PR in order to avoid wasting time on a PR which may not be required. All PRs should pass `grunt lint` and maintain 100% test coverage. If something isn't covered by `lint`, please just use the existing code as an example of the style which should be used.

### Testing

Tests are run using `grunt` or `npm`, and written using [Mocha](https://mochajs.org/). I aim to maintain 100% coverage where possible (both line and branch).

Tests can be run as follows:

```bash
$ npm test
```

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