Have ideas to improve npm?Join in the discussion! »

    es6-weak-map
    DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/es6-weak-map package

    2.0.3 • Public • Published

    Build status Windows status Transpilation status npm version

    es6-weak-map

    WeakMap collection as specified in ECMAScript6

    Roughly inspired by Mark Miller's and Kris Kowal's WeakMap implementation.

    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, Webmake or Webpack

    Usage

    If you want to make sure your environment implements WeakMap, do:

    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:

    var WeakMap = require("es6-weak-map");

    If you strictly want to use polyfill even if native WeakMap exists, do:

    var WeakMap = require("es6-weak-map/polyfill");

    API

    Best is to refer to specification. Still if you want quick look, follow example:

    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
    

    Install

    npm i es6-weak-map

    DownloadsWeekly Downloads

    3,755,390

    Version

    2.0.3

    License

    ISC

    Unpacked Size

    12.5 kB

    Total Files

    20

    Last publish

    Collaborators

    • avatar