Skip to content

karudedios/Querier.js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status npm version devDependency Status GitHub license

#Querier.js

The concept for this project was based off of C# Linq Query Syntax.

##Description

The objective of Querier.js is to simplify some of the work when dealing with multiple 'enumerable' objects.

##Usage

To use the Querier, depending what you're trying to do, you require to have certain methods.

Examples will be shown on both C#'s Linq and Javascript

By including Querier.js you automatically get .select, .selectMany and .where on Array.prototype

  1. select: In order to use a single { as, from } clause, the Object you're trying to enumerate should have a 'select' method.
  var collection = Enumerable.Range(1, 3).ToList();
  ...
  from a in collection
  select a + 3
  let collection = [1, 2, 3];
  ...
  Querier
    .append({ as: 'a', from: collection })
    .select(({a}) => a + 3);
  1. selectMany: In order to use several { as, from } clauses, the Object you're trying to enumerate should have a 'selectMany' method.
  var collection = Enumerable.Range(1, 3).ToList();
  ...
  from a in collection
  from b in collection
  from c in collection
  select a + b + c
  let collection = [1, 2, 3];
  ...
  Querier
    .append({ as: 'a', from: collection })
    .append({ as: 'b', from: collection })
    .append({ as: 'c', from: collection })
    .select(({a, b, c}) => a + b + c);
  1. where: In order to use one or more { as, from, where} clause, the Object you're trying to enumerate should have a 'where' method.
  var collection = Enumerable.Range(1, 3).ToList();
  ...
  from a in collection
  where a % 2 == 0

  from b in collection
  where b % 2 != 0

  from c in collection
  select a + b + c
  let collection = [1, 2, 3];
  ...
  Querier
    .append({ as: 'a', from: collection, where: (a) => a % 2 === 0 })
    .append({ as: 'b', from: collection, where: (b) => b % 2 !== 0 })
    .append({ as: 'c', from: collection })
    .select(({a, b, c}) => a + b + c);

To Note: Even though I always used the parameters in the order I appended them, you can have them in any order you'd like. Say, instead of select({a, b, c}) you could have select({c, b, a}) and it would work the same, I had them in order because I like it organized that way.

About

Repository to build concept of Query builder in Javascript for slightly simpler syntax for validations and selection of data. Based of of Linq's query syntax

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published