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