Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/medikoo/es6-weak-map
WeakMap collection as specified in ECMAScript6
https://github.com/medikoo/es6-weak-map
Last synced: 4 days ago
JSON representation
WeakMap collection as specified in ECMAScript6
- Host: GitHub
- URL: https://github.com/medikoo/es6-weak-map
- Owner: medikoo
- License: isc
- Created: 2013-10-24T14:42:42.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2021-06-30T16:03:55.000Z (over 3 years ago)
- Last Synced: 2025-01-01T11:07:12.978Z (11 days ago)
- Language: JavaScript
- Size: 53.7 KB
- Stars: 29
- Watchers: 6
- Forks: 7
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-ponyfills - es6-weak-map - [`WeakMap`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap) (Uncategorised)
README
[![Build status][nix-build-image]][nix-build-url]
[![Windows status][win-build-image]][win-build-url]
![Transpilation status][transpilation-image]
[![npm version][npm-image]][npm-url]# es6-weak-map
## WeakMap collection as specified in ECMAScript6
_Roughly inspired by Mark Miller's and Kris Kowal's [WeakMap implementation](https://github.com/drses/weak-map)_.
Differences are:
- Assumes compliant ES5 environment (no weird ES3 workarounds or hacks)
- Well modularized CJS style
- Based on one solution.### Limitations
- Will fail on non extensible objects provided as keys
### Installation
$ npm install es6-weak-map
To port it to Browser or any other (non CJS) environment, use your favorite CJS bundler. No favorite yet? Try: [Browserify](http://browserify.org/), [Webmake](https://github.com/medikoo/modules-webmake) or [Webpack](http://webpack.github.io/)
### Usage
If you want to make sure your environment implements `WeakMap`, do:
```javascript
require("es6-weak-map/implement");
```If you'd like to use native version when it exists and fallback to polyfill if it doesn't, but without implementing `WeakMap` on global scope, do:
```javascript
var WeakMap = require("es6-weak-map");
```If you strictly want to use polyfill even if native `WeakMap` exists, do:
```javascript
var WeakMap = require("es6-weak-map/polyfill");
```#### API
Best is to refer to [specification](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-weakmap-objects). Still if you want quick look, follow example:
```javascript
var WeakMap = require("es6-weak-map");var map = new WeakMap();
var obj = {};map.set(obj, "foo"); // map
map.get(obj); // 'foo'
map.has(obj); // true
map.delete(obj); // true
map.get(obj); // undefined
map.has(obj); // false
map.set(obj, "bar"); // map
map.has(obj); // false
```## Tests
$ npm test
## Security contact information
To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security). Tidelift will coordinate the fix and disclosure.
---
Get professional support for d with a Tidelift subscription
Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies.
[nix-build-image]: https://semaphoreci.com/api/v1/medikoo-org/es6-weak-map/branches/master/shields_badge.svg
[nix-build-url]: https://semaphoreci.com/medikoo-org/es6-weak-map
[win-build-image]: https://ci.appveyor.com/api/projects/status/1c73c57pg4s6lwmu?svg=true
[win-build-url]: https://ci.appveyor.com/project/medikoo/es6-weak-map
[transpilation-image]: https://img.shields.io/badge/transpilation-free-brightgreen.svg
[npm-image]: https://img.shields.io/npm/v/es6-weak-map.svg
[npm-url]: https://www.npmjs.com/package/es6-weak-map