Persistent ordered mapping
  • JavaScript 100%
Find a file
2026-03-18 11:05:03 +01:00
dist Provide separate type declarations for ESM and CJS 2023-05-17 10:08:49 +02:00
.gitignore Provide separate type declarations for ESM and CJS 2023-05-17 10:08:49 +02:00
.npmignore Add ESM support 2019-11-07 11:55:16 +01:00
index.js Fix doc comment for addBefore 2023-12-02 13:50:46 +01:00
LICENSE Update maintainer email 2023-01-24 08:44:16 +01:00
package.json Update repository links 2026-03-18 11:05:03 +01:00
README.md Add docs in README.md for toObject 2022-09-29 09:59:38 +02:00
rollup.config.js Simplify file names again, use single .d.ts file 2022-06-15 08:52:14 +02:00

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.