rxrest
Version:
RxRest a reactive REST utility
194 lines (193 loc) • 6.07 kB
TypeScript
import { RxRestConfiguration } from './RxRestConfiguration';
import { BodyParam } from './interfaces';
import { RxRestCollection, RxRestItem } from './index';
import { Observable } from 'rxjs';
export declare class RxRest<F, T> {
protected $route: string[];
$fromServer: boolean;
$asIterable: boolean;
$queryParams: URLSearchParams;
$headers: Headers;
config: RxRestConfiguration;
$metadata: any;
$pristine: boolean;
$uuid?: string;
/**
* constructor
*
* @param {String} [route] the resource route
*/
constructor(config?: RxRestConfiguration, route?: string[], metadata?: any);
protected addRoute(route: string): void;
/**
* one
*
* @param {String} route
* @param {any} id
* @returns {RxRestItem}
*/
one<T>(route: string, id?: any, ...suffix: string[]): RxRestItem<T>;
/**
* all
*
* @param {String} route
* @param {boolean} [asIterable=true] - forces the next request to return an Observable<Array>
* instead of emitting multiple events
* @returns {RxRestCollection}
*/
all<T>(route: string, asIterable?: boolean): RxRestCollection<T>;
/**
* asIterable - sets the flag $asIterable
* instead of emitting multiple events
*
* @returns {self}
*/
asIterable(value?: boolean): this;
/**
* fromObject
*
* @param {String} route
* @param {Object|Object[]} element
* @returns {RxRestItem|RxRestCollection}
*/
fromObject<T>(route: string, element: T | T[], suffix: string[]): RxRestItem<T> | RxRestCollection<T>;
/**
* @access private
* @param {BodyParam} body
* @return {BodyParam|RxRestItem}
*/
protected withBody(body: BodyParam<T>): Object;
/**
* post
*
* @param {Body|Blob|FormData|URLSearchParams|Object|RxRestItem} [body]
* @param {Object|URLSearchParams} [queryParams]
* @param {Object|Headers} [headers]
* @returns {Observable<RxRestItem|RxRestCollection>}
*/
post(body?: BodyParam<T>, queryParams?: Object | URLSearchParams, headers?: Object | Headers): Observable<F>;
/**
* remove
*
* @param {Object|URLSearchParams} [queryParams]
* @param {Object|Headers} [headers]
* @returns {Observable<RxRestItem|RxRestCollection>}
*/
remove(queryParams?: Object | URLSearchParams, headers?: Object | Headers): Observable<F>;
/**
* get
*
* @param {Object|URLSearchParams} [queryParams]
* @param {Object|Headers} [headers]
* @returns {Observable<RxRestItem|RxRestCollection>}
*/
get(queryParams?: Object | URLSearchParams, headers?: Object | Headers): Observable<F>;
/**
* put
*
* @param {Body|Blob|FormData|URLSearchParams|Object|RxRestItem} [body]
* @param {Object|URLSearchParams} [queryParams]
* @param {Object|Headers} [headers]
* @returns {Observable<RxRestItem|RxRestCollection>}
*/
put(body?: BodyParam<T>, queryParams?: Object | URLSearchParams, headers?: Object | Headers): Observable<F>;
/**
* patch
*
* @param {Body|Blob|FormData|URLSearchParams|Object|RxRestItem} [body]
* @param {Object|URLSearchParams} [queryParams]
* @param {Object|Headers} [headers]
* @returns {Observable<RxRestItem|RxRestCollection>}
*/
patch(body?: BodyParam<T>, queryParams?: Object | URLSearchParams, headers?: Object | Headers): Observable<F>;
/**
* head
*
* @param {Object|URLSearchParams} [queryParams]
* @param {Object|Headers} [headers]
* @returns {Observable<RxRestItem|RxRestCollection>}
*/
head(queryParams?: Object | URLSearchParams, headers?: Object | Headers): Observable<F>;
/**
* trace
*
* @param {Object|URLSearchParams} [queryParams]
* @param {Object|Headers} [headers]
* @returns {Observable<RxRestItem|RxRestCollection>}
*/
trace(queryParams?: Object | URLSearchParams, headers?: Object | Headers): Observable<F>;
/**
* options
*
* @param {Object|URLSearchParams} [queryParams]
* @param {Object|Headers} [headers]
* @returns {Observable<RxRestItem|RxRestCollection>}
*/
options(queryParams?: Object | URLSearchParams, headers?: Object | Headers): Observable<F>;
/**
* URL
*
* @returns {string}
*/
readonly URL: string;
/**
* Get local query params
* @return URLSearchParams
*/
/**
* set local query params
* @param {Object|URLSearchParams} params
*/
queryParams: any;
/**
* Sets local query params useful to add params to a custom request
* @param {Object|URLSearchParams}
* @return this
*/
setQueryParams(params: any): this;
/**
* Sets local headers useful to add headers to a custom request
* @param {Object|URLSearchParams}
* @return this
*/
setHeaders(params: any): this;
/**
* Get request query params
* Combine local and global query params
* Local query params are overriding global params
* @return {String}
*/
readonly requestQueryParams: string;
/**
* Get local headers
* @return Headers
*/
/**
* Set local headers
* @param {Object|Headers} params
*/
headers: any;
/**
* get request Headers
* Combine local and global headers
* Local headers are overriding global headers
*
* @returns {Headers}
*/
readonly requestHeaders: Headers;
/**
* expandInterceptors
*
* @param {RequestInterceptor[]|ResponseInterceptor[]|ErrorInterceptor[]} interceptors
* @returns {Observable<any>} fn
*/
private expandInterceptors(interceptors);
/**
* request
*
* @param {string} method
* @param {RxRestItem|FormData|URLSearchParams|Body|Blob|undefined|Object} [body]
* @returns {Observable<RxRestItem|RxRestCollection>}
*/
request(method: string, body?: BodyParam<T>): Observable<F>;
}