Narcoleptic Pony Machine

    @lomray/typeorm-json-query
    TypeScript icon, indicating that this package has built-in type declarations

    1.7.5 • Public • Published

    TypeORM JSON Query

    Converting JSON query to TypeORM query builder.

    npm GitHub GitHub package.json dependency version (dev dep on branch) semantic-release

    Quality Gate Status Reliability Rating Security Rating Vulnerabilities Lines of Code Coverage

    Install

    npm i --save @lomray/typeorm-json-query

    Usage

    Pass request JSON query to TypeormJsonQuery.

    Request:

    POST http://127.0.0.1:3000
    Content-Type: application/json
    
    {
      "attributes": ["id", "param"], // or empty for select all
      "orderBy": { "id": "DESC", { "param": { "order": "ASC", "nulls": "last" } } },
      "relations": ["demo"],
      "where": { "id": 1, "or": [{ "param": "hello" }, { "param": "world" }] },
    }

    Server implementation:

    import TypeormJsonQuery from '@lomray/typeorm-json-query';
    import express from 'express';
    import { getRepository } from 'typeorm';
    import TestEntity from './entities/test-entity';
    
    express()
      .get('/demo-endpoint', (req, res) => {
        const jsonQuery = req.body;
        const typeormQuery = TypeormJsonQuery.init({
          queryBuilder: getRepository(TestEntity).createQueryBuilder(),
          query: jsonQuery,
        });
        
        console.log(typeormQuery.toQuery().getSql());
    
        res.send('Ok.');
      });

    Also, you can use IJsonQuery interface for support build JSON query on client side:

    import { IJsonQuery } from '@lomray/typeorm-json-query';
    import ITestEntity from './interfaces/i-test-entity';
    import axios from 'axios';
    
    const body: IJsonQuery<ITestEntity> = {
      relations: [{ name: 'test', where: { id: 1 } }],
      where: { and: [{ id: { '<': 5 } }, { param: { like: '%hello%' } }] },
    };
    
    axios.request({
      method: 'POST',
      body,
    });

    Check out tests/index-test.ts or src/index.ts for more info.

    Install

    npm i @lomray/typeorm-json-query

    DownloadsWeekly Downloads

    125

    Version

    1.7.5

    License

    Apache-2.0

    Unpacked Size

    103 kB

    Total Files

    16

    Last publish

    Collaborators

    • matthew_patell
    • danial031193