Skip to content

Latest commit

 

History

History
69 lines (49 loc) · 2.36 KB

README.md

File metadata and controls

69 lines (49 loc) · 2.36 KB

OrderedMap

Persistent data structure representing an ordered mapping from strings to values, with some convenient update methods.

This is not an efficient data structure for large maps, just a minimal helper for cleanly creating and managing small maps in a way that makes their key order explicit and easy to think about.

License: MIT

Reference

The exported value from this module is the class OrderedMap, instances of which represent a mapping from strings to arbitrary values.

OrderedMap.from(value: ?Object | OrderedMap) → OrderedMap
Return a map with the given content. If null, create an empty map. If given an ordered map, return that map itself. If given an object, create a map from the object's properties.

Methods

Instances of OrderedMap have the following methods and properties:

get(key: string) → ?any
Retrieve the value stored under key, or return undefined when no such key exists.

update(key: string, value: any, newKey: ?string) → OrderedMap
Create a new map by replacing the value of key with a new value, or adding a binding to the end of the map. If newKey is given, the key of the binding will be replaced with that key.

remove(key: string) → OrderedMap
Return a map with the given key removed, if it existed.

addToStart(key: string, value: any) → OrderedMap
Add a new key to the start of the map.

addToEnd(key: string, value: any) → OrderedMap
Add a new key to the end of the map.

addBefore(place: string, key: value: string, value: any) → OrderedMap
Add a key after the given key. If place is not found, the new key is added to the end.

forEach(f: (key: string, value: any))
Call the given function for each key/value pair in the map, in order.

prepend(map: Object | OrderedMap) → OrderedMap
Create a new map by prepending the keys in this map that don't appear in map before the keys in map.

append(map: Object | OrderedMap) → OrderedMap
Create a new map by appending the keys in this map that don't appear in map after the keys in map.

subtract(map: Object | OrderedMap) → OrderedMap
Create a map containing all the keys in this map that don't appear in map.

toObject() -> Object Return an object that has the same key/value pairs as the map.

size: number
The amount of keys in this map.