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 🙏

© 2026 – Pkg Stats / Ryan Hefner

@itavy/extended-map

v4.0.0

Published

Extended Map

Readme

ExtendedMap

This is a module extendeds native Map providing some extra features:

  • return default value if the requested key does not exist
  • protect against overrite of existing keys

Instalation

npm install @itavy/extended-map

Quick Example

const ExtendedMap = require('@itavy/extended-map').ExtendedMap;
const eMap = new ExtendedMap({
  defaultValue: 'myDefaultValue'
});

console.log('return value:', eMap.get('unknownkey'));

this will produce:

return value: myDefaultValue

API

Objects

Typedefs

itavy/extended-map : object

Kind: global namespace

itavy/extended-map.ExtendedMap

ExtendedMap native map wth a few enhancements

Kind: static class of itavy/extended-map

new ExtendedMap([options])

| Param | Type | Default | Description | | --- | --- | --- | --- | | [options] | itavy/extended-map.ExtendedMapOptions | {} | Map options |

extendedMap.get()

Wrapper for get if no value is found then default value will be returned

Kind: instance method of ExtendedMap
Access: public
See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/get

extendedMap.set()

Wrapper for set if override is not allowed it will throw an error

Kind: instance method of ExtendedMap
Access: public
See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/get

itavy/extended-map.PromisedExtendedMap

ExtendedMap native map wth a few enhancements

Kind: static class of itavy/extended-map

new PromisedExtendedMap([options])

| Param | Type | Default | Description | | --- | --- | --- | --- | | [options] | itavy/extended-map.ExtendedMapOptions | {} | Map options |

promisedExtendedMap.defaultValue : *

Default value for non existing keys

Kind: instance property of PromisedExtendedMap
Default: undefined
Read only: true

promisedExtendedMap.allowOverrite : Boolean

Allow updating the keys

Kind: instance property of PromisedExtendedMap
Default: true
Read only: true

promisedExtendedMap.doNotRejectHas : Boolean

Weather to reject or not if the key does not exist

Kind: instance property of PromisedExtendedMap
Default: false
Read only: true

promisedExtendedMap.doNotRejectDelete : Boolean

Weather to reject or not if key to be deleted does not exist

Kind: instance property of PromisedExtendedMap
Default: false
Read only: true

promisedExtendedMap.get() ⇒ Promise.<*>

Promisified wrapper for get

Kind: instance method of PromisedExtendedMap
Returns: Promise.<*> - resolves with requested value or default value if none found
Access: public

promisedExtendedMap.set() ⇒ Promise.<PromisedExtendedMap>

Promisified wrapper for set it will resolve

Kind: instance method of PromisedExtendedMap
Returns: Promise.<PromisedExtendedMap> - resolves with the new map if overriting is allowed or the key does not exists, otherwise it will reject with an error
Access: public

promisedExtendedMap.has() ⇒ Promise.<Boolean>

Promisified wrapper for has

Kind: instance method of PromisedExtendedMap
Returns: Promise.<Boolean> - resolves with true if key exists or with false if doNotRejectHas is set otherwise it will reject with an error
Access: public

promisedExtendedMap.clear() ⇒ Promise.<undefined>

Promisified wrapper for clear

Kind: instance method of PromisedExtendedMap
Returns: Promise.<undefined> - resolves on success
Access: public

promisedExtendedMap.delete() ⇒ Promise.<Boolean>

Promisified wrapper for delete

Kind: instance method of PromisedExtendedMap
Returns: Promise.<Boolean> - resolves with true if key has been removed or with false if doNotRejectDelete is set otherwise it will reject with an error
Access: public

promisedExtendedMap.values() ⇒ Promise.<Iterator>

Promisified wrapper for values

Kind: instance method of PromisedExtendedMap
Returns: Promise.<Iterator> - resolves on success
Access: public

promisedExtendedMap.valuesAsArray() ⇒ Promise.<Array>

Iterate over all values and put them into an array

Kind: instance method of PromisedExtendedMap
Returns: Promise.<Array> - resolves with an array with all values

promisedExtendedMap.keys() ⇒ Promise.<Iterator>

Promisified wrapper for keys

Kind: instance method of PromisedExtendedMap
Returns: Promise.<Iterator> - resolves on success
Access: public

promisedExtendedMap.keysAsArray() ⇒ Promise.<Array>

Iterate over all keys and put them into an array

Kind: instance method of PromisedExtendedMap
Returns: Promise.<Array> - resolves with an array with all keys

promisedExtendedMap.entries() ⇒ Promise.<Iterator>

Promisified wrapper for entries

Kind: instance method of PromisedExtendedMap
Returns: Promise.<Iterator> - resolves on success
Access: public

promisedExtendedMap.entriesAsArray() ⇒ Promise.<Array>

Iterate over all elements and put them into an array

Kind: instance method of PromisedExtendedMap
Returns: Promise.<Array> - resolves with an array with all elements

promisedExtendedMap.forEach() ⇒ Promise.<undefined>

Promisified wrapper for forEach

Kind: instance method of PromisedExtendedMap
Returns: Promise.<undefined> - resolves on success
Access: public

ExtendedMapOptions : Object

Kind: global typedef
Properties

| Name | Type | Default | Description | | --- | --- | --- | --- | | defaultValue | * | | default value to return when none is found | | allowOverrite | Boolean | true | if it is allowed to overrite an existing key |

Usage

see Example

TODO

  • [x] refactor jsdoc
  • [ ] add examples
  • [x] promisify some methods

LICENSE

MIT