1.10.0 • Published 9 months ago

@joookiwi/collection v1.10.0

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

Collection (javascript version)

version downloads

Table of content

The way to think about this is to have the functionalities of other languages (like Java, PHP, C#, Kotlin and even Javascript) all in one standalone structure.

But, with a possible functional approach using the collections.

The structure is and will be in continuous change to implement almost everything that the other languages have (if it is possible).

Installation

npm install @joookiwi/collection
npm i @joookiwi/collection

npm install --save @joookiwi/collection
npm i -S @joookiwi/collection

npm install --save-dev @joookiwi/collection
npm i -D @joookiwi/collection

Usage

There are 3 different kinds of collections (which are all non-mutable).

  • a minimalist (GenericMinimalistCollectionHolder),
  • a lazy (LazyGenericCollectionHolder)
  • and an eager (GenericCollectionHolder) one.

So, no computation can be done "normally" in these instances.

But they can always be converted to the Array, Set, WeakSet (it the type is a WeakKey) or even Map depending on the usage.

It can be separated in different categories. 1. The size methods 2. The research methods 3. The index methods 4. The validation methods 5. The transformation methods 6. The loop methods 7. The reordering methods 8. The conversion methods 9. Some utility methods (not part of the CollectionHolder)


The size methods

Those methods are associated with a size or directly compared

  • size|length|count
  • isEmpty
  • isNotEmpty

The research methods

Those methods are meant to find an element comparing it or giving a value from the collection

  • get|at|elementAt
  • getOrElse|atOrElse|elementAtOrElse
  • getOrNull|atOrNull|elementAtOrNull
  • first
  • firstOrNull
  • last
  • lastOrNull
  • find
  • findIndexed
  • findLast
  • findLastIndexed

The index methods

Those methods are giving or finding index values in the collection

  • indexOf
  • lastIndexOf
  • indexOfFirst
  • indexOfFirstIndexed
  • indexOfLast
  • indexOfLastIndexed

The validation methods

Those methods are to give a validation on some type, value or comparison across the collection

  • all
  • any
  • none
  • hasNull|includesNull|containsNull
  • hasDuplicate|includesDuplicate|containsDuplicate
  • has|includes|contains
  • hasOne|includesOne|containsOne
  • hasAll|includesAll|containsAll
  • requireNotNull

The transformation methods

Those methods have the purpose to give a new collection with a possibly different type from the original collection

  • filter
  • filterIndexed
  • filterNot
  • filterIndexedNot
  • filterNotNull
  • slice
  • take
  • takeWhile
  • takeWhileIndexed
  • takeLast
  • takeLastWhile
  • takeLastWhileIndexed
  • drop
  • dropWhile
  • dropWhileIndexed
  • dropLast
  • dropLastWhile
  • dropLastWhileIndexed
  • map
  • mapIndexed
  • mapNotNull
  • mapNotNullIndexed

The loop methods

Those methods are just doing a basic loop on the collection

  • forEach
  • forEachIndexed
  • onEach
  • onEachIndexed

The reordering methods

Those methods are just changing the order to the elements of the collection

  • toReverse|toReversed|reversed

The conversion methods

Those methods have the sole purpose to convert the structure from a collection to another structure. It can also convert the value to a string.

  • objectValuesMap (a no longer useful utility method that will be removed in the version 1.11)
  • toIterator
  • toArray
  • toMutableArray
  • toSet
  • toMutableSet
  • toWeakSet (only if the it is an object|symbol or in GenericObjectCollectionHolder)
  • toMutableWeakSet (only if it is an object|symbol or in GenericObjectCollectionHolder)
  • toMap
  • toMutableMap
  • toString
  • toLocaleString
  • toLowerCaseString
  • toLocaleLowerCaseString
  • toUpperCaseString
  • toLocaleUpperCaseString
  • joinToString|join

The utility methods

Those methods are not part of the CollectionHolder, but are a complement to the overall robustest of the collection

  • asString (This will be eventually moved in another project)
  • asLocaleString (This will be eventually moved in another project)
  • asLowerCaseString (This will be eventually moved in another project)
  • asLocaleLowerCaseString (This will be eventually moved in another project)
  • asUpperCaseString (This will be eventually moved in another project)
  • asLocaleUpperCaseString (This will be eventually moved in another project)
  • isArray
  • isArrayByStructure
  • isCollectionHolder
  • isCollectionHolderByStructure
  • isMinimalistCollectionHolder
  • isMinimalistCollectionHoldeByStructure
  • isSet
  • isSetByStructure
  • isCollectionIterator
  • isCollectionIteratorByStructure
  • isIterator

Non-present methods

Almost every method is present in the src/method at the exception to get(index) and get size() that is handled differently based on the type of instance.

The alias methods are not part of the extension function. It includes:

  • get length() / get count()
  • includesNull() / containsNull()
  • includesDuplicate() / containsDuplicate()
  • atOrElse() / elementAtOrElse()
  • atOrDefault() / elementAtOrDefault()
  • includes() / contains()
  • includesOne() / containsOne()
  • includesAll() / containsAll()
  • join()
  • toReversed() / reversed().

Contribution

You can contribute to great simple packages. All with similar behaviour across different languages (like Java, Kotlin, C# and PHP). It can be done 2 different ways:

1.10.0

9 months ago

1.9.1

12 months ago

1.9.0

12 months ago

1.9.3

11 months ago

1.9.2

12 months ago

1.8.0

1 year ago

1.7.1

1 year ago

1.7.0

1 year ago

1.6.1

2 years ago

1.6.0

2 years ago

1.5.0

2 years ago

1.4.0

2 years ago

1.3.0

2 years ago

1.2.0

2 years ago

1.1.0

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago

0.1.0

2 years ago