-
-
Notifications
You must be signed in to change notification settings - Fork 49
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Refactor TypeScript definition to CommonJS compatible export (#12)
- Loading branch information
1 parent
c206b5c
commit 36d8558
Showing
4 changed files
with
61 additions
and
45 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,73 +1,90 @@ | ||
export interface Options { | ||
/** | ||
* The maximum number of items before evicting the least recently used items. | ||
*/ | ||
readonly maxSize: number; | ||
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. | ||
*/ | ||
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. | ||
*/ | ||
constructor(options: Options); | ||
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 an item. | ||
@returns The list instance. | ||
*/ | ||
set(key: KeyType, value: ValueType): this; | ||
|
||
/** | ||
* Get an item. | ||
* | ||
* @returns The stored item or `undefined`. | ||
*/ | ||
Get an item. | ||
@returns The stored item or `undefined`. | ||
*/ | ||
get(key: KeyType): ValueType | undefined; | ||
|
||
/** | ||
* Check if an item exists. | ||
*/ | ||
Check if an item exists. | ||
*/ | ||
has(key: KeyType): boolean; | ||
|
||
/** | ||
* Get an item without marking it as recently used. | ||
* | ||
* @returns The stored item or `undefined`. | ||
*/ | ||
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 an item. | ||
@returns `true` if the item is removed or `false` if the item doesn't exist. | ||
*/ | ||
delete(key: KeyType): boolean; | ||
|
||
/** | ||
* Delete all items. | ||
*/ | ||
Delete all items. | ||
*/ | ||
clear(): void; | ||
|
||
/** | ||
* Iterable for all the keys. | ||
*/ | ||
Iterable for all the keys. | ||
*/ | ||
keys(): IterableIterator<KeyType>; | ||
|
||
/** | ||
* Iterable for all the values. | ||
*/ | ||
Iterable for all the values. | ||
*/ | ||
values(): IterableIterator<ValueType>; | ||
} | ||
|
||
export default QuickLRU; | ||
export = QuickLRU; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -112,4 +112,3 @@ class QuickLRU { | |
} | ||
|
||
module.exports = QuickLRU; | ||
module.exports.default = QuickLRU; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters