mirror of
https://github.com/darkings/Obsidian-MonokaiSyntax.git
synced 2026-07-22 04:40:26 +00:00
157 lines
6.1 KiB
TypeScript
157 lines
6.1 KiB
TypeScript
import { HookifiedOptions, Hookified } from 'hookified';
|
|
import { Keyv } from 'keyv';
|
|
export { Keyv } from 'keyv';
|
|
export { Hashery } from 'hashery';
|
|
|
|
type MapInterfacee<K, V> = {
|
|
readonly size: number;
|
|
clear(): void;
|
|
delete(key: K): boolean;
|
|
forEach(callbackfn: (value: V, key: K, map: MapInterfacee<K, V>) => void, thisArg?: any): void;
|
|
entries(): IterableIterator<[K, V]>;
|
|
keys(): IterableIterator<K>;
|
|
values(): IterableIterator<V>;
|
|
[Symbol.iterator](): IterableIterator<[K, V]>;
|
|
get(key: K): V | undefined;
|
|
has(key: K): boolean;
|
|
set(key: K, value: V): Map<K, V>;
|
|
};
|
|
type StoreHashFunction = (key: string, storeSize: number) => number;
|
|
declare function defaultHashFunction(key: string, storeSize: number): number;
|
|
type BigMapOptions = {
|
|
/**
|
|
* Optional size of the store. The default is 4 maps objects.
|
|
* @default 4
|
|
*/
|
|
storeSize?: number;
|
|
/**
|
|
* Optional hash function to use for storing keys.
|
|
* @default undefined
|
|
*/
|
|
storeHashFunction?: StoreHashFunction;
|
|
} & HookifiedOptions;
|
|
declare class BigMap<K, V> extends Hookified implements MapInterfacee<K, V> {
|
|
private _storeSize;
|
|
private _store;
|
|
private _storeHashFunction?;
|
|
/**
|
|
* Creates an instance of BigMap.
|
|
* @param {BigMapOptions<K, V>} [options] - Optional configuration options for the BigMap.
|
|
*/
|
|
constructor(options?: BigMapOptions);
|
|
/**
|
|
* Gets the number of maps in the store.
|
|
* @returns {number} The number of maps in the store.
|
|
*/
|
|
get storeSize(): number;
|
|
/**
|
|
* Sets the number of maps in the store. If the size is less than 1, an error is thrown.
|
|
* If you change the store size it will clear all entries.
|
|
* @param {number} size - The new size of the store.
|
|
* @throws {Error} If the size is less than 1.
|
|
*/
|
|
set storeSize(size: number);
|
|
/**
|
|
* Gets the hash function used for storing keys.
|
|
* @returns {StoreHashFunction | undefined} The hash function used for storing keys, or undefined if not set.
|
|
*/
|
|
get storeHashFunction(): StoreHashFunction | undefined;
|
|
/**
|
|
* Sets the hash function used for storing keys.
|
|
* @param {StoreHashFunction} hashFunction - The hash function to use for storing keys.
|
|
*/
|
|
set storeHashFunction(hashFunction: StoreHashFunction | undefined);
|
|
/**
|
|
* Gets the store, which is an array of maps.
|
|
* @returns {Array<Map<K, V>>} The array of maps in the store.
|
|
*/
|
|
get store(): Array<Map<K, V>>;
|
|
/**
|
|
* Gets the map at the specified index in the store.
|
|
* @param {number} index - The index of the map to retrieve.
|
|
* @returns {Map<K, V>} The map at the specified index.
|
|
*/
|
|
getStoreMap(index: number): Map<K, V>;
|
|
/**
|
|
* Initializes the store with empty maps.
|
|
* This method is called when the BigMap instance is created.
|
|
*/
|
|
initStore(): void;
|
|
/**
|
|
* Gets the store for a specific key.
|
|
* The store is determined by applying the hash function to the key and the store size.
|
|
* If the hash function is not set, it defaults to using the default hash function.
|
|
* @param key - The key for which to get the store.
|
|
* @returns The store for the specified key.
|
|
*/
|
|
getStore(key: K): Map<K, V>;
|
|
/**
|
|
* Returns an iterable of key-value pairs in the map.
|
|
* @returns {IterableIterator<[K, V]>} An iterable of key-value pairs in the map.
|
|
*/
|
|
entries(): IterableIterator<[K, V]>;
|
|
/**
|
|
* Returns an iterable of keys in the map.
|
|
* @returns {IterableIterator<K>} An iterable of keys in the map.
|
|
*/
|
|
keys(): IterableIterator<K>;
|
|
/**
|
|
* Returns an iterable of values in the map.
|
|
* @returns {IterableIterator<V>} An iterable of values in the map.
|
|
*/
|
|
values(): IterableIterator<V>;
|
|
/**
|
|
* Returns an iterator that iterates over the key-value pairs in the map.
|
|
* @returns {IterableIterator<[K, V]>} An iterator that iterates over the key-value pairs in the map.
|
|
*/
|
|
[Symbol.iterator](): IterableIterator<[K, V]>;
|
|
/**
|
|
* Clears all entries in the map.
|
|
* @returns {void} This method does not return a value.
|
|
*/
|
|
clear(): void;
|
|
/**
|
|
* Deletes a key-value pair from the map.
|
|
* @param {K} key - The key of the entry to delete.
|
|
* @returns {boolean} Returns true if the entry was deleted, false if the key was not found.
|
|
*/
|
|
delete(key: K): boolean;
|
|
/**
|
|
* Calls a provided callback function once for each key-value pair in the map.
|
|
* @param {function} callbackfn - The function to execute for each key-value pair.
|
|
* @param {any} [thisArg] - An optional value to use as `this` when executing the callback.
|
|
*/
|
|
forEach(callbackfn: (value: V, key: K, map: Map<K, V>) => void, thisArg?: any): void;
|
|
/**
|
|
* Gets the value associated with the specified key.
|
|
* @param {K} key - The key of the entry to get.
|
|
* @returns {V | undefined} The value associated with the key, or undefined if the key does not exist.
|
|
*/
|
|
get(key: K): V | undefined;
|
|
/**
|
|
* Checks if the map contains a key.
|
|
* @param {K} key - The key to check for existence.
|
|
* @returns {boolean} Returns true if the key exists, false otherwise.
|
|
*/
|
|
has(key: K): boolean;
|
|
/**
|
|
* Sets the value for a key in the map.
|
|
* @param {K} key - The key of the entry to set.
|
|
* @param {V} value - The value to set for the entry.
|
|
* @returns {Map<K, V>} The map instance.
|
|
*/
|
|
set(key: K, value: V): Map<K, V>;
|
|
/**
|
|
* Gets the number of entries in the map.
|
|
* @returns {number} The number of entries in the map.
|
|
*/
|
|
get size(): number;
|
|
}
|
|
/**
|
|
* Will create a Keyv instance with the BigMap adapter. This will also set the namespace and useKeyPrefix to false.
|
|
* @param {BigMapOptions} options - Options for the BigMap adapter such as storeSize and storeHashFunction.
|
|
* @returns {Keyv} - Keyv instance with the BigMap adapter
|
|
*/
|
|
declare function createKeyv<K = string, V = unknown>(options?: BigMapOptions): Keyv;
|
|
|
|
export { BigMap, type BigMapOptions, type MapInterfacee, type StoreHashFunction, createKeyv, defaultHashFunction };
|