API reference
Set
Use DataSet when you want Set uniqueness with indexed read helpers and transformation methods. Use ReadonlySet when you want read-only access. Use set() when a callable i
Set
Extended Set
utilities plus callable and readonly wrappers.
Import
import { DataSet, ReadonlySet, set } from '@stackpress/lib';
When To Use It
Use DataSet
when you want Set
uniqueness with indexed read helpers and transformation methods. Use ReadonlySet
when you want read-only access. Use set()
when a callable index-based getter is convenient.
API
Constructor
const tags = new DataSet<string>(['api', 'router', 'queue']);
ReadonlySet
accepts the same initial array.
DataSet Methods
| Method | Returns | Notes | |
|---|---|---|---|
filter(callback)
|
new DataSet
subclass |
Filters values by value and insertion index. | |
find(callback)
|
`[number, V] \ | undefined` | First matching [index, value]
. |
findIndex(callback)
|
number
|
Returns -1
when no value matches. |
|
findValue(callback)
|
`V \ | undefined` | First matching value. |
first()
|
`V \ | undefined` | Alias for index(0)
. |
index(index)
|
`V \ | undefined` | Value by insertion order. |
last()
|
`V \ | undefined` | Value at size - 1
. |
map(callback)
|
new DataSet<T>
|
Maps each value into a new set. | |
toArray()
|
V[]
|
Array snapshot. | |
toString(replacer?, space?)
|
string
|
JSON string of toArray()
. |
ReadonlySet Methods
ReadonlySet
exposes the read side of the collection:
entries()filter(callback)find(callback)findIndex(callback)findValue(callback)forEach(iterator)has(value)index(index)keys()map(callback)sizetoArray()toString(replacer?, space?)values()
Callable Helper
const queue = set(['first', 'second']);
queue(0);
queue.index(1);
queue.add('third');
set(data?)
returns a CallableSet<V>
with the DataSet
method surface plus a function signature for indexed reads.
Example
import { DataSet } from '@stackpress/lib';
const flags = new DataSet<number>();
flags.add(1);
flags.add(2);
flags.add(3);
const doubled = flags.map(value => value * 2);
const second = flags.index(1);
const found = flags.findValue(value => value === 3);