UNPKG

rxrest

Version:

RxRest a reactive REST utility

110 lines (109 loc) 3.02 kB
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 };