@maicol07/ts-collections
v1.0.0
Published
Collections for array and objects data. Heavily faithful to Laravel implementation.
Readme
Why?
Differences between Laravel Collections and TS Collections
There are some little differences between Laravel Collections and TS Collections due to how JS/TS works:
- All names are camelCase (following JS coding standards)
Helpers
When you use a fallback value and the value you are trying to get is undefined, you will get the fallback value. Example:
const data = { name: 'John Doe', age: undefined, address: { city: 'New York', country: 'USA' } } dataGet(data, 'age', 'fallback') // => 'fallback'The same applies to all the Collection methods that use this helper.
Collections
- There are some new methods:
entriesisArray
- Currently, lazy collections aren't implemented.
- Due to the difference above, you can't use the following Laravel methods on your Collection:
chunkWhilecountBy
- There are some changes inn the API of these methods:
contains: Instead of Laravel approach, this method will accept only one argument (item) that can be one of these values:- The item to test for
- A function that will be called for each item in the collection and return true if the item matches
- An entry (key-value pair) of the item to search in the collection
- The following methods have not been implemented since they are already implemented in other methods or are natively supported by JS/TS:
containsStrict(sincecontainsalready does strict checks, following JS best practices)
WIP Status
- [x] all
- [x] average
- [x] avg
- [ ] chunk
- [ ] chunkWhile
- [x] collapse
- [x] collect
- [x] combine
- [x] concat
- [x] contains
- [x] containsOneItem
- [x] containsStrict
- [x] count
- [ ] countBy
- [ ] crossJoin
- [x] dd
- [x] diff
- [x] diffAssoc
- [ ] diffAssocUsing
- [x] diffKeys
- [x] doesntContain
- [ ] dot
- [x] dump
- [ ] duplicates
- [ ] duplicatesStrict
- [x] each
- [ ] eachSpread
- [ ] ensure
- [x] every
- [ ] except
- [x] filter
- [x] first
- [ ] firstOrFail
- [ ] firstWhere
- [ ] flatMap
- [x] flatten
- [ ] flip
- [ ] forget
- [ ] forPage
- [x] get
- [ ] groupBy
- [x] has
- [ ] hasAny
- [ ] implode
- [ ] intersect
- [ ] intersectAssoc
- [ ] intersectByKeys
- [ ] isEmpty
- [ ] isNotEmpty
- [ ] join
- [ ] keyBy
- [x] keys
- [x] last
- [ ] lazy
- [ ] macro
- [x] make
- [x] map
- [ ] mapInto
- [ ] mapSpread
- [ ] mapToGroups
- [ ] mapWithKeys
- [ ] max
- [x] median
- [ ] merge
- [ ] mergeRecursive
- [ ] min
- [x] mode
- [ ] nth
- [ ] only
- [ ] pad
- [ ] partition
- [ ] percentage
- [ ] pipe
- [ ] pipeInto
- [ ] pipeThrough
- [x] pluck
- [ ] pop
- [ ] prepend
- [ ] pull
- [x] push
- [x] put
- [ ] random
- [x] range
- [x] reduce
- [ ] reduceSpread
- [ ] reject
- [ ] replace
- [ ] replaceRecursive
- [x] reverse
- [ ] search
- [ ] shift
- [ ] shuffle
- [ ] skip
- [ ] skipUntil
- [ ] skipWhile
- [ ] slice
- [ ] sliding
- [ ] sole
- [ ] some
- [x] sort
- [ ] sortBy
- [ ] sortByDesc
- [ ] sortDesc
- [ ] sortKeys
- [ ] sortKeysDesc
- [ ] sortKeysUsing
- [ ] splice
- [ ] split
- [ ] splitIn
- [x] sum
- [ ] take
- [ ] takeUntil
- [ ] takeWhile
- [ ] tap
- [ ] times
- [ ] toArray
- [ ] toJson
- [ ] transform
- [ ] undot
- [ ] union
- [ ] unique
- [ ] uniqueStrict
- [ ] unless
- [ ] unlessEmpty
- [ ] unlessNotEmpty
- [ ] unwrap
- [ ] value
- [x] values
- [ ] when
- [ ] whenEmpty
- [ ] whenNotEmpty
- [ ] where
- [ ] whereStrict
- [ ] whereBetween
- [ ] whereIn
- [ ] whereInStrict
- [ ] whereInstanceOf
- [ ] whereNotBetween
- [ ] whereNotIn
- [ ] whereNotInStrict
- [ ] whereNotNull
- [ ] whereNull
- [ ] wrap
- [ ] zip
