https://github.com/rd-uk/rduk-data
https://github.com/rd-uk/rduk-data
data query rduk
Last synced: 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/rd-uk/rduk-data
- Owner: rd-uk
- License: mit
- Created: 2017-12-28T22:27:24.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2020-05-11T17:16:36.000Z (about 6 years ago)
- Last Synced: 2025-09-01T16:01:22.977Z (10 months ago)
- Topics: data, query, rduk
- Language: JavaScript
- Size: 2.27 MB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# RDUK - Data
[](https://travis-ci.org/rd-uk/rduk-data)
[](https://coveralls.io/github/rd-uk/rduk-data?branch=master)
[](https://conventionalcommits.org)
[](https://greenkeeper.io/)
[](https://standardjs.com)
Create a QueryProvider responsible for creating queries and querying data source
thanks to a DataProvider
__Warning__: not prod ready.
## Installation
```sh
npm i --save rduk-data
```
## QueryProvider
### Implementations
#### SqlQueryProvider
```js
const Queryable = require('@rduk/data/lib/queryable');
const SourceExpression = require('@rduk/data/lib/expression/source');
let users = new Queryable(new SourceExpression('my_db_users'));
let profiles = new Queryable(new SourceExpression('my_db_profiles'));
let query = users
.join(profiles, (u, p) => (u.id === p.user_id))
.filter((u, p) => (u.email.endsWith(this.search) && p.country.toUpperCase() === 'FRANCE'))
.select((u, p) => ({
id: u.id,
email: u.email,
firstName: p.first_name,
lastName: p.last_name.toUpperCase()
}));
query.toArray({
search: '@rduk.fr'
});
/**
* Generated SQL query:
* SELECT
* t0.`id` AS `id`,
* t0.`email` AS `email`,
* t1.`first_name` AS `firstName`,
* t1.`last_name` AS `lastName`
* FROM my_db_users t0
* INNER JOIN my_db_profiles t1 ON t0.id = t1.user_id
* WHERE
* (1 AND (t0.`email` LIKE ? AND UPPER(t1.`country`) = 'FRANCE'))
*
* Parameters
* { search: '%@rduk.fr' }
*/
```
## DataProvider
### Implementations
- [SQLite](https://github.com/rd-uk/rduk-data-sqlite) (wip)
- [PostgreSQL](https://github.com/rd-uk/rduk-data-pg) (wip)
- [MySQL](https://github.com/rd-uk/rduk-data-mysql) (wip)
## License
See [`LICENSE`](LICENSE) file