123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- declare namespace QuickLRU {
- interface Options {
- /**
- The maximum number of items before evicting the least recently used items.
- */
- readonly maxSize: number;
- }
- }
- declare class QuickLRU<KeyType extends unknown, ValueType extends unknown>
- implements Iterable<[KeyType, ValueType]> {
- /**
- The stored item count.
- */
- readonly size: number;
- /**
- Simple ["Least Recently Used" (LRU) cache](https://en.m.wikipedia.org/wiki/Cache_replacement_policies#Least_Recently_Used_.28LRU.29).
- 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.
- @example
- ```
- import QuickLRU = require('quick-lru');
- const lru = new QuickLRU({maxSize: 1000});
- lru.set('🦄', '🌈');
- lru.has('🦄');
- //=> true
- lru.get('🦄');
- //=> '🌈'
- ```
- */
- constructor(options: QuickLRU.Options);
- [Symbol.iterator](): IterableIterator<[KeyType, ValueType]>;
- /**
- Set an item.
- @returns The list instance.
- */
- set(key: KeyType, value: ValueType): this;
- /**
- Get an item.
- @returns The stored item or `undefined`.
- */
- get(key: KeyType): ValueType | undefined;
- /**
- Check if an item exists.
- */
- has(key: KeyType): boolean;
- /**
- Get an item without marking it as recently used.
- @returns The stored item or `undefined`.
- */
- peek(key: KeyType): ValueType | undefined;
- /**
- Delete an item.
- @returns `true` if the item is removed or `false` if the item doesn't exist.
- */
- delete(key: KeyType): boolean;
- /**
- Delete all items.
- */
- clear(): void;
- /**
- Iterable for all the keys.
- */
- keys(): IterableIterator<KeyType>;
- /**
- Iterable for all the values.
- */
- values(): IterableIterator<ValueType>;
- }
- export = QuickLRU;
|