https://github.com/noorzaie/aqs-typeorm
build typeorm queries using query string
https://github.com/noorzaie/aqs-typeorm
aqs mysql postgresql query-builder query-string sql typeorm
Last synced: 3 months ago
JSON representation
build typeorm queries using query string
- Host: GitHub
- URL: https://github.com/noorzaie/aqs-typeorm
- Owner: noorzaie
- Created: 2021-12-05T11:36:02.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2021-12-05T11:38:08.000Z (over 3 years ago)
- Last Synced: 2025-02-24T08:23:07.665Z (4 months ago)
- Topics: aqs, mysql, postgresql, query-builder, query-string, sql, typeorm
- Language: TypeScript
- Homepage:
- Size: 18.6 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
`aqs-typeorm` is a tool that builds [typeorm](https://typeorm.io) queries using [aqs](https://github.com/noorzaie/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
npm install aqs-typeorm
```## Usage
First you need to parse query string using `aqs`:
```javascript
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:
```javascript
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](https://github.com/noorzaie/aqs-typeorm/tree/master/examples) 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.