aqs-typeorm
v1.0.1
Published
build typeorm queries using query string
Downloads
2
Maintainers
Readme
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:
| Option | Description | Default value | | ------------- | ------------- | ------------- | | orderField | Name of field to be used as order parameter | order | | orderByField | Name of field to be used as order_by field | orderBy | | selectField | Name of field to be used to select output fields | select | | limitField | Name of field to be used as limit field | limit | | pageField | Name of field to be used for pagination | page | | perPage | Number of results to be returned | | | selectJoin | Return joined relation in result or not | true | | joinAliases | Alias of join operators (see typeorm docs) | | | selectAliases | Alias of selected fields (see typeorm docs) | |
Note
This package currently supports postgres
and mysql
dialects of typeorm.