CoolFace
Apppublic

AK-21/Graphite-Industrial-Intelligence

sourceHugging Faceupdated 3mo agoView on Hugging Face
0likes
index.d.ts129 linesDownload Raw Back to quick-lru
1declare namespace QuickLRU {2	interface Options<KeyType, ValueType> {3		/**4		The maximum number of milliseconds an item should remain in the cache.5 6		@default Infinity7 8		By default, `maxAge` will be `Infinity`, which means that items will never expire.9		Lazy expiration upon the next write or read call.10 11		Individual expiration of an item can be specified by the `set(key, value, maxAge)` method.12		*/13		readonly maxAge?: number;14 15		/**16		The maximum number of items before evicting the least recently used items.17		*/18		readonly maxSize: number;19 20		/**21		Called right before an item is evicted from the cache.22 23		Useful for side effects or for items like object URLs that need explicit cleanup (`revokeObjectURL`).24		*/25		onEviction?: (key: KeyType, value: ValueType) => void;26	}27}28 29declare class QuickLRU<KeyType, ValueType>30	implements Iterable<[KeyType, ValueType]> {31	/**32	The stored item count.33	*/34	readonly size: number;35 36	/**37	Simple ["Least Recently Used" (LRU) cache](https://en.m.wikipedia.org/wiki/Cache_replacement_policies#Least_Recently_Used_.28LRU.29).38 39	The instance is [`iterable`](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Iteration_protocols) so you can use it directly in a [`for…of`](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/for...of) loop.40 41	@example42	```43	import QuickLRU = require('quick-lru');44 45	const lru = new QuickLRU({maxSize: 1000});46 47	lru.set('πŸ¦„', '🌈');48 49	lru.has('πŸ¦„');50	//=> true51 52	lru.get('πŸ¦„');53	//=> '🌈'54	```55	*/56	constructor(options: QuickLRU.Options<KeyType, ValueType>);57 58	[Symbol.iterator](): IterableIterator<[KeyType, ValueType]>;59 60	/**61	Set an item. Returns the instance.62 63	Individual expiration of an item can be specified with the `maxAge` option. If not specified, the global `maxAge` value will be used in case it is specified in the constructor, otherwise the item will never expire.64 65	@returns The list instance.66	*/67	set(key: KeyType, value: ValueType, options?: {maxAge?: number}): this;68 69	/**70	Get an item.71 72	@returns The stored item or `undefined`.73	*/74	get(key: KeyType): ValueType | undefined;75 76	/**77	Check if an item exists.78	*/79	has(key: KeyType): boolean;80 81	/**82	Get an item without marking it as recently used.83 84	@returns The stored item or `undefined`.85	*/86	peek(key: KeyType): ValueType | undefined;87 88	/**89	Delete an item.90 91	@returns `true` if the item is removed or `false` if the item doesn't exist.92	*/93	delete(key: KeyType): boolean;94 95	/**96	Delete all items.97	*/98	clear(): void;99 100	/**101	Update the `maxSize` in-place, discarding items as necessary. Insertion order is mostly preserved, though this is not a strong guarantee.102 103	Useful for on-the-fly tuning of cache sizes in live systems.104	*/105	resize(maxSize: number): void;106 107	/**108	Iterable for all the keys.109	*/110	keys(): IterableIterator<KeyType>;111 112	/**113	Iterable for all the values.114	*/115	values(): IterableIterator<ValueType>;116 117	/**118	Iterable for all entries, starting with the oldest (ascending in recency).119	*/120	entriesAscending(): IterableIterator<[KeyType, ValueType]>;121 122	/**123	Iterable for all entries, starting with the newest (descending in recency).124	*/125	entriesDescending(): IterableIterator<[KeyType, ValueType]>;126}127 128export = QuickLRU;129