3.0.0 • Published 2 years ago

call-chainer v3.0.0

Weekly downloads
-
License
-
Repository
github
Last release
2 years ago

Call Chainer

Combine a regular function and a class so that methods of the class become chainable properties of the function that get called automatically.

Install

npm install --save call-chainer

Usage

import chainer from 'call-chainer';

// First of all you need a class containing some methods
// It can contain non-methods too, those are not attached to the function

class Methods {
  flags = {
    always: false,
    skip: false,
    todo: false
  }
  always = () => {
    this.flags.always = true;
  }
  skip = () => {
    this.flags.skip = true;
  }
  todo = () => {
    this.flags.todo = true;
  }
}

// Then you need a function
// The function must receive as its first argument an instance of Methods
// That first argument is not exposed in the final chained function

const fn = ( methods: Methods, title: string ) => {
  console.log ( title );
  console.log ( methods.flags );
};

// Finally you need to chain the two together to get a new, chained, function

const fnChained = chainer ( Methods, fn );

// Then you can call methods on the chained function just by retrieving them as properties

fnChained.always.skip ( 'My title' );
// => 'My Title'
// => { always: true, skip: true, todo: false }

fnChained ( 'My title' );
// => 'My Title'
// => { always: false, skip: false, todo: false }

License

MIT © Fabio Spampinato

3.0.0

2 years ago

2.0.1

3 years ago

2.0.0

3 years ago

1.0.0

3 years ago