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

es6patterns

v1.0.0

Published

Set of design patterns and similar utilities for ES6 syntax.

Downloads

4

Readme

es6patterns

Set of design patterns and similar utilities for EcmaScript6 syntax (for browsers and node.js).

Installation

~$ npm install --save es6patterns

Usage

Get the API:

Once you install the module, either with node.js, browserify, webpack, or simply a <script> tag in the html page, to get the API you can:

a) Via require/import, then:

const ES6Patterns = require("es6patterns");

b) Via <script src=...>, then:

const ES6Patterns = window.ES6PatternsAPI;

API


Singleton = ES6Patterns.Singleton

Type: Class

Description: A Singleton Pattern implementation scoped per context (window or global).


Singleton.getUniqueStore()

Access: Static

Type: Method

Returns: Object. The store with all the keys.

Description: This method returns the map that holds all the keys of the singleton store. This data is attached (indirectly) to the context, which is window or global. This method is aimed for internal usage but it is available for anyone too.


Singleton.getter(String:key, Function:initializer)

Access: Static

Type: Method

Parameter: String:key. Unique string identifier of the desired key.

Parameter: Function:initializer. Optional. Function that returns the initial value of the singleton if the key is not found in the store yet. By default: `() => undefined''.

Returns: Function. A getter for the value hold in the store identified by the key.

Description: This method returns a function that, when called, it returns the value of the store identified by the provided key. This method also provides a lazy-loading initialization of the singleton values, by default, which can be overriden calling set method whenever is desired..


Singleton.setter(String:key)

Type: Method

Access: Static

Parameter: String:key.

Returns: Function. A setter for the value hold in the store identified by the key.

Description: This method returns a function that, when called, it sets the value of the store identified by the provided key to the provided value. The function also returns the current value of the key in the store.


Singleton.get(key, initializer = () => undefined)

Type: Method

Access: Static

Parameter: String:key. Unique string identifier of the desired key.

Parameter: Function:initializer. Optional. Function that returns the initial value of the singleton if the key is not found in the store yet. By default: `() => undefined''.

Returns: Any. The new value of the key in the store.

Description: This method returns the value of the provided key in the store.


Singleton.set(String:key, Any:value)

Type: Method

Access: Static

Parameter: String:key. Unique string identifier of the desired key.

Parameter: Any:value. Optional. Function that returns the initial value of the singleton if the key is not found in the store yet. By default: `() => undefined''.

Returns: Any. The new value of the key in the store.

Description: This method sets the value to the provided key in the store.

Examples

The API is decoupled in different design patterns and similar utilities under the API object.

To see more of each example, take a look to the test folder. Tests are written using mocha and chai.

Commands

The commands of the project are the npm commands listed at package.json#scripts.

License

MIT License.

Conclusions

Soon, more.