GithubHelp home page GithubHelp logo

umayr / slq Goto Github PK

View Code? Open in Web Editor NEW
3.0 3.0 1.0 16 KB

Perform multi-level logical operations as a query over javascript object and/or array.

License: MIT License

JavaScript 100.00%

slq's Introduction

SLQ Build Status

Perform multi-level logical operations as a query over javascript object and/or array.

Install

  λ npm install --save slq

Usage

  // require the library
  const SLQ = require('slq');
  // instantiate class object with either an object or an array
  // for objects, it places the value for every key in the expression to evaluate
  // valid existent key should be provided in the query
  // for example, create instance with an object:
  let src = new SLQ({
    foo: true,
    bar: false,
    baz: false
  });
  // and, go wild
  src.query('foo AND bar'); // false
  src.query('foo AND NOT bar'); // true
  src.query('NOT (foo AND NOT bar)'); // false
  src.query('(foo AND bar) AND baz'); // false
  src.query('NOT(NOT((foo AND bar) AND baz))'); // false
  src.query('foo AND (bar AND baz)'); // false
  src.query('foo AND (foo AND (bar AND baz))'); // false
  src.query('foo AND (foo AND foo)'); // true
  src.query('foo AND (foo OR bar)'); // true
  src.query('foo OR (foo AND bar)'); // true
  src.query('baz OR (foo AND (foo OR (foo AND (bar OR (foo AND (baz OR foo))))))'); // true
  // there's no limit to how deep you want to go
  src.query('NOT baz AND (foo AND (foo OR (foo AND (bar OR (foo AND (baz OR foo))))))'); // true
  
  // for arrays, it checks if provided key is in the array or not
  // for example:
  let src = new SLQ(['foo', 'bar', 'unicorn']);
  
  src.query('foo AND bar AND unicorn'); // true
  src.query('NOT(foo AND bar AND unicorn)'); // false
  src.query('NOT(poo OR meh AND lol)'); // true
  src.query('(NOT(NOT(yes))) OR NOT(foo AND unicorn)'); // false
  src.query('(NOT(NOT(unicorn))) OR NOT(meh AND unicorn)'); // true

License

MIT

slq's People

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

slq's Issues

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.