@lodestar/utils
Version:
Utilities required across multiple lodestar packages
40 lines • 1.27 kB
TypeScript
export declare class MapDef<K, V> extends Map<K, V> {
private readonly getDefault;
constructor(getDefault: () => V);
getOrDefault(key: K): V;
}
/**
* Extends MapDef but ensures that there always a max of `maxKeys` keys
*/
export declare class MapDefMax<K, V> {
private readonly getDefault;
private readonly maxKeys;
private readonly map;
constructor(getDefault: () => V, maxKeys: number);
getOrDefault(key: K): V;
get(key: K): V | undefined;
}
/**
* 2 dimensions Es6 Map
*/
export declare class Map2d<K1, K2, V> {
readonly map: Map<K1, Map<K2, V>>;
get(k1: K1, k2: K2): V | undefined;
set(k1: K1, k2: K2, v: V): void;
}
/**
* 2 dimensions Es6 Map + regular array
*/
export declare class Map2dArr<K1, V> {
readonly map: Map<K1, V[]>;
get(k1: K1, idx: number): V | undefined;
set(k1: K1, idx: number, v: V): void;
}
/**
* Prune an arbitrary set removing the first keys to have a set.size === maxItems.
* Returns the count of deleted items.
*
* Keys can be sorted by `compareFn` to get more control over which items to prune first
*/
export declare function pruneSetToMax<T>(set: Set<T> | Map<T, unknown>, maxItems: number, compareFn?: (a: T, b: T) => number): number;
//# sourceMappingURL=map.d.ts.map