1.0.1 • Published 2 years ago

aqs-typeorm v1.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

aqs-typeorm is a tool that builds typeorm queries using aqs output. aqs is a query parser library that can parse advanced operators and also query logic, so when you use it together wit aqs-typeorm, you can create typeorm queries from query string.

Installation

npm install aqs-typeorm

Usage

First you need to parse query string using aqs:

import { parse } from 'aqs';
import { createConnection } from 'typeorm';
import { aqsToTypeorm } from 'aqs-typeorm';
import { User } from 'models/User';

const queryString = 'id{gt}4&name=joe';
const params = parse(queryString);

Then you can pass params to aqs-typeorm to build query using typeorm query builder:

createConnection({
    type: "postgres",
    host: "localhost",
    username: "***",
    password: "***",
    database: "***",
    schema: "public",
    entities: [ "User.ts" ]
})
    .then(connection => {
        let builder = connection.getRepository(User).createQueryBuilder('user');
        aqsToTypeorm(params, builder);
        console.log(builder.getSql());
        // output: SELECT * "public"."user" "user" WHERE "user"."id" > 4 AND "user"."name" = "joe"
    });

There are some more examples that you can find in exmaples folder.

Configurations

You can configure name of different field that could be passed in query string:

OptionDescriptionDefault value
orderFieldName of field to be used as order parameterorder
orderByFieldName of field to be used as order_by fieldorderBy
selectFieldName of field to be used to select output fieldsselect
limitFieldName of field to be used as limit fieldlimit
pageFieldName of field to be used for paginationpage
perPageNumber of results to be returned
selectJoinReturn joined relation in result or nottrue
joinAliasesAlias of join operators (see typeorm docs)
selectAliasesAlias of selected fields (see typeorm docs)

Note

This package currently supports postgres and mysql dialects of typeorm.