Socket
Socket
Sign inDemoInstall

map-age-cleaner

Package Overview
Dependencies
1
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.1.3 to 0.2.0

6

dist/index.d.ts

@@ -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>
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc