1.0.2 • Published 7 years ago

fuzzy-scorer v1.0.2

Weekly downloads
4
License
ISC
Repository
github
Last release
7 years ago

fuzzy-scorer

Define your rules. Pass in your dataset. Receive a scored list back.

Install

yarn add fuzzy-scorer

Sample Usage

import FuzzyScorer from 'fuzzy-scorer';

// define rules
const rules = [
  {
    logic: r => r && true,
    points: 50,
  },
  {
    logic: () => false,
    points: 25,
  },
];

// init with rules
const fuzzy = new FuzzyScorer(rules);

// score input against the rules
const resultOne = fuzzy.score({ foo: 'bar' });

// score collection against rules
const resultTwo = fuzzy.scoreList([{ foo: 'bar' }]);

console.log(resultOne);
console.log(resultTwo);

/**
* Output
* 50
* [{score:50,data:{foo:'bar'}}]
*/

API

constructor(rules:Array\): FuzzyScorer

  • params
    • rules: Array\
      • Rule
        • points: number - Total possible points for rule
        • logic: function - Object to be scored aginst will be passed in. Function should return false for no points, true for all points, or greater than 0 and less than 1 for partial points.

example:

const rules = [];

rules.push({
  points: 100,
  logic: (input) => return input.foo === 'bar' ? return true : false
})

const fuzzy = new FuzzyScorer(rules)

.score(input: mixed): number

  • params
    • input: mixed - This is the object that you wish to score against defined rules.
  • returns
    • number - number greater than or equal to 0.

example:

  const foo = {bar:123};
  fuzzy.score(foo);

.scoreList(list: Array): Array<{score: number, data:mixed}>

  • params
    • list: Array\ - Pass in an array of objects. Array will be iterated and each object will be scored using .score() function.
  • returns
    • Array<{score: number, data:mixed}> - A list of objects which contain a score and the original input/object.

example:

  const foos = [{foo:321},{bar:123}];
  fuzzy.scoreList(foos);