pamach

0.1.0 • Public • Published

Pamach

Function to match against stuff.

Inspired by:

Load the thing:

const match = require('pamach');

Pass some args and spec obj:

const drink = 'coke';
 
const myDrink = match(drink)({
  coke:    () => { return 'Pssshhh...'; },
  wine:    () => { return 'I like this harvest from summer 1901...'; },
  beer:    () => { return 'After a long day...' },
  default: () => { return 'H20'; },
});
 
console.log(myDrink); // -> 'Pssshhh...'

Multiple arguments:

const firstComponent = 'coke';
const secondComponent = 'vodka';
 
const cocktail = match(firstComponent, secondComponent)({
  'coke, vodka': () => { return 'Much better together'; },
  'beer, vodka': () => { return 'Are you sure this is a good idea?'; },
  default:       () => { return 'H20'; }    
});
 
console.log(cocktail); // -> 'Much better together'

Accepts anything that implements .toString:

const person = {
  firstName: 'Steve',
  lastName: 'Jobs',
  toString: function() { return `${this.firstName} ${this.lastName}` }
};
 
const collegue = match(person)({
  'Steve Jobs': () => {
    return { firstName: 'Jonny', lastName: 'Ive' }
  },
  'Fox Malder': () => {
    return { firstName: 'Dana', lastName: 'Scully' }
  }
});
 
console.log(collegue); // -> { firstName: 'Jonny', lastName: 'Ive' }

API:

match([args]) -> Function

Takes any number of args and returns new matcher function

matcher(spec) -> Any

that takes spec object to map args separated by ', ' (coma + space) as key to corresponding function, so value returned by this function becomes the return value of matcher.

If no key found for given set of args, matcher tries to find default key in the spec object and call its value.

If no default key found, undefined is returned.

License - MIT

Package Sidebar

Install

npm i pamach

Weekly Downloads

0

Version

0.1.0

License

MIT

Last publish

Collaborators

  • yurysolovyov