finish TreeModel implementation and updateMany builder method
This commit is contained in:
@@ -12,6 +12,7 @@ type DeterminesEquality<T> = (item: CollectionItem<T>, other: any) => boolean
|
||||
type CollectionIndex = number
|
||||
type MaybeCollectionIndex = CollectionIndex | undefined
|
||||
type ComparisonFunction<T> = (item: CollectionItem<T>, otherItem: CollectionItem<T>) => number
|
||||
type Collectable<T> = CollectionItem<T>[] | Collection<T>
|
||||
|
||||
import { WhereOperator, applyWhere, whereMatch } from './where'
|
||||
import {Awaitable, Awaited, Either, isLeft, Maybe, MethodsOf, MethodType, right, unright} from '../support/types'
|
||||
@@ -39,6 +40,7 @@ export {
|
||||
CollectionIndex,
|
||||
MaybeCollectionIndex,
|
||||
ComparisonFunction,
|
||||
Collectable,
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -61,13 +63,16 @@ class Collection<T> {
|
||||
* Filters out undefined items.
|
||||
* @param itemOrItems
|
||||
*/
|
||||
public static normalize<T2>(itemOrItems: (CollectionItem<T2> | undefined)[] | CollectionItem<T2> | undefined): Collection<T2> {
|
||||
public static normalize<T2>(itemOrItems: Collection<T2> | (CollectionItem<T2>)[] | CollectionItem<T2>): Collection<T2> {
|
||||
if ( itemOrItems instanceof Collection ) {
|
||||
return itemOrItems
|
||||
}
|
||||
|
||||
if ( !Array.isArray(itemOrItems) ) {
|
||||
itemOrItems = [itemOrItems]
|
||||
}
|
||||
|
||||
const items = itemOrItems.filter(x => typeof x !== 'undefined') as CollectionItem<T2>[]
|
||||
return new Collection<T2>(items)
|
||||
return new Collection<T2>(itemOrItems)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1041,6 +1046,8 @@ class Collection<T> {
|
||||
* @param reducer
|
||||
* @param initialValue
|
||||
*/
|
||||
reduce<T2>(reducer: KeyReducerFunction<T, T2>, initialValue: T2): T2
|
||||
|
||||
reduce<T2>(reducer: KeyReducerFunction<T, T2>, initialValue?: T2): T2 | undefined {
|
||||
let currentValue = initialValue
|
||||
this.storedItems.forEach((item, index) => {
|
||||
|
||||
Reference in New Issue
Block a user