index-list v1.0.2
index-list
Build up an indexed list of strings. Useful for minimising the size of categorical data when transferring it over the wire.
Usage
list = IndexList([initial], [options])
Creates a new indexed list.
list.push(elements...)
Adds one or more new elements to the end of the list.
list.toJSON()
Creates a serialized version of the input data, ready to be stringified into
JSON, which can later be loaded with IndexList.load().
Note that while this is generally more compact, you can
reduce the size further by storing the items as binary
data using a Uint32Array or similar. Alternatively you
can convert that data into base64 and expand before loading
it again.
IndexList.load(json)
Loads a previously serialized IndexList, returning a new
instance.
var list = IndexList(data)
var copy = IndexList.load(list.toJSON())
// copy.expand() ~= list.expand()list.expand()
Creates an expanded copy of the stored values, representing the original input data.
var list = IndexList(['hello', 'world', 'again', 'hello', 'hello', 'world', 'again', 'again'])
// list.toJSON() ~= { items: [0, 1, 2, 0, 0, 1, 2, 2], index: ['hello', 'world', 'again'] }
// list.expand() ~= ['hello', 'world', 'again', 'hello', 'hello', 'world', 'again', 'again']License
MIT. See LICENSE.md for details.
