map-age-cleaner
Advanced tools
Comparing version 0.1.3 to 0.2.0
@@ -12,3 +12,3 @@ interface Entry { | ||
*/ | ||
export default function mapAgeCleaner<K = any, V extends MaxAgeEntry = MaxAgeEntry>(map: Map<K, V>): any; | ||
declare function mapAgeCleaner<K = any, V extends MaxAgeEntry = MaxAgeEntry>(map: Map<K, V>): any; | ||
/** | ||
@@ -20,3 +20,3 @@ * Automatically cleanup the items in the provided `map`. | ||
*/ | ||
export default function mapAgeCleaner<K = any, V = Entry>(map: Map<K, V>, property: string): any; | ||
export {}; | ||
declare function mapAgeCleaner<K = any, V = Entry>(map: Map<K, V>, property: string): any; | ||
export = mapAgeCleaner; |
"use strict"; | ||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
return new (P || (P = Promise))(function (resolve, reject) { | ||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } | ||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } | ||
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } | ||
step((generator = generator.apply(thisArg, _arguments || [])).next()); | ||
}); | ||
}; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const p_defer_1 = __importDefault(require("p-defer")); | ||
const pDefer = require("p-defer"); | ||
function mapAgeCleaner(map, property = 'maxAge') { | ||
@@ -19,3 +7,3 @@ let processingKey; | ||
let processingDeferred; | ||
const cleanup = () => __awaiter(this, void 0, void 0, function* () { | ||
const cleanup = async () => { | ||
if (processingKey !== undefined) { | ||
@@ -25,4 +13,4 @@ // If we are already processing an item, we can safely exit | ||
} | ||
const setupTimer = (item) => __awaiter(this, void 0, void 0, function* () { | ||
processingDeferred = p_defer_1.default(); | ||
const setupTimer = async (item) => { | ||
processingDeferred = pDefer(); | ||
const delay = item[1][property] - Date.now(); | ||
@@ -50,6 +38,6 @@ if (delay <= 0) { | ||
return processingDeferred.promise; | ||
}); | ||
}; | ||
try { | ||
for (const entry of map) { | ||
yield setupTimer(entry); | ||
await setupTimer(entry); | ||
} | ||
@@ -61,3 +49,3 @@ } | ||
processingKey = undefined; | ||
}); | ||
}; | ||
const reset = () => { | ||
@@ -93,5 +81,2 @@ processingKey = undefined; | ||
} | ||
exports.default = mapAgeCleaner; | ||
// Add support for CJS | ||
module.exports = mapAgeCleaner; | ||
module.exports.default = mapAgeCleaner; |
{ | ||
"name": "map-age-cleaner", | ||
"version": "0.1.3", | ||
"version": "0.2.0", | ||
"description": "Automatically cleanup expired items in a Map", | ||
@@ -14,3 +14,3 @@ "license": "MIT", | ||
"engines": { | ||
"node": ">=6" | ||
"node": ">=7.6" | ||
}, | ||
@@ -17,0 +17,0 @@ "scripts": { |
# map-age-cleaner | ||
[![Build Status](https://travis-ci.org/SamVerschueren/map-age-cleaner.svg?branch=master)](https://travis-ci.org/SamVerschueren/map-age-cleaner) [![codecov](https://codecov.io/gh/SamVerschueren/map-age-cleaner/badge.svg?branch=master)](https://codecov.io/gh/SamVerschueren/map-age-cleaner?branch=master) | ||
![CI](https://github.com/SamVerschueren/map-age-cleaner/workflows/CI/badge.svg) [![codecov](https://codecov.io/gh/SamVerschueren/map-age-cleaner/badge.svg?branch=master)](https://codecov.io/gh/SamVerschueren/map-age-cleaner?branch=master) | ||
@@ -18,3 +18,3 @@ > Automatically cleanup expired items in a Map | ||
```js | ||
import mapAgeCleaner from 'map-age-cleaner'; | ||
import mapAgeCleaner = require('map-age-cleaner'); | ||
@@ -69,1 +69,14 @@ const map = new Map([ | ||
MIT © [Sam Verschueren](https://github.com/SamVerschueren) | ||
--- | ||
<div align="center"> | ||
<b> | ||
<a href="https://tidelift.com/subscription/pkg/npm-map-age-cleaner?utm_source=npm-map-age-cleaner&utm_medium=referral&utm_campaign=enterprise">Get professional support for this package with a Tidelift subscription</a> | ||
</b> | ||
<br> | ||
<sub> | ||
Tidelift helps make open source sustainable for maintainers while giving companies<br>assurances about security, maintenance, and licensing for their dependencies. | ||
</sub> | ||
</div> |
81
7794
97