# 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.