You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					67 lines
				
				2.3 KiB
			
		
		
			
		
	
	
					67 lines
				
				2.3 KiB
			| 
											3 years ago
										 | # 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`. | ||
|  | 
 | ||
|  | **`size`**`: number`   | ||
|  | The amount of keys in this map. |