/logical-phrase

Logical phrase generator

Primary LanguageJavaScript

logical-phrase Build Status Coverage Status

npm install logical-phrase
# or 
bower install logical-phrase

Transforms following JSON:

{
  "items": [
    {
      "value": "foo"
    },
    {
      "value": "bar"
    },
    {
      "value": "baz",
      "operator": "NOT"
    }
  ],
  "operator": "AND"
}

into: foo AND bar AND NOT baz

Furthermore, with a given configuration as follows:

var lp = new LogicalPhrase();

lp.configure({
  'prefix': 'Select users who',
  'truthy': 'did',
  'falsy': 'did not',
  'and': 'and',
  'or': 'or'
});

it can transform this:

{
  "items": [
    {
      "value": "visit 'site.homepage'",
      "operator": "NOT"
    },
    {
      "items": [
        {
          "value": "use campaign 'x'"
        },
        {
          "value": "use campaign 'y'"
        }
      ],
      "operator": "OR"
    }
  ],
  "operator": "AND"
}

into: Select users who did not visit 'site.homepage' and did use campaign 'x' or did use campaign 'y'

It is also possible to wrap each level of items into different HTML tags.

See /test for more examples.