rxrest
Version:
RxRest a reactive REST utility
110 lines (109 loc) • 3.02 kB
TypeScript
import { Observable } from 'rxjs';
import { RxRest as AbstractRxRest } from './RxRest';
import { RxRestConfiguration } from './RxRestConfiguration';
export declare class RxRestItem<T> extends AbstractRxRest<RxRestItem<T> & T, T> {
$element: T;
/**
* constructor
*
* @param {string[]} route
* @param {T} [element]
* @return {Proxy}
*/
constructor(route: string[], element?: T, config?: RxRestConfiguration, metadata?: any, suffix?: string[]);
/**
* save - POST or PUT according to $fromServer value
*
* @param {Object|URLSearchParams} [queryParams]
* @param {Object|Headers} [headers]
* @returns {Observable<RxRestItem|RxRestCollection>}
*/
save(queryParams?: Object | URLSearchParams, headers?: Object | Headers): Observable<RxRestItem<T> | RxRestCollection<T>>;
/**
* get element
*
* @return {T}
*/
/**
* set element
*
* @param {T} element
*/
element: T;
/**
* get plain object
*
* @return {T}
*/
plain(): T;
/**
* Get json string
* @return {string}
*/
json(): string;
/**
* Clone
* @return {RxRestItem<T>}
*/
clone(): RxRestItem<T> & T;
}
export declare class RxRestCollection<T> extends AbstractRxRest<RxRestCollection<T> & T[] & T, T> implements Iterable<RxRestItem<T>> {
length: number;
$elements: RxRestItem<T>[];
[index: number]: RxRestItem<T>;
/**
* constructor
*
* @param {string[]} route
* @param {T[]|RxRestItem<T>[]]} [elements]
* @return {Proxy}
*/
constructor(route: string[], elements?: T[] | RxRestItem<T>[], config?: RxRestConfiguration, metadata?: any, asIterable?: boolean);
[Symbol.iterator](): {
next(): IteratorResult<RxRestItem<T>>;
};
/**
* getList - fetch a collection
*
* @param {Object|URLSearchParams} [queryParams]
* @param {Object|Headers} [headers]
* @returns {Observable<RxRestItem|RxRestCollection>}
*/
getList(queryParams?: Object | URLSearchParams, headers?: Object | Headers): Observable<RxRestItem<T> | RxRestCollection<T>>;
/**
* get elements
* @return {RxRestItem<T>[]}
*/
/**
* set elements
*
* @param {T[]} elements
*/
elements: RxRestItem<T>[];
/**
* plain
*
* @returns {T[]}
*/
plain(): T[];
/**
* json
*
* @returns {String}
*/
json(): string;
/**
* clone
*
* @returns {RxRestCollection}
*/
clone(): RxRestCollection<T> & T[];
}
export declare class RxRest {
private config;
constructor(config: RxRestConfiguration);
one<T>(route: string, id?: any, ...suffix: string[]): RxRestItem<T> & T;
all<T>(route: string, asIterable?: boolean): RxRestCollection<T> & T[];
fromObject<T>(route: string, element: T | T[], ...suffix: string[]): (RxRestItem<T> & T) | (RxRestCollection<T> & T[]);
}
export { RxRestConfiguration };