Giter VIP home page Giter VIP logo

queryl's Introduction

queryl

npm version dependencies Build Status Build status

Query language to perform complex object searches.

Description

Queryl allows to to build complex queries to match JavaScript objects. This can be useful to:

  • Search collections of objects (even heterogeneus).
  • Validate objects.
  • Assert properties of an object for testing purposes.

Installation

Install queryl by running:

$ npm install --save queryl

Documentation

queryl.match(query, object) โ‡’ Boolean

Kind: static method of queryl
Summary: Query an object
Returns: Boolean - whether it matches or not
Access: public

Param Type Description
query Object query
object Object object

Example

queryl.match({
  $or: {
    $equal: {
      foo: 'bar'
    },
    $and: {
      $not: {
        $match: {
          foo: /^baz/
        }
      },
      $gt: {
        bar: 3
      }
    }
  }
}, {
  foo: 'hello world',
  bar: 5
});
> true

Operations

operations.$and()

Kind: static method of operations
Properties

Name Type Description
$and function logical conjunction

Example

queryl.match({
  $and: {
    $equal: {
      foo: 'bar'
    },
    $match: {
      bar: /^hello/
    }
  }
}, {
  foo: 'bar',
  bar: 'hello world'
});
> true

operations.$or()

Kind: static method of operations
Properties

Name Type Description
$or function logical disjunction

Example

queryl.match({
  $or: {
    $equal: {
      foo: 'bar'
    },
    $match: {
      bar: /^hello/
    }
  }
}, {
  foo: 'bar',
  bar: 'hey there'
});
> true

operations.$not()

Kind: static method of operations
Properties

Name Type Description
$not function logical negation

Example

queryl.match({
  $not: {
    $equal: {
      foo: 'bar'
    }
  }
}, {
  foo: 'baz'
});
> true

operations.$equal()

This operation supports deep equality.

Kind: static method of operations
Properties

Name Type Description
$equal function equality

Example

queryl.match({
  $equal: {
    foo: 'bar'
  }
}, {
  foo: 'bar'
});
> true

operations.$contain()

This operation supports deep equality.

Kind: static method of operations
Properties

Name Type Description
$contain function collection include

Example

queryl.match({
  $contain: {
    foo: 1
  }
}, {
  foo: [ 1, 2, 3 ]
});
> true

operations.$match()

Kind: static method of operations
Properties

Name Type Description
$match function RegExp match

Example

queryl.match({
  $match: {
    foo: /^hello/
  }
}, {
  foo: 'hello world'
});
> true

operations.$gt()

Kind: static method of operations
Properties

Name Type Description
$gt function greater than

Example

queryl.match({
  $gt: {
    foo: 5
  }
}, {
  foo: 6
});
> true

operations.$lt()

Kind: static method of operations
Properties

Name Type Description
$lt function less than

Example

queryl.match({
  $lt: {
    foo: 5
  }
}, {
  foo: 4
});
> true

Support

If you're having any problem, please raise an issue on GitHub and the IssueTrack team will be happy to help.

Tests

Run the test suite by doing:

$ gulp test

Contribute

Before submitting a PR, please make sure that you include tests, and that coffeelint runs without any warning:

$ gulp lint

License

The project is licensed under the MIT license.

queryl's People

Contributors

jviotti avatar

Watchers

Chew Chit Siang avatar James Cloos avatar  avatar

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.