linquest
TypeScript icon, indicating that this package has built-in type declarations

1.1.2 • Public • Published

linquest - Remote Linq implementation with Jinqu infrastructure

Build Status Coverage Status npm version Known Vulnerabilities GitHub issues GitHub license

GitHub stars GitHub forks

Written completely in TypeScript.

Installation

npm i linquest

Let's See

// first, create a service
const service = new LinqService('https://my.company.service.com/');
// then create a query
const query = service.createQuery<Company>('Companies');
// execute the query
const result = await query.where(p => p.Id > 5).toArrayAsync();

Request providers

Linquest uses fetch as default, you might need to use a polyfill.

To use a custom request provider, you need to implement IAjaxProvider interface from jinqu

import { IAjaxProvider, AjaxOptions } from "jinqu";
 
// implement the IAjaxProvider interface
export class MyRequestProvider implements IAjaxProvider {
 
  ajax<T>(o: AjaxOptions): Promise<T> {
    // implement this
  }
}
 
// inject provider to LinqService
const service = new LinqService('https://my.company.service.com/', new MyRequestProvider());

Code Generation

With code generation from a metadata (like Swagger or OpenAPI, you can really simplify the usage.

// generated code
export interface Company {
    idnumber;
    namestring;
    createDateDate;
}
 
export class CompanyService extends LinqService {
 
    constructor(provider?: IAjaxProvider) {
        super('https://my.company.service.com/', provider);
    }
 
    companies() {
        return this.createQuery<Company>('Companies');
    }
}
 
// and you can use it like this
const service = new CompanyService();
const query = service.companies().where(c => c.name !== "Netflix"));
const result = await query.toArrayAsync();

Old Browsers

linquest uses jinqu as a querying platform, if you want to use jinqu features with old browsers, please refer to jinqu documentation.

License

Linquest is under the MIT License.

Dependencies (3)

Dev Dependencies (33)

Package Sidebar

Install

npm i linquest

Weekly Downloads

10

Version

1.1.2

License

MIT

Unpacked Size

112 kB

Total Files

35

Last publish

Collaborators

  • umutozel