npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

typescript-map

v0.1.0

Published

ES6 Map Implemented in TypeScript

Downloads

24,485

Readme

typescript-map

ES6 Map implemented in TypeScript.

This is not an ES6 Map polyfill, it is not a pure implementation (but it's really close!). I just needed a way to declare maps in my ts code in a safe, reusable way without taking dozens of kilobytes.

Just over 1 kilobyte gzipped. :)

Note: This library doesn't use a hashing function to keep the implmentation small and simple, this means if you plan to put more than a few hundred keys into the map or if the map is on a hot path you should use es6-map instead.

Installation

npm install typescript-map

The lib creates a single global variable: TSMap

If you're using typescript/ES6:

import { TSMap } from "typescript-map"

If you're using commonjs:

const TSMap = require("typescript-map").TSMap;

If you're just using it in the browser:

  1. Download dist/tsmap.min.js

  2. Include it in your head: <script src="tsmap.min.js"></script>.

Usage

var myMap = new TSMap();
myMap.set('foo','bar');
console.log(myMap.get('foo')) //<= "bar"

//Typescript
var myMap = new TSMap<string,number>();
myMap.set('foo',2);

//ES6 Maps take an array of arrays as the optional init object:
var myMap = new TSMap([
    ['foo','bar'],
    ['key','value']
])

Also includes several functions that aren't in the spec

// Safely retrieve a deeply nested object, works for nested TSMaps, objects and arrays.
let someValue = myMap.deepGet(["deeply","nested","property"]);

// Insert items keeping the keys sorted (Uses a super fast binary insert method)
myMap.sortedSet(5, "apple");
myMap.sortedSet(2, "orange");
myMap.sortedSet(7, "bannana");
console.log(myMap.keys()) // <= [2, 5, 7];

//Import JSON into the map
var myMap = new TSMap().fromJSON({
    foo:'bar',
    key:'value'
}, true); // <= optional second parameter, if "true" nested objects should be converted to TSMaps.

//Export the map to JSON
var myJSON = myMap.toJSON();

//Map the map (insert meme here).  Returns an array, not the map.
var anArray = myMap.map(function(value, key) {
    return value + " oh look, another hippy".
});

//Filter the map (removes items in the current map)
myMap.filter(function(value, key) {
    return key%2; //Remove all even objects;
});

Everything is documented in the src/index.ts file and the definitions file is pretty clear. If you need a full doc on using Maps look here: MDN Map Docs

Building

npm install && npm run build

License

MIT