UNPKG

ng2-resource-rest

Version:

Angular2 resource module with simple decorators

64 lines (63 loc) 2.01 kB
import { Observable } from 'rxjs/Rx'; import { Request, RequestMethod } from '@angular/http'; import { Type } from '@angular/core'; import { ResourceModel } from './ResourceModel'; import { Resource } from './Resource'; export interface ResourceRequestInterceptor { (req: Request, methodOptions?: ResourceActionBase): Request; } export interface ResourceResponseInterceptor { (observable: Observable<any>, request?: Request, methodOptions?: ResourceActionBase): Observable<any>; } export interface ResourceResponseMap { (item: any): any; } export interface ResourceResponseInitResult { (): any; } export interface ResourceResponseFilter { (item: any): boolean; } export interface ResourceParamsCommon { url?: string; path?: string; headers?: any; params?: any; data?: any; removeTrailingSlash?: boolean; addTimestamp?: boolean | string; withCredentials?: boolean; [propName: string]: any; } export interface ResourceParamsBase extends ResourceParamsCommon { add2Provides?: boolean; providersSubSet?: string; } export interface ResourceActionBase extends ResourceParamsCommon { method?: RequestMethod; isArray?: boolean; isLazy?: boolean; requestInterceptor?: ResourceRequestInterceptor; responseInterceptor?: ResourceResponseInterceptor; initResultObject?: ResourceResponseInitResult; map?: ResourceResponseMap; filter?: ResourceResponseFilter; model?: Type<ResourceModel<Resource>>; useModel?: boolean; rootNode?: string; } export interface ResourceMethod<I, O> { (data?: I, callback?: (res: O) => any): ResourceResult<O>; } export interface ResourceMethodStrict<IB, IP, O> { (body?: IB, params?: IP, callback?: (res: O) => any): ResourceResult<O>; } export interface ResourceModelParamsBase { providers?: any[]; } export declare type ResourceResult<R extends {}> = R & { $resolved?: boolean; $observable?: Observable<R>; $abortRequest?: () => void; $resource?: Resource; };