# unist-util-find-all-between

> Utility to find nodes between two nodes

Latest version **2.1.0** (published 2020-07-30) · MIT license · 0 weekly downloads

## Install

```sh
npm install unist-util-find-all-between
pnpm add unist-util-find-all-between
yarn add unist-util-find-all-between
bun add unist-util-find-all-between
```

## Health

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

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 2.1.0 |
| Published | 2020-07-30 |
| First published | 2017-01-25 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Node | >=10 |
| Dependencies | 2 |
| Unpacked size | 6.8 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 6 |
| Author | mrzmmr |
| Maintainers | mrzmmr |
| Keywords | unist, node, find, between, util, utility |

## Links

- npm: https://www.npmjs.com/package/unist-util-find-all-between
- Repository: https://github.com/mrzmmr/unist-util-find-all-between
- Homepage: https://github.com/mrzmmr/unist-util-find-all-between#readme
- Issues: https://github.com/mrzmmr/unist-util-find-all-between/issues
- npm.io page: https://npm.io/package/unist-util-find-all-between

## Dependencies (2)

- [unist-util-is](https://npm.io/package/unist-util-is.md) ^4.0.2
- [unist-util-find](https://npm.io/package/unist-util-find.md) ^1.0.1

## Alternatives

- [@expo/fingerprint](https://npm.io/package/@expo/fingerprint.md) — 6.2M weekly downloads
- [@azure/monitor-opentelemetry-exporter](https://npm.io/package/@azure/monitor-opentelemetry-exporter.md) — 850.0K weekly downloads
- [@azure/monitor-opentelemetry](https://npm.io/package/@azure/monitor-opentelemetry.md) — 624.0K weekly downloads
- [@posthog/ai](https://npm.io/package/@posthog/ai.md) — 423.3K weekly downloads
- [fakefilter](https://npm.io/package/fakefilter.md) — 63.9K weekly downloads

## Recent versions

- 2.1.0 (latest) — 2020-07-30
- 2.0.0 — 2019-09-13
- 1.0.6 — 2019-07-20
- 1.0.4 — 2019-06-05
- 1.0.3 — 2019-06-05
- 1.0.2 — 2018-09-03
- 1.0.1 — 2017-01-25
- 1.0.0 — 2017-01-25

## README

# unist-util-find-all-between

[![Travis](https://img.shields.io/travis/mrzmmr/unist-util-find-all-between.svg)](https://travis-ci.org/mrzmmr/unist-util-find-all-between)
[![Coverage
Status](https://coveralls.io/repos/github/mrzmmr/unist-util-find-all-between/badge.svg?branch=master)](https://coveralls.io/github/mrzmmr/unist-util-find-all-between?branch=master)


[unist](https://github.com/syntax-tree/unist) utility to find nodes between two nodes.

## Install

```sh
npm i -S unist-util-find-all-between
```

## Usage

```js
const between = require('unist-util-find-all-between')
const u = require('unist-builder')

const parent = u('tree', [
  u('leaf', 'leaf 1'),
  u('node', [u('leaf', 'leaf 2'), u('leaf', 'leaf 3')]),
  u('leaf', 'leaf 4'),
  u('node', [u('leaf', 'leaf 5')]),
  u('leaf', 'leaf 6'),
  u('void'),
  u('leaf', 'leaf 7')
])

const result = between(parent, 0, 4, 'leaf')

console.log(result)
```

Yields:

```js
[ { type: 'leaf', value: 'leaf 4' } ]
```

You can also pass a node in as `start` and/or `end`. For example given the tree above,

```js
// ...

const start = {
  type: 'leaf',
  value: 'leaf 4'
}

const end = {
  type: 'leaf',
  value: 'leaf 6'
}

const result = between(parent, start, end, 'node')

console.dir(result, {depth: null})
```

Yields:

```js
[ { type: 'node',
    children: [ { type: 'leaf', value: 'leaf 5' } ] } ]
```

## API

### `between(parent, start, end[, test])`

Find all child nodes of `parent`, that pass `test` between but not including `start` and `end`.

#### `parent`
Type: `Node`

Parent node to search through.

#### `start`
Type: `Node` | `index`

Child of `parent` node. Can be an actual node or the index of a child node. If a node is given, [unist-util-find](https://github.com/blahah/unist-util-find#api) is used to find the node.

#### `end`
Type: `Node` | `index`

Child of `parent` node. Can be an actual node or the index of a child node. If a node is given, [unist-util-find](https://github.com/blahah/unist-util-find#api) is used to find the node.

#### `test`?
Type: `Function` | `String` | `Object` | `Array`

Test to find nodes. Uses [unist-util-is](https://github.com/syntax-tree/unist-util-is#api) to check.

## Related

- [`unist-util-find-all-before`](https://github.com/syntax-tree/unist-util-find-all-before)
- [`unist-util-find-all-after`](https://github.com/syntax-tree/unist-util-find-all-after)
- [`unist-util-find`](https://github.com/blahah/unist-util-find)
- [`unist-util-is`](https://github.com/syntax-tree/unist-util-is)

## Contribute

PRs accepted and greatly appreciated.

## License

MIT © Paul Zimmer

---
_Source: https://npm.io/package/unist-util-find-all-between · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
