UNPKG

rxrest

Version:

RxRest a reactive REST utility

151 lines (135 loc) 5.02 kB
export as namespace RxRest export = RxRest import { Observable } from 'rxjs' declare namespace RxRest { function fetch(input: string | Request, init?: RequestOptions, abortCallback?: (req: Request) => void ): Observable<any>; class RxRest { constructor (config: RxRestConfiguration); one<T>(route: string, id?: any): RxRestItem<T> & T; all<T>(route: string, asIterable?: boolean): RxRestCollection<T> & T[]; fromObject<T>(route: string, element: T|T[]): (RxRestItem<T> & T)|(RxRestCollection<T> & T[]); } class AbstractRxRest<F, T> { constructor (route?: string[], config?: RxRestConfiguration); private config; json(): string; one<T>(route: string, id?: any): RxRestItem<T>; all<T>(route: string, asIterable?: boolean): RxRestCollection<T>; asIterable(): this; fromObject<T>(route: string, element: T|T[]): RxRestItem<T>|RxRestCollection<T>; post( body?: BodyParam<T>, queryParams?: Object|URLSearchParams, headers?: Object|Headers): Observable<F>; put( body?: BodyParam<T>, queryParams?: Object|URLSearchParams, headers?: Object|Headers): Observable<F>; patch( body?: BodyParam<T>, queryParams?: Object|URLSearchParams, headers?: Object|Headers): Observable<F>; remove(queryParams?: Object|URLSearchParams, headers?: Object|Headers): Observable<F>; get(queryParams?: Object|URLSearchParams, headers?: Object|Headers): Observable<F>; head(queryParams?: Object|URLSearchParams, headers?: Object|Headers): Observable<F>; trace(queryParams?: Object|URLSearchParams, headers?: Object|Headers): Observable<F>; options(queryParams?: Object|URLSearchParams, headers?: Object|Headers): Observable<F>; URL: string; baseURL: string; identifier: string; setQueryParams(params: any): AbstractRxRest<F, T>; localQueryParams: any; setHeaders(params: any): AbstractRxRest<F, T>; localHeaders: any; headers: any; queryParams: any; readonly requestQueryParams: any; readonly requestHeaders: any; requestInterceptors: RequestInterceptor[]; responseInterceptors: ResponseInterceptor[]; errorInterceptors: ErrorInterceptor[]; fetch: any requestBodyHandler: RequestBodyHandler<T>; responseBodyHandler: ResponseBodyHandler; request(method: string, body?: BodyParam<T>): Observable<F>; $route: string[]; $fromServer: boolean; $pristine: boolean; $uuid: string; $queryParams: URLSearchParams; $headers: Headers; $metadata: any; $asIterable: boolean; abortCallback: (req: Request) => void; } class RxRestItem<T> extends AbstractRxRest<RxRestItem<T> & T, T> { $element: T; save<T>( queryParams?: Object|URLSearchParams, headers?: Object|Headers): Observable<RxRestItem<T>|RxRestCollection<T>>; clone<T>(): RxRestItem<T> & T; plain(): T; } class RxRestCollection<T> extends AbstractRxRest<RxRestCollection<T> & T[] & T, T> implements Iterable<RxRestItem<T>> { length: number; [Symbol.iterator]: () => Iterator<RxRestItem<T>>; $elements: RxRestItem<T>[]; getList<T>( queryParams?: Object|URLSearchParams, headers?: Object|Headers): Observable<RxRestItem<T>|RxRestCollection<T>>; clone<T>(): RxRestCollection<T> & T[]; plain(): T[]; } interface RequestInterceptor { (request: Request): Observable<Request>|Promise<Request>|undefined|Request|void; } interface ResponseInterceptor { (body: Body): Observable<Body|Object|undefined>|Promise<Body|Object|undefined>|undefined|Body|void; } interface ErrorInterceptor { (response: Response): Observable<Response>|void|Response|Promise<Response>; } type BodyParam<T> = RxRestItem<T>|FormData|URLSearchParams|Body|Blob|undefined|Object; interface RequestBodyHandler<T> { (body: BodyParam<T>): FormData|URLSearchParams|Body|Blob|undefined|string|Promise<any> } interface ResponseBodyHandler { (body: Response): Promise<any> } interface ErrorResponse extends Response { name: string; message: string; } interface RequestOptions { method: string; headers?: Headers; body?: Body|Blob|FormData|URLSearchParams|Object; mode?: string; credentials?: string; cache?: string; redirect?: string; referrer?: string; integrity?: string; } class RxRestConfiguration { constructor(); baseURL: string; identifier: string; uuid: boolean; requestInterceptors: RequestInterceptor[]; responseInterceptors: ResponseInterceptor[]; errorInterceptors: ErrorInterceptor[]; headers: Headers; queryParams: URLSearchParams; fetch: any; abortCallback: (req: Request) => void; requestBodyHandler(body: FormData | URLSearchParams | Body | Blob | undefined): FormData | URLSearchParams | Body | Blob | undefined | string | Promise<any>; responseBodyHandler(body: Response): Promise<any>; } }