Releases: Smoren/itertools-ts
Releases · Smoren/itertools-ts
Publication on DENO
infinite.booleans() added, typing fixes
New features
- infinite
booleans()booleansAsync()
 - Stream
ofBooleans()
 - AsyncStream
ofBooleans()
 
Typing fixes
- Using built-in 
PropertyKeyinstead ofRecordKey FlatMappertypes fixed (forsingle.flatMap())
combinatorics.combinations() added
New features
- combinatorics
combinations()combinationsAsync()
 - Stream
combinations()
 - AsyncStream
combinations()
 
New namespace added: combinatorics
New features
- combinatorics
permutations()permutationsAsync()cartesianProduct()cartesianProductAsync()
 - Stream
permutations()
 - AsyncStream
permutations()
 
Improvements
toArray()function optimized.
Deprecations
- set
cartesianProduct()(usecombinatorics.cartesianProduct()instead).cartesianProductAsync()(usecombinatorics.cartesianProductAsync()instead).
 
Stream and AsyncStream made generics to save the typing
Improvements
- Stream and AsyncStream are fully refactored
- Classes made generic.
 - All the methods made generic and save the typing.
 
 - reduce
toValue(),toValueAsync()— union return type has been replaced by inferred type.toRange(),toRangeAsync()— useNumerictype in arguments.
 - multi
- Type 
ZipTuple— added support for iterators and async iterables / iterators. 
 - Type 
 - math
- All the methods use 
Numerictype in arguments. 
 - All the methods use 
 - All the tests are refactored to check the typing.
 - Found bugs fixed.
 
New features
- types
NumericNumericString
 
Union return type in groupBy replaced by inferred type
Improvements
- single
groupBy()— union return type has been replaced by inferred type.groupByAsync()— union return type has been replaced by inferred type.
 
function* groupBy<
  T,
  TItemKeyFunction extends ((item: T) => string) | undefined,
  TResultItem extends TItemKeyFunction extends undefined ? [string, Array<T>] : [string, Record<string, T>]
>(
  data: Iterable<T> | Iterator<T>,
  groupKeyFunction: (item: T) => string,
  itemKeyFunction?: TItemKeyFunction
): Iterable<TResultItem>;
async function* groupByAsync<
  T,
  TItemKeyFunction extends ((item: T) => string) | undefined,
  TResultItem extends TItemKeyFunction extends undefined ? [string, Array<T>] : [string, Record<string, T>]
>(
  data: AsyncIterable<T> | AsyncIterator<T> | Iterable<T> | Iterator<T>,
  groupKeyFunction: (item: T) => (string | Promise<string>),
  itemKeyFunction?: (item: T) => (string | Promise<string>)
): AsyncIterable<TResultItem>;Pipe.add() method added
New features
- Pipe
add()
 
Documentation fixed
v1.28.1 CHANGELOG updated.
createPipe() function added
New features
createPipe()— a way to chain multiple operations together.
Package Size Optimization
v1.27.1 workflow updated