1.0.22 • Published 5 years ago

applyfilters v1.0.22

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

npm version Build Status npm NPM npm bundle size

applyfilters a JavaScript hook module

a simple lightweight javascript module to implement hooks in your project.

Execute functions hooked on a specific filter hook, specifying arguments like you know it from WordPress in your JavaScript project.

Install

npm install --save applyfilters

Usage

require

const applyfilters = require("applyfilters");

add a dofilter event

/*
 * Place the doFilter() function this will handle
 * the registred filter functions
 *
 * @param {string} filterName
 * @param filterObj
 * @param args
 *
 * @return promise
  */
applyfilters.doFilter( 'beforeSayHello', {} ).then((filteredResult) => {});

a filter function

/* 
 * Register a custom filter before doFilter('beforeSayHello') and change the response.
 * 
 * Attention: the callback function in addFilter() 
 * runs in a Promise so you have to resolve this!
 * 
 * @param {string} filterName
 * @param {function} callback
 * @param {number} priority
 * 
 * @return void 
 */
applyfilters.addFilter('beforeSayHello', (resolve, filteredResult) => {
    resolve(filteredResult);
}, 1);

applyfilters.doFilter( 'beforeSayHello', {} ).then((filteredResult) => {});

RunKit Example

const applyfilters = require("applyfilters");

// Usage see -> a filter function
applyfilters.addFilter('runKit_test', (resolve, filteredResult) => {
    filteredResult.runkit = 1;
    resolve(filteredResult);
}, 1);

// simple object
var runKitObj = {foo: "bar"}

// Usage see -> add a dofilter event
applyfilters.doFilter( 'runKit_test', runKitObj ).then((filteredResult) => {
    console.log(filteredResult);
});

Example

example/src/index.js

const applyfilters = require('applyFilters');
require('./filter')();

/** build a simple function **/
const sayHello = () => {
  const helloStr = 'John';
  const span = document.querySelector('h2 span');

  /**
   * Place the doFilter() function this will handle
   * the registered filter functions
   *
   * @param {string} filterName
   * @param filterObj
   * @param args
   *
   * @return promise
   **/
  applyfilters.doFilter( 'beforeSayHello', helloStr ).then((helloStr) => {
    span.innerHTML = helloStr;
  });
};

/* run codeexample on document loaded */
document.addEventListener('DOMContentLoaded', function(event) {
  sayHello();
});

filter the helloStr from other place like a new file example/src/filter.js

module.exports = () => {
  const applyfilters = require('applyFilters');
  
  /**
   * Register a custom filter on 'beforeSayHello' and change the response.
   *
   * Attention: the callback function in addFilter()
   * runs in a Promise so you have to resolve this!
   *
   * @param {string} filterName
   * @param {function} callback
   * @param {number} priority
   *
   * @return void
   **/
  applyfilters.addFilter('beforeSayHello', (resolve, str) => {
    str = str + ' and Rene';
    resolve(str);
  }, 1);
}

The finally result in browser

applyfilters example - say hello to Sven and Rene

What is in the inside?

NameTypeDescription
filterarraycontains all registered filter
addFilterfunctionregisters a function that use a filter/hook 'doFilter()'
doFilterfunctionregister a filter/hook for this can add a filter 'addFilter()'
asyncForEachfunctionIterate the registered filter from this.filter
getFilterfunctionreturns all registered filter

contact

1.0.22

5 years ago

1.0.21

5 years ago

1.0.20

5 years ago

1.0.19

5 years ago

1.0.18

5 years ago

1.0.17

5 years ago

1.0.16

5 years ago

1.0.15

5 years ago

1.0.14

5 years ago

1.0.13

5 years ago

1.0.12

5 years ago

1.0.11

5 years ago

1.0.10

5 years ago

1.0.9

5 years ago

1.0.8

5 years ago

1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago