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

dictionaryjs-es6

v1.0.4

Published

A Dictionary (Associative Array like) Class for ES6. Now supporting dot and bracket access through proxy, and generator/yield control flows.

Downloads

1

Readme

WARNING

This module has been deprecated. Please use the latest release of dictionaryjs which now supports all es6 features.

See: https://www.npmjs.com/package/dictionaryjs https://github.com/phanxgames/dictionaryjs


A Dictionary (Associative Array like) Class for ES6. Now supporting dot and bracket access through proxy, and generator/yield control flows.

Features

  • Stores key/value pairs within a Associative Array like collections (Dictionaries).
  • NEW! Use dot operator and brackets to access keys.
  • NEW! Remove key using the DELETE operator.
  • NEW! Iterator to support for..of looping.
  • NEW! hasOwnProperty method
  • NEW! Generator/yield async control flow (via suspend module) support.
  • Set and Get methods for accessing keys.
  • GetDefault method with default value if value is not found.
  • Remove method to remove key from collection.
  • Size method to get total key count within collection.
  • Built-in forEach and asyncForEach methods for looping.
  • Empty and asyncEmpty to remove all entries from collection.
  • Has method checking if key is within collection.

install

Requirements

  • ECMAScript 2015 (ES6)
  • Node.JS 6.2.2 or later (tested on 6.2.2)

You may find the older version (with less features) but will work with older version of Node.js: dictionaryjs

Basic Example

Accessing Keys

You may access keys using the get/set methods, but also using the dot operator and brackets.

You may also use the getDefault method to return the default value if key was not found (or is null):

Checking if Key exists

Deleting Keys

To remove a key, you may use the remove method, or the "delete" operator command:

To empty out the collection:

Looping through keys

ForEach (Blocking)

AsyncForEach (Non-Blocking)

Using the (for...of) loop:

Each item (as just the value) within the collection can be accessed in a for...of loop. This is blocking. This will not return the key, if you need the key use another looping method.

Getting the Collection Size:

Generator/yield Async control flow using Suspend (recommended)

Using the suspend module you may write async code using the new yield command. Here is an example that will show how you can write async code in a very clean manner:

Other methods

These methods you may not find useful, but are documented in case you do:

  • getKeys() - Returns an array of keys
  • invalidate() - Invalidates the keys, used internally.
  • setResume(resume) - used to set the suspend.resume reference, usually set in the constructor.