1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
# ranges-push
> Gather string index ranges
<div class="package-badges">
<a href="https://www.npmjs.com/package/ranges-push" rel="nofollow noreferrer noopener">
<img src="https://img.shields.io/badge/-npm-blue?style=flat-square" alt="page on npm">
</a>
<a href="https://codsen.com/os/ranges-push" rel="nofollow noreferrer noopener">
<img src="https://img.shields.io/badge/-codsen-blue?style=flat-square" alt="page on codsen.com">
</a>
<a href="https://github.com/codsen/codsen/tree/main/packages/ranges-push" rel="nofollow noreferrer noopener">
<img src="https://img.shields.io/badge/-github-blue?style=flat-square" alt="page on github">
</a>
<a href="https://npmcharts.com/compare/ranges-push?interval=30" rel="nofollow noreferrer noopener" target="_blank">
<img src="https://img.shields.io/npm/dm/ranges-push.svg?style=flat-square" alt="Downloads per month">
</a>
<a href="https://prettier.io" rel="nofollow noreferrer noopener" target="_blank">
<img src="https://img.shields.io/badge/code_style-prettier-brightgreen.svg?style=flat-square" alt="Code style: prettier">
</a>
<img src="https://img.shields.io/badge/licence-MIT-brightgreen.svg?style=flat-square" alt="MIT License">
<a href="https://liberamanifesto.com" rel="nofollow noreferrer noopener" target="_blank">
<img src="https://img.shields.io/badge/libera-manifesto-lightgrey.svg?style=flat-square" alt="libera manifesto">
</a>
</div>
## Install
```bash
npm i ranges-push
```
## Quick Take
```js
import { strict as assert } from "assert";
import { Ranges } from "ranges-push";
import { rApply } from "ranges-apply";
const gatheredRanges = new Ranges();
const oldString = `The quick brown fox jumps over the lazy dog.`;
// push the ranges
gatheredRanges.push(35, 43, "little Red Riding Hood");
gatheredRanges.push(4, 19, "bad grey wolf");
// retrieve the merged and sorted ranges by calling .current()
assert.deepEqual(gatheredRanges.current(), [
[4, 19, "bad grey wolf"],
[35, 43, "little Red Riding Hood"],
]);
assert.equal(
rApply(oldString, gatheredRanges.current()),
"The bad grey wolf jumps over the little Red Riding Hood."
);
// wipe all gathered ranges
gatheredRanges.wipe();
assert.equal(gatheredRanges.current(), null);
```
## Documentation
Please [visit codsen.com](https://codsen.com/os/ranges-push/) for a full description of the API and examples.
## Contributing
To report bugs or request features or assistance, [raise an issue](https://github.com/codsen/codsen/issues/new/choose) on GitHub.
## Licence
MIT License
Copyright (c) 2010-2021 Roy Revelt and other contributors
<img src="https://codsen.com/images/png-codsen-ok.png" width="98" alt="ok" align="center"> <img src="https://codsen.com/images/png-codsen-1.png" width="148" alt="codsen" align="center"> <img src="https://codsen.com/images/png-codsen-star-small.png" width="32" alt="star" align="center">
|