kea-react
Version:
Componentes comunes de react
33 lines (32 loc) • 2.02 kB
TypeScript
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>;
}