UNPKG

@bitbite/filtered-list

Version:

filter a list of items

23 lines (17 loc) 595 B
export class FilteredList<T> { public filtered: Array<T> = [] private assertions: Assertion<T>[] = [] constructor(private list: Array<T>) {} private assertAll = (item: T) : boolean => { return this.assertions.some( assertion => assertion(item) === false ) ? false : true } /** * Assert all * @param assertions a list of assertions to be executed */ assert(...assertions: Assertion<T>[]): Array<T> { this.assertions = assertions this.filtered = this.list.filter(this.assertAll) return this.filtered; } }