indexable-map
Version:
Built-in JavaScript Map with secondary indexes
23 lines (22 loc) • 684 B
TypeScript
export declare class IndexableMap<K, V, I extends string> extends Map<K, V> {
private _indexes;
private _indexFields;
private _indexFilters;
private _indexesEnabled;
constructor(entries?: readonly (readonly [K, V])[], { indexes, indexesEnabled, }?: {
indexes?: {
field: keyof V;
filter: (val: V) => boolean;
name: I;
}[];
indexesEnabled?: boolean;
});
getByIndex<K extends keyof V>(name: I, value: V[K]): V[];
refreshIndexes(): this;
enableIndexes(): this;
disableIndexes(): this;
vacuum(): void;
set(key: K, value: V): this;
delete(key: K): boolean;
clear(): void;
}