68 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			68 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|  | # map-age-cleaner
 | ||
|  | 
 | ||
|  | [](https://travis-ci.org/SamVerschueren/map-age-cleaner) [](https://codecov.io/gh/SamVerschueren/map-age-cleaner?branch=master) | ||
|  | 
 | ||
|  | > Automatically cleanup expired items in a Map
 | ||
|  | 
 | ||
|  | 
 | ||
|  | ## Install
 | ||
|  | 
 | ||
|  | ``` | ||
|  | $ npm install map-age-cleaner | ||
|  | ``` | ||
|  | 
 | ||
|  | 
 | ||
|  | ## Usage
 | ||
|  | 
 | ||
|  | ```js | ||
|  | import mapAgeCleaner from 'map-age-cleaner'; | ||
|  | 
 | ||
|  | const map = new Map([ | ||
|  | 	['unicorn', {data: '🦄', maxAge: Date.now() + 1000}] | ||
|  | ]); | ||
|  | 
 | ||
|  | mapAgeCleaner(map); | ||
|  | 
 | ||
|  | map.has('unicorn'); | ||
|  | //=> true | ||
|  | 
 | ||
|  | // Wait for 1 second... | ||
|  | 
 | ||
|  | map.has('unicorn'); | ||
|  | //=> false | ||
|  | ``` | ||
|  | 
 | ||
|  | > **Note**: Items have to be ordered ascending based on the expiry property. This means that the item which will be expired first, should be in the first position of the `Map`.
 | ||
|  | 
 | ||
|  | 
 | ||
|  | ## API
 | ||
|  | 
 | ||
|  | ### mapAgeCleaner(map, [property])
 | ||
|  | 
 | ||
|  | Returns the `Map` instance. | ||
|  | 
 | ||
|  | #### map
 | ||
|  | 
 | ||
|  | Type: `Map` | ||
|  | 
 | ||
|  | Map instance which should be cleaned up. | ||
|  | 
 | ||
|  | #### property
 | ||
|  | 
 | ||
|  | Type: `string`<br> | ||
|  | Default: `maxAge` | ||
|  | 
 | ||
|  | Name of the property which olds the expiry timestamp. | ||
|  | 
 | ||
|  | 
 | ||
|  | ## Related
 | ||
|  | 
 | ||
|  | - [expiry-map](https://github.com/SamVerschueren/expiry-map) - A `Map` implementation with expirable items | ||
|  | - [expiry-set](https://github.com/SamVerschueren/expiry-set) - A `Set` implementation with expirable keys | ||
|  | - [mem](https://github.com/sindresorhus/mem) - Memoize functions | ||
|  | 
 | ||
|  | 
 | ||
|  | ## License
 | ||
|  | 
 | ||
|  | MIT © [Sam Verschueren](https://github.com/SamVerschueren) |