1.0.1 • Published 8 years ago
@threepointone/kv v1.0.1
kv
- a key-value data structure
- with strings for keys
- 'immutable'
- json/redux friendly
- fast (O(logN)) updates
- fast reads via WeakMap memoization
npm install @threepointone/kv --save
api
import { make, get, set, del, entries, toObject } from '@threepointone/kv'
make()
: create a new kv store
let o = make()
get(o, key)
: likeo[key]
set(o, key,value)
: like{ ...o, [key]: value }
del(o, key)
: like{ ...o, [key]: undefined }
entries(o)
: returns an array of[k, v]
entriestoObject(o)
: returns a regular js object withk:v
entries
rationale
(AKA "Why would I use this over Immutable.js/mori/seamless-immutable/etc?")
I made this module for redux-react-local, to solve a very specific use case with unique constraints. Specifically -
- fast writes/updates
- it sticks close to regular json objects, no custom types
- redux friendly, ie - you can stick it on a redux store and it should just work
- server side render friendly - because they're regular objects, one can simply serialize/deserialize across the wire
- did not need Lists, Vectors, etc,
todo
- satisfy Iterable protocol
- compare perf with other libs
- reclaim GC when deleting keys
1.0.1
8 years ago