Skip to content

Releases: passsy/kt.dart

v0.7.0-dev.3

22 Dec 21:02
Compare
Choose a tag to compare
v0.7.0-dev.3 Pre-release
Pre-release
  • Rename (List|Set|Map).immutable() extension to .toImmutableList() to match Dart SDK naming schema.
  • Remove int.rangeTo(X) extension. Please use the dartx as replacement which offers the same extension
  • Remove T.to(X) extension to create a KtPair. It's too general and should be offered by the dart SDK not a 3rd party package

0.7.0-dev.2

21 Oct 19:29
Compare
Choose a tag to compare
0.7.0-dev.2 Pre-release
Pre-release

New .dart extensions to convert KtDart collections back to dart collections.

  // New: Converting dart collections to KtDart collections (mutable views)
  final KtMutableList<String> ktList = ["hey"].kt;
  final KtMutableSet<String> ktSet = {"hey"}.kt;
  final KtMutableMap<String, int> ktMap = {"hey": 1}.kt;

  // Converting KtDart collections to dart collections
  final List<String> dartList = KtList.of("hey").dart;
  final Set<String> dartSet = KtSet.of("hey").dart;
  final Map<String, int> dartMap = KtMap.from({"hey": 1}).dart;

Update

dependencies:
  kt_dart: ^0.7.0-dev.2

0.7.0-dev.1

21 Oct 15:11
407d4bd
Compare
Choose a tag to compare
0.7.0-dev.1 Pre-release
Pre-release

KtDart makes full use of darts static extension methods, introduced with Dart 2.6.

The public API stays unchanged and is backwards compatible.

Improved interopt with dart collections

It is now easier then ever to convert dart to ktdart collections and vice versa. Use the .kt property to convert dart collections to KtDart collections. (Note: .kt create a view, which allows you to mutate the original dart collection).

  // New: Make dart collections immutable
  final KtList<String> list = ["hey"].immutable();
  final KtSet<String> set = {"hey"}.immutable();
  final KtMap<String, int> map = {"hey": 1}.immutable();

  // New: Converting dart collections to KtDart collections (mutable views)
  final KtMutableList<String> ktList = ["hey"].kt;
  final KtMutableSet<String> ktSet = {"hey"}.kt;
  final KtMutableMap<String, int> ktMap = {"hey": 1}.kt;

  // Converting KtDart collections to dart collections
  final List<String> dartList = KtList.of("hey").asList();
  final Set<String> dartSet = KtSet.of("hey").asSet();
  final Map<String, int> dartMap = KtMap.from({"hey": 1}).asMap();

Tuple improvements

KtPairs can now created with the T0.to(T1) extension.

final KtPair<String, int> pair = "foo".to(42);

Also, KtPair and KtTriple now have a new toList() function to convert the values to a KtList.

New Extensions

  • KtList?.orEmpty() returns an empty list when the list is null
  • KtSet?.orEmpty() returns an empty set when the set is null
  • KtMap?.orEmpty() returns an empty map when the map is null
  • KtMap.ifEmpty(() -> defaultValue) returns the default value when the map is empty
  • KtIterable<KtIterable<T>>.flatten() flattens the nested collections to KtIterable<T>
  • KtIterable<KtPair<T, U>>.unzip(): KtPair<KtList<T>, KtList<U>> unzips list of pairs to list of their first and second values
  • KtIterable<Comparable<T>>.min() returns the smallest element of any comparable iterable
  • KtIterable<Comparable<T>>.max() returns the largest element of any comparable iterable

Upgrade

dependencies:
  kt_dart: ^0.7.0-dev.1

0.6.2

24 Apr 12:54
Compare
Choose a tag to compare

diff v0.6.1...v0.6.2

  • #96 Dart 2.0.0 comparability. (Was only Dart 2.1.0 compatible).
  • #97 Fix broken links to lib classes in documentation
  • #97 Adjust analyzer rules. Add new ones and explain why others aren't active. Adjusted the code accordingly

0.6.1

27 Mar 21:29
Compare
Choose a tag to compare

diff v0.6.0...v0.6.1

  • #92 Improve pub score by changing comments to ///

Upgrade Instructions

dependencies:
  kt_dart: ^0.6.1

0.6.0

27 Mar 16:09
Compare
Choose a tag to compare

diff v0.5.0...v0.6.0

This major update of kt.dart adds 16+ extension methods to KtMap and makes working with maps even easier.

Behavior Changes

The properties KtList.list: List,KtSet.set: Set are now deprecated and KtMap.map: Map was removed. Those properties where used to convert kt.dart collections to dart collections.
Instead use the new KtList.asList(): List, KtSet.asSet(): Set, KtMa.asMap(): Map methods.
The old properties returned copies of the collections.
The new as-methods return views of the original collections and reflect changes of the original data.

This breaking change was necessary because the property KtMap.map: Map<K, V> was conflicting with KtMap.map(MapEntry<K, V> -> R) : KtList<R> to map the entries to items of a KtList.
Read about further details here.

If you have used properties to iterate over the collections using a for-loop you should now always use iter which is available for all kt.dart collections.

for (final element in listOf("a", "b", "c").iter) {
  print(element); 
}
for (final element in setOf("a", "b", "c").iter) {
  print(element); 
}
for (final p in mapFrom({1: "Bulbasaur", 2: "Ivysaur"}).iter) {
  print("${p.key} -> ${p.value}"); 
}

Additions

  • #86 New: KtMap.map Returns a list containing the results of applying the given transform function to each entry in the original map.
  • #86 New: KtMap.iter Access to a Iterable to be used in for-loops
  • #87 New: KtMap.count Returns the number of entries matching the given [predicate] or the number of entries when predicate = null.
  • #89 New: KtMap.minBy Returns the first entry yielding the smallest value of the given function or null if there are no entries.
  • #89 New: KtMap.minWith Returns the first entry having the smallest value according to the provided comparator or null if there are no entries.
  • #89 New: KtMap.maxBy Returns the first entry yielding the largest value of the given function or null if there are no entries.
  • #89 New: KtMap.maxWith Returns the first entry having the largest value according to the provided comparator or null if there are no entries.
  • #90 New: KtMap.toList Returns a KtList containing all key-value pairs.
  • #78 New: KtMap.forEach Performs given action on each key/value pair from this map. thanks @acherkashyn
  • #80 New: KtMap.none Returns true if there is no entries in the map that match the given predicate. thanks @acherkashyn
  • #80 New: KtMap.all Returns true if all entries match the given predicate. thanks @acherkashyn
  • #80 New: KtMap.any Returns true if there is at least one entry that matches the given predicate. thanks @acherkashyn
  • #84 New: KtMap.filterKeys Returns a map containing all key-value pairs with keys matching the given predicate.
  • #84 New: KtMap.filterValues Returns a map containing all key-value pairs with values matching the given predicate.
  • #79 New: KtMap.asMap Returns a read-only dart:core Map
  • #79 New: KtMutableMap.asMap Creates a Map instance that wraps the original KtMap. It acts as a view.

  • #75 New: KtIterable.takeWhile Returns a list containing first elements satisfying the given predicate.
  • #76 New: KtIterable.takeLastWhile Returns a list containing last elements satisfying the given predicate.

  • #73 New: KtList.takeLast, Returns a list containing last n elements.
  • #79 New: KtList.asList Returns a read-only dart:core List
  • #79 New: KtMutableList.asList Creates a List instance that wraps the original KtList. It acts as a view.

  • #79, #91 New: KtSet.asSet Returns a read-only dart:core Set
  • #79 New: KtMutableSet.asSet Creates a Set instance that wraps the original KtSet. It acts as a view.

Bugfixes

  • #74 Fix: KtList.dropLastWhile was off by 1
  • #88 Fix: KtIterable.minWith returned the max value

Documentation

Misc.

  • #69 KtMutableListIterator throws IndexOutOfBoundsException when calling set before next was called
  • #81 Force dartfmt on CI
  • #83 Improve .gitignore

Upgrade Instructions

dependencies:
  kt_dart: ^0.6.0

0.5.0

11 Jan 15:55
Compare
Choose a tag to compare

diff v0.4.2...v0.5.0

This project has been renamed to kt.dart. If you're using a previous version upgrade like this:

pubspec.yaml

dependencies:
-  dart_kollection: ^0.3.0
-  kotlin_dart: ^0.4.0
+  kt_dart: ^0.5.0

your_source.dart

- import 'package:dart_kollection/dart_kollection.dart';
- import 'package:kotlin_dart/kotlin.dart';
+ import 'package:kt_dart/kt.dart';
  • #66 Rename KPair -> KtPair and KTriple -> KtTriple
  • #67 Rename package kotlin_dart -> kt_dart

0.4.3

11 Jan 15:54
Compare
Choose a tag to compare

diff v0.4.2...v0.4.3

Deprecate package kotlin_dart and recommend users to migrate to kt_dart.

0.3.2

11 Jan 15:52
Compare
Choose a tag to compare

diff v0.3.1...v0.3.12

Deprecate package dart_kollection in favour of kt_dart

0.4.2

09 Jan 16:56
Compare
Choose a tag to compare

diff v0.4.1...v0.4.2

Shorten pub project description to make pana happy.