UNPKG

kea-react

Version:

Componentes comunes de react

33 lines (32 loc) 2.02 kB
import httpModule = require("./http"); import { UrlParameters } from "./url"; export interface ResourceInterface<T> { Query: <TParams extends UrlParameters<keyof TParams>>(params?: TParams) => Promise<T[]>; Get: <TParams extends UrlParameters<keyof TParams>>(id: number | string, params?: TParams) => Promise<T>; Insert: <TParams extends UrlParameters<keyof TParams>>(entity: Partial<T>, params?: TParams) => Promise<number>; Update: <TParams extends UrlParameters<keyof TParams>>(id: number | string, entity: Partial<T>, params?: TParams) => Promise<void>; Delete: <TParams extends UrlParameters<keyof TParams>>(id: number | string, params?: TParams) => Promise<void>; } /**Represent a RESTful http resource */ export declare class Resource<T> implements ResourceInterface<T> { /** * @param url Url del servicio * @param http Servicio de peticiones HTTP, si no se especifica se usara el servicio HTTP por default */ constructor(url: string, enableMemoize?: boolean, http?: httpModule.HttpClass); private enableMemoize; private http; /**URL del recurso */ url: string; /**Query a collection of entities */ Query: <TParams extends UrlParameters<keyof TParams>>(params?: TParams | undefined) => Promise<T[]>; /**Get a single entity */ Get: <TParams extends UrlParameters<keyof TParams>>(id: string | number, params?: TParams | undefined) => Promise<T>; /**Insert a single entity. Return the entity id */ Insert: <TParams extends UrlParameters<keyof TParams>>(entity: Partial<T>, params?: TParams | undefined) => Promise<number>; /**Update an entity */ Update: <TParams extends UrlParameters<keyof TParams>>(id: string | number, entity: Partial<T>, params?: TParams | undefined) => Promise<void>; /**Delete an entity */ Delete: <TParams extends UrlParameters<keyof TParams>>(id: string | number, params?: TParams | undefined) => Promise<void>; networkMemoize(): ResourceInterface<T>; }