UNPKG

blow-query

Version:

Programmatically build queries which can be returned as JSON Object and used to fetch data from many sources.

66 lines (54 loc) 1.84 kB
# blow-query [ ![Codeship Status for mchmielarski/blow-query](https://codeship.com/projects/2d0e0080-a238-0133-9dd4-1ece657cc271/status?branch=master)](https://codeship.com/projects/128790) Query object allows to to programmatically build queries which can be returned as JSON Object and used to fetch data from database, api endpoint etc. ```typescript import {Query} from 'blow-query'; const query = new Query(); query .greaterThanOrEqual('age', 21) .equal('countryCode', 'POL') .ascending('age') .limit(10); console.log(query.toJSON()); // {where: {age: {$gte: 21}, countryCode: 'POL'}, sort: {age: 1}, limit: 10} ``` ## Query class ```typescript class Query { equal(field: string, value: any): Query; notEqual(field: string, value: any): Query; lessThan(field: string, value: any): Query; lessThanOrEqual(field: string, value: any): Query; greaterThan(field: string, value: any): Query; greaterThanOrEqual(field: string, value: any): Query; containedIn(field: string, values: any[]): Query; notContainedIn(field: string, values: any[]): Query; regex(field: string, value: RegExp): Query; contains(field: string, value: string): Query; startsWith(field: string, value: string): Query; endsWith(field: string, value: string): Query; ascending(field: string): Query; descending(field: string): Query; skip(skip: number): Query; limit(limit: number): Query; select(fields: string[] | string): Query; or(query: Query): Query; toJSON(): QueryObject; } ``` ## Interfaces ```typescript export interface QueryWhere { [key: string]: any; } export interface QuerySort { [key: string]: number; } export interface QueryObject { where?: QueryWhere; limit?: number; skip?: number; sort?: QuerySort; select?: string[]; } ```