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.

Package Sidebar

Install

npm i linquest

Weekly Downloads

45

Version

1.1.2

License

MIT

Unpacked Size

112 kB

Total Files

35

Last publish

Collaborators

  • umutozel