Code Monkey home page Code Monkey logo

wheeler's Introduction

Wheeler

Note This is an pre-alpha version and is subject to change.

Wheeler is a fluent typescript library for building OData queries. The goal of wheeler is to make it easy to build strongly-typed OData queries.

For example, let's say you have a users endpoint (www.myserver.com/api/users) that accepts OData queries. The user object might have a few properties like: ID, first name, last name, and salary.

{ "id": 1, "first_name": "mason", "last_name": "meyer", "salary": 100 }

Your typescript interface might look like this:

interface User {
  id: number;
  first_name: string;
  last_name: string;
  salary: number;
}

Traditionally, you would build up your query string with string concat or string interpolation.

// Take some variable (likely from the UI)
let name = 'mason';

// Build the variable for the query string
let $filter = `first_name` eq '{name}'`;

Wheeler makes building simple OData queries easy.

// Create the query builder
let service:QueryBuilder<User> = new QueryBuilder<User>();

service.equals(x => x.first_name, 'mason').toQuery();

Note The query is completely typed. Notice that it doesn't use any string or string replacement.

Wheeler really starts to shine as the queries become more complex.

// Some simple paging where the salary is <= 100
service.lte(x => x.salary, 100)
       .top(100)
       .skip(3)
       .toQuery();

Wheeler also includes an Expression class to help build nested expressions.

TODO

  • Add unit tests
  • Package for deployment
  • Package for npm
  • Add examples of advanced scenarios
  • Fix client-side build

wheeler's People

Contributors

masonkmeyer 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.