⚡️ Type-safe functional sequences for processing iterable data
This version improves performance of distinct
and distinctBy
and fixes an issue with range
.
Revert node engine to >=6.0.0
.
Fix missing lib
folder with declaration files which lead to Cannot find module 'sequency'
.
This version fixes an issue with passing undefined
values through various sequence operations.
Furthermore an internal rewrite of intermediate operations has been implemented. Sequences now use the native ECMAScript protocol Iterator<T>
instead of the legacy interface SequenceIterator<T>
. If you use custom intermediate operations via extendSequence
you eventually have to adopt your code to fit the Iterator
protocol. Please refer to this documentation for further information.
Sequency now uses TypeScript noImplicitAny
compiler setting. All functions are now properly typed.
This version changes range()
to be a closed range (second parameter endExclusive
becomes endInclusive
) to be en par with Kotlin ranges.
This is a breaking change. If you already use the range()
function you have to change your code like this:
import {range} from "sequency";
- range(start, end)
+ range(start, end - 1)
This version adds a new function range()
to create a sequence of numbers between the passed numbers startInclusive
and endExclusive
. Also fixes some type issues with operation filterNotNull()
.
This version adds several improvements to the internal structure of sequences. As a consequence the API documentation is greatly improved. All sequence operations are now correctly documented on the interface type Sequence.
In addition it's now possible to extend sequences with custom user-defined operations. See this example.
Thanks @couzic who made this possible. 👏
This version adds improved error handling for creating sequences, e.g. asSequence()
is passed null
, undefined
or a non-iterable value Sequency now throws understable error messages.
This version adds a new sequence operation merge()
.
See API docs for further information.