umap
Advanced tools
Comparing version 0.0.1 to 1.0.0
{ | ||
"name": "umap", | ||
"version": "0.0.1", | ||
"description": "The smallest, yet common, Map and WeakMap utility ever", | ||
"version": "1.0.0", | ||
"description": "The smallest, yet handy, Map and WeakMap utility ever", | ||
"main": "./cjs/index.js", | ||
@@ -43,3 +43,11 @@ "scripts": { | ||
}, | ||
"unpkg": "min.js" | ||
"unpkg": "min.js", | ||
"repository": { | ||
"type": "git", | ||
"url": "git+https://github.com/WebReflection/umap.git" | ||
}, | ||
"bugs": { | ||
"url": "https://github.com/WebReflection/umap/issues" | ||
}, | ||
"homepage": "https://github.com/WebReflection/umap#readme" | ||
} |
@@ -1,9 +0,10 @@ | ||
# <em>µ</em>map | ||
# <em>µ</em>map 🗺 | ||
[![Build Status](https://travis-ci.com/WebReflection/umap.svg?branch=master)](https://travis-ci.com/WebReflection/umap) [![Coverage Status](https://coveralls.io/repos/github/WebReflection/umap/badge.svg?branch=master)](https://coveralls.io/github/WebReflection/umap?branch=master) | ||
The smallest, yet common, `Map` and `WeakMap` utility ever. | ||
The smallest, yet handy, `Map` and `WeakMap` utility ever. | ||
```js | ||
import umap from 'umap'; | ||
import umap from 'umap'; | ||
// const umap = require('umap'); | ||
@@ -14,3 +15,3 @@ const map = umap(new Map); | ||
(map.get(1) || map.set(1, Math.random())), | ||
'the most common pattern ever I have with Map instances' | ||
'a very common pattern I have with Map instances' | ||
); | ||
@@ -22,4 +23,28 @@ | ||
(weakMap.get(map) || weakMap.set(map, Math.random())), | ||
'which also I use a lot with WeakMap instances' | ||
'which I use even more with WeakMap instances' | ||
); | ||
``` | ||
### 🤔 Reason | ||
I am super tired of creating workarounds for the fact `map.set(key, value)` doesn't return value but the `map` itself, and so does the _WeakMap_. | ||
This module will help, at least me, dropping all one-off helpers, here and there, to always do the same thing: | ||
```js | ||
// before 😢 | ||
const cache = new WeakMap; | ||
const setThing = (key, value) => { | ||
cache.set(key, value); | ||
return value; | ||
}; | ||
const thing = cache.get(key) || setThing(key, value); | ||
// with umap 🎉 | ||
const cache = umap(new WeakMap); | ||
const thing = cache.get(key) || cache.set(key, value); | ||
``` | ||
### 🌈 It's Done! | ||
This module is meant to solve one pattern only, and it does exactly that, so that if you store _falsy_ values in _Maps_ or _WeakMaps_, it is not a concern of this module. |
No bug tracker
MaintenancePackage does not have a linked bug tracker in package.json.
Found 1 instance in 1 package
No repository
Supply chain riskPackage does not have a linked source code repository. Without this field, a package will have no reference to the location of the source code use to generate the package.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
No website
QualityPackage does not have a website.
Found 1 instance in 1 package
4823
0
0
49
0