Socket
Socket
Sign inDemoInstall

promised-map

Package Overview
Dependencies
0
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.2.0 to 0.3.0

16

package.json
{
"name": "promised-map",
"version": "0.2.0",
"version": "0.3.0",
"description": "A map of promises that can be resolved or rejected by key",

@@ -17,2 +17,6 @@ "author": {

"main": "src/index.js",
"files": [
"src",
"README.md"
],
"scripts": {

@@ -41,8 +45,8 @@ "lint": "eslint src test",

"chai": "^4.2.0",
"eslint": "^6.6.0",
"eslint-plugin-mocha": "^6.2.1",
"husky": "^3.0.9",
"lint-staged": "^9.4.2",
"eslint": "^7.18.0",
"eslint-plugin-mocha": "^8.0.0",
"husky": "^4.3.8",
"lint-staged": "^10.5.3",
"markdown-toc": "^1.2.0",
"mocha": "^6.2.2"
"mocha": "^8.2.1"
},

@@ -49,0 +53,0 @@ "keywords": [

# promised-map
[![Actions Status](https://github.com/vitalets/promised-map/workflows/autotests/badge.svg)](https://github.com/vitalets/promised-map/actions)
[![npm](https://img.shields.io/npm/v/promised-map.svg)](https://www.npmjs.com/package/promised-map)

@@ -28,2 +29,3 @@ [![license](https://img.shields.io/npm/l/promised-map.svg)](https://www.npmjs.com/package/promised-map)

// create promise associated with key 'foo'
const promise = map.wait('foo');

@@ -39,2 +41,11 @@

map.has('foo');
// resolve all promises and clear map
map.resolveAll(42);
// reject all promises and clear map
map.rejectAll(new Error('error'));
// iterate all promises
map.forEach(({ promise, resolve, reject, timestamp }, key) => { ... });
```

@@ -41,0 +52,0 @@

@@ -5,3 +5,6 @@ /**

class PromisedMap {
module.exports = class PromisedMap {
/**
* Constructor.
*/
constructor() {

@@ -11,2 +14,7 @@ this._map = new Map();

/**
* Returns map size.
*
* @returns {number}
*/
get size() {

@@ -16,2 +24,9 @@ return this._map.size;

/**
* Creates and returns new promise for provided key.
* If key already exists in map - existing pending promise will be returned.
*
* @param {*} key
* @returns {Promise}
*/
wait(key) {

@@ -32,2 +47,9 @@ let {promise} = this._map.get(key) || {};

/**
* Resolves promise in map by key and removes key from map.
* If no such key in map - nothing happens.
*
* @param {*} key
* @param {*} value
*/
resolve(key, value) {

@@ -41,2 +63,9 @@ const {resolve} = this._map.get(key) || {};

/**
* Rejects promise in map by key and removes key from map.
* If no such key in map - nothing happens.
*
* @param {*} key
* @param {*} value
*/
reject(key, value) {

@@ -50,2 +79,8 @@ const {reject} = this._map.get(key) || {};

/**
* Does map has provided key.
*
* @param {*} key
* @returns {boolean}
*/
has(key) {

@@ -55,2 +90,9 @@ return this._map.has(key);

/**
* Deletes key from map.
* Caution: previously returned promise will no be resolved or rejected.
*
* @param {*} key
* @returns {boolean}
*/
delete(key) {

@@ -60,2 +102,7 @@ return this._map.delete(key);

/**
* Resolves all promise in map and removes all keys.
*
* @param {*} value
*/
resolveAll(value) {

@@ -66,2 +113,7 @@ this._map.forEach(({resolve}) => resolve(value));

/**
* Rejects all promise in map and removes all keys.
*
* @param {*} value
*/
rejectAll(value) {

@@ -72,7 +124,10 @@ this._map.forEach(({reject}) => reject(value));

/**
* Iterator.
*
* @param {function} fn
*/
forEach(fn) {
this._map.forEach(fn);
}
}
module.exports = PromisedMap;
};
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