Skip to content
This repository was archived by the owner on Jun 1, 2019. It is now read-only.

kupibilet-frontend/boolean-json-eval.js

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

var evaluate = require('boolean-json-eval')

The package exports a function of two arguments:

  1. a boolean-json expression

  2. an object map from string variable name to true, false or a predicate (a function returning a boolean value) to be computed lazily.

It returns true or false.

var assert = require('assert')

assert(evaluate('x', {x: true}))

assert(
  evaluate(
    {or: ['a', {not: 'b'}, 'c']},
    {a: false, b: true, c: () => 2 * 2 === 4}
  )
)

assert(
  evaluate(
    {
      and:
      [
        {not: 'a'},
        {not: {not: {not: 'a'}}},
        {or: ['a', {not: 'a'}]}
      ]
    },
    {a: false}
  )
)

The function throws an exception if its expression argument references an undefined variable.

assert.throws(function() {
  evaluate('x', {})
})

Packages

No packages published

Languages

  • JavaScript 52.4%
  • TypeScript 47.6%