Gets a value from a Map/Obj or sets an initial value when not found and returns that. TypeScript supported.
npm install getorset-anything```
npm i getorset-anything
Get a Map/Obj value, or if it didn't exist yet set it and return that. Fully TypeScript supported! A simple & small integration.
I created this package because I always hated doing this over and over again:
`ts
const map = new Map
const id = 'abc'
let arr = map.get(id)
if (arr === undefined) {
arr = []
map.set(id, arr)
}
arr.push(100)
`
So that is exactly what getorset-anything does for you! 💯
getorset-anything has performance in mind. It won't do a .has() check, like other libraries do, when it found the value it will immediately return it.
Maps
`ts
import { mapGetOrSet } from 'getorset-anything'
const map = new Map
const arr = mapGetOrSet(map, 'abc', (): number[] => [])
arr.push(100) // OK!
`
Objects
`ts
import { objGetOrSet } from 'getorset-anything'
const obj: Record
const arr = objGetOrSet(obj, 'abc', (): number[] => [])
arr.push(100) // OK!
`
You don't have to do anything extra for TypeScript! It comes with awesome type support.
`ts
import { mapGetOrSet } from 'getorset-anything'
const map = new Map
const arr = mapGetOrSet(map, 'abc', () => []) // OK!
const arr2 = mapGetOrSet(map, 'abc', () => ({})) // NG! ⛔️
arr.push(100) // OK!
arr.push('100') // NG! ⛔️
``
- is-what 🙉
- is-where 🙈
- merge-anything 🥡
- check-anything 👁
- remove-anything ✂️
- getorset-anything 🐊
- map-anything 🗺
- filter-anything ⚔️
- copy-anything 🎭
- case-anything 🐫
- flatten-anything 🏏
- nestify-anything 🧅