0.0.3 • Published 4 years ago

es-patterns v0.0.3

Weekly downloads
2
License
MIT
Repository
github
Last release
4 years ago

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