Coder Social home page Coder Social logo

voll's Introduction

voll
Boolean expressions evaluator.

Last version Build Status Coverage Status Donate
Dependency status Dev Dependencies Status NPM Status

voll is based mayority bool but improved in some aspects:

  • Exact word matching.
  • Insensitive comparison support.
  • Detect words based on unicode ranges.
  • Caching level for speed up AST evaluation.
  • Detect quotes words using scape quotes (' or ") for exact matches.
  • Operators alias (example: red+yellow means the same than red OR yellow).

Install

$ npm install voll --save

Usage

var voll = require('voll')
var test = voll('(red OR blue) AND (orange OR yellow)')

test('red') //=> false
test('yellow') //=> false
test('red yellow') //=> true

You can build complex expressions as you need. Use parentheses to specify the preference:

((red OR blue) AND NOT (orange OR yellow)) OR orange

In other case the preference is left to right. Also it handles malformed expressions. For example:

((red OR blue) AND NOT (orange yellow)) OR orange

Produces the follow error:

SyntaxError: Parse error on line 1:
...ue) AND NOT (orange yellow)) OR orange
-----------------------^

Operators

Operator Alias
AND
OR +
NOT -

API

voll(expr, [options])

expr

Required
Type: string

Boolean expression to be evaluated.

options

Type: object

Provide specific parser options

insensitive

Type: boolean
Default: false

Enable/Disable insensitive comparison.

cache

Type: boolean
Default: true

Enable/Disable caching.

cacheOpts

Type: object

Provide specific cache options. See mem#options.

License

Icon made by Darius Dan from flaticon.

MIT © Kiko Beats

voll's People

Contributors

dependabot-preview[bot] avatar greenkeeper[bot] avatar greenkeeperio-bot avatar imgbotapp avatar kikobeats avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

voll's Issues

Action required: Greenkeeper could not be activated 🚨

🚨 You need to enable Continuous Integration on all branches of this repository. 🚨

To enable Greenkeeper, you need to make sure that a commit status is reported on all branches. This is required by Greenkeeper because we are using your CI build statuses to figure out when to notify you about breaking changes.

Since we did not receive a CI status on the greenkeeper/initial branch, we assume that you still need to configure it.

If you have already set up a CI for this repository, you might need to check your configuration. Make sure it will run on all new branches. If you don’t want it to run on every branch, you can whitelist branches starting with greenkeeper/.

We recommend using Travis CI, but Greenkeeper will work with every other CI service as well.

Once you have installed CI on this repository, you’ll need to re-trigger Greenkeeper’s initial Pull Request. To do this, please delete the greenkeeper/initial branch in this repository, and then remove and re-add this repository to the Greenkeeper integration’s white list on Github. You'll find this list on your repo or organiszation’s settings page, under Installed GitHub Apps.

Support Regex

Explore if could be possible handle regex expressions.

const test = voll('r[ae]d')
const output = test('red')
console.log(output) // => true 

The strategy here is:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.