- PR-126 Improve runtime of
elementAtOrNull
forList
- PR-125 Fix
whereNotNull
to actually return non-null elements
- All extensions methods now have their own extension which can be imported explicitly with
show
/hide
. This allows the usage ofpackage:collection
anddartx
in the same file. - Undeprecate
firstOrNullWhere
untildartx
can exportpackage:collection
itself - New
Directory.file
andDirectory.directory
extensions to quickly create file/directory references - Update
time
package
- PR-120 Migrate to nullsafety
- Fix
minBy
,maxBy
NPE for empty lists - PR-69 New
Dictionary.contains
- PR-57 New
Iterable.slice
- PR-94 Breaking:
Iterable<T>.zip(other, transform)
now support zipping iterables of other types theT
. This is a breaking change because it is now required to add types in the transform function.final amounts = [2, 3, 4]; final animals = ['dogs', 'birds', 'cats']; final all = amounts.zip(animals, (int amount, String animal) => '$amount $animal'); // lambda types are now required: ⇧ ⇧ // all: ['2 dogs', '3 birds', '4 cats']
- PR-90 New
String
extensionsString removePrefix(String prefix)
String removeSuffix(String suffix)
String removeSurrounding({String prefix, String suffix})
final name = 'James Bond'.removePrefix('James '); // Bond final milliseconds = '100ms'.removeSuffix('ms'); // 100 final text = '<p>Some HTML</p>'.removeSurrounding(prefix: '<p>', suffix: '</p>'); // Some HTML
- PR-88 New
List
extensionvoid swap(int, int)
which swaps the elements in the indices provided.final list = [1, 2, 3, 4]; list.swap(0, 2); // [3, 2, 1, 4]
- PR-100 Relax the upper version constraint of
collection
to support Flutter 1.20 (which usescollection: 1.3.0-nullsafety
) - PR-101 Relax the upper version constraint of
crypto
- Increase dependency range of
characters
to include1.0.0
- Raise min sdk version to
2.6.0
to prevent pub publishing warning for pre-release versions
- PR-41 New
Iterable<T>.containsAny(Iterable<T>)
extension - PR-46 New
Iterable<num>.median()
extension - PR-53 New
Iterable<T>.asStream()
extension converts any Iterable to a Stream - PR-59 New
Iterable<T>.cached
extension creates a cachedIterable
preventing lazy operators such as.map
to execute again - PR-56 Make
Iterable<Iterable<T>>.flatten()
typesafe and returnIterable<T>
instead ofIterable<dynamic>
- PR-62 New
Iterable<T>.chunkWhile(bool Function(T, T) predicate): Iterable<List<E>>
extension splits a collection into a lazy Iterables of chunks, where chunks are created as long aspredicate
is true for a pair of entries. - PR-62 New
Iterable<T>.splitWhen(bool Function(E, E) predicate): Iterable<List<E>>
extension splits a collection into a lazyIterable
, where each split will be make ifpredicate
returnstrue
for a pair of entries. - PR-54 New
Iterable<Future<T>>.asStreamAwaited(): Stream<T>
extension to create a stream from a group of futures.
- PR-72 New
String.isNullOrEmpty
extension - PR-43 New
String.toInt({int radix})
extension as alias forint.parse(String, {int radix})
(alsoString.toIntOrNull({int radix})
) - PR-75 Deprecate
String.chars
in favour ofString.characters
from the officialcharacters
package.
- PR-74 New
Comparable<T>.rangeTo(Comparable<T> end)
extension to create ranges ofDateTime
orString
. - PR-45 New
num.between(num first, num endInclusive): bool
extension - PR-45 New
num.inRange(Range<num> range): bool
extension - PR-45 New
Comparable<T>.between(T first, T endInclusive): bool
extension - PR-45 New
Comparable<T>.inRange(ComparableRange<T> range): bool
extension
- Improve package scoring by upgrading dependencies and formatting files
- Change README slightly
- PR-14 New
int.rangeTo(int)
extension - PR-24 Default implementations for
Comparable
<
,<=
,>=
and>
operators. - PR-13 Removed
quiver
dependency - PR-21 New
String.md5
to calculate a MD5 digest - PR-25 New
FileSystemEntity.withName(String newName)
to get aFile
with a different name - PR-25 New
FileSystemEntity.extension
to get the file extension - PR-17
Callable.invoke()
is now marked asDeprecated
in favour of dartscall()
method. It will not be removed though, until darts.call()
methods gets auto-completion. - PR-30 New
Comparable.coerceIn()
,Comparable.coerceAtLeast()
andComparable.coerceAtMost()
- PR-31 Fixed
num.toBytes()
- PR-33 Fixed
.thenBy()
and.thenWith()
extensions for Lists
- PR-29
Iterable<E>.windowed
- remove the required transform lambda
- Moved to
time.dart
library for time extensions
- Fixed docs
- Added
Function.curry()
,Function.invoke()
,Function.partial()
andFunction.flip()
'string'.reversed
now correctly handles grapheme clusters (like emoji)
'string'.chars
now returns the grapheme clusters instead ofRune
s
- Bugfixes
- More tests
- Initial release