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

es-patterns

v0.0.3

Published

The collection of usefull pre builded EcmaScript patterns and utilities.

Downloads

5

Readme

JS Patterns

The collection of usefull pre builded EcmaScript patterns and utilities.

This collection today is very small, but it will grow up in order of new features/tools developed.

All the features are written in ES6+, than, you could get the source code and use in your project, but, if you need run in browsers, the minified version is transpiled to ES5 by Babel.

Until this moment we don't use any testing library yet, but we have plans to add.

Modules:Observer

Methods

  • factory: Build an observable item
  • notify: Notify an especific linstener
  • broadcast: Notify all listeners
  • print: Print all observables registrered
  • log: Instance of Log to control loggin in Observable

Example

    // To register new Observer, you should use the factory, passing the respectives parameters

    /**
    * @param {string} listenner - Declare the name of listenner that will be observable by this function.
    * @param {function} exec - Declare the function executed when listenner was trigged.
    * @param {?boolean} removeOnCall - Declare if after notified the observable should be removed.
    * @returns {Observable} A builded return {@link Observable}
    */
    Observable returnedObject = Observer.factory([...params]);


    // The object returned by the factory
    /**
    * @typedef {Object} Observable
    * @property {ObservableItem} item - return {@link ObservableItem}.
    * @property {function} subscribe - Do a subscribe of build item
    * @property {function} unsubscribe - Do a unsubscribe of build item
    */

    // Example of use:
    const {subscribe, unsubscribe} = Observer.factory('test', e => console.log(e));

    // Do a subscribe of obserser
    subscribe();

    // Print all observers registered
    Observer.print();

    // Notify an listener passing a data object
    Observer.notify('test', {...data});

    // Do a unsubscribe of obserser
    unsubscribe();

    // Notify all observer registereds passing a data object
    Observer.broadcast('aaaa');

Modules:Log

Methods

  • debug: Print a "debug" log level if enable
  • setDebug: Enabled/Disable log debug
  • error: Print a "error" log level if enable
  • setError: Enabled/Disable log error
  • warn: Print a "warn" log level if enable
  • setWarn: Enabled/Disable log warn
  • info: Print a "info" log level if enable
  • setInfo: Enabled/Disable log info
  • config: Print the current config

Example

    // Enabled debug
    log.setDebug(true);
    // Print a simple debug
    log.debug('DEBUG -> Test simple');
    // Print a debug with params
    log.debug('DEBUG -> Test with param {0}', 'success');
    // Disabled debug
    log.setDebug(false);

    //Obs: All the method have the same use exemplified here with the debug

Util:MessageFormat

    // const fmt = require('./MessageFormat');
    var fmt = MessageFormat;
    fmt("Message with args: '{0}'", test);
    // -> Message with args 'test'

Util:Storage

    Polifill to use LocalStorage in anywhere