https://github.com/dutu/time-limited-map-set
time limited map and set
https://github.com/dutu/time-limited-map-set
Last synced: 16 days ago
JSON representation
time limited map and set
- Host: GitHub
- URL: https://github.com/dutu/time-limited-map-set
- Owner: dutu
- License: mit
- Created: 2022-06-21T10:29:09.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2022-08-03T11:19:49.000Z (almost 4 years ago)
- Last Synced: 2025-03-06T02:32:31.077Z (over 1 year ago)
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/time-limited-map-set
- Size: 9.77 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
time-limited-map-set
====
[](https://travis-ci.com/dutu/time-limited-map-set)
Extend `Map` and `Set` standard build-in objects, with the options for the collection items to be automatically removed after a period of time.
`TimeLimitedMap` and `TimeLimitedSet` inherit all methods of `Map` and `Set` standard build-in objects.
Examples:
```js
const map = new TimeLimitedMap(1000, (k, v, insertedMts) => console.log(k))
// add a new pair to the map
// it will be automatically removed after 1000 milliseconds and the callback function will be called
map.set('key', 'value')
const set = new TimeLimitedSet(500)
// add a new item to the set
// it will be automatically removed after 500 milliseconds
set.add('item')
// add a new item to the set, which will not be removed automatically
set.add('item2', false)
```
## Constructor
### `new TimeLimitedMap([expiryMs] [, callback] [, iterable])`
### `new TimeLimitedSet([expiryMs] [, callback] [, iterable])`
Optional parameters can be passed to the constructor:
* `expiryMs` - Indicates the duration in milliseconds after which the items are automatically removed from the collection. If `undefined` items are not removed from the collection.
* `callback` - Function to be called when an expired item is removed from the collection.
The function is called with parameters `key`, `value` (only for `TimeLimitedMap`) and `mts` (inserted millisecond-timestamp).
* `iterable` - As for the `Map` and `Set` build-in objects, an iterable whose elements are added to the collection.
## Methods
`TimeLimitedMap` and `TimeLimitedSet` inherit all methods of `Map` and `Set` standard build-in objects.
### Changed methods:
### `set(key, value, [expire = true])`
* `expire` - Additional optional parameter. Indicates whether the item should or should not be removed after `expiryMs` period has passed. Default is `true`.
### `add(value, [expire = true])`
* `expire` - Additional optional parameter. Indicates whether the item should or should not be removed after `expiryMs` period has passed. Default is `true`.
### New Methods:
### `getExpiryMts(key)`
Returns expiry millisecond-time of a particular item in the collection.