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

    stringmap

    0.2.2 • Public • Published

    stringmap.js

    A fast and robust stringmap implementation that can hold any string keys, including __proto__, with minimal overhead compared to a plain object. Works in node and browsers.

    The API is created to be as close to the ES6 Map API as possible. Prefer sm.remove("key") for deleting a key. ES6 Map uses map.delete("key") instead and for that reason sm['delete']("key") is available as a stringmap alias as well. Never do sm.delete("key") unless you're certain to be in the land of ES5 or later.

    Examples

    Available in examples.js

    var StringMap = require("stringmap");
     
    var sm1 = new StringMap();
    sm1.set("greeting", "yoyoma");
    sm1.set("check", true);
    sm1.set("__proto__", -1);
    console.log(sm1.has("greeting")); // true
    console.log(sm1.get("__proto__")); // -1
    sm1.remove("greeting");
    console.log(sm1.keys()); // [ 'check', '__proto__' ]
    console.log(sm1.values()); // [ true, -1 ]
    console.log(sm1.items()); // [ [ 'check', true ], [ '__proto__', -1 ] ]
    console.log(sm1.toString()); // {"check":true,"__proto__":-1}
     
    var sm2 = new StringMap({
        one: 1,
        two: 2,
    });
    console.log(sm2.map(function(value, key) {
        return value * value;
    })); // [ 1, 4 ]
    sm2.forEach(function(value, key) {
        // ...
    });
    console.log(sm2.isEmpty()); // false
    console.log(sm2.size()); // 2
     
    var sm3 = sm1.clone();
    sm3.merge(sm2);
    sm3.setMany({
        a: {},
        b: [],
    });
    console.log(sm3.toString()); // {"check":true,"one":1,"two":2,"a":{},"b":[],"__proto__":-1}

    Installation

    Node

    Install using npm

    npm install stringmap
    
    var StringMap = require("stringmap");

    Browser

    Clone the repo and include it in a script tag

    git clone https://github.com/olov/stringmap.git
    
    <script src="stringmap/stringmap.js"></script>

    Keywords

    none

    Install

    npm i stringmap

    DownloadsWeekly Downloads

    186,157

    Version

    0.2.2

    License

    MIT

    Last publish

    Collaborators

    • avatar