UNPKG

5.42 kBTypeScriptView Raw
1import { Observable } from 'rxjs/Observable';
2import { Subject } from 'rxjs/Subject';
3import 'rxjs/add/operator/map';
4import { RestHeaders } from './rest-headers';
5import { Rest } from './rest.class';
6import { Cookie } from './cookie';
7import { Mapping } from './mapping';
8import { Models as HelpersModels } from 'typescript-class-helpers/browser/models';
9import { Circ } from 'json10/browser';
10import { RequestCache } from './request-cache';
11export declare namespace Models {
12 export import HttpMethod = HelpersModels.HttpMethod;
13 export import ParamType = HelpersModels.ParamType;
14 export import MethodConfig = HelpersModels.MethodConfig;
15 export import ClassConfig = HelpersModels.ClassConfig;
16 export import ParamConfig = HelpersModels.ParamConfig;
17 interface HandleResultOptions {
18 res: Models.MockResponse;
19 method: Models.HttpMethod;
20 jobid?: number;
21 isArray?: boolean;
22 }
23 interface HandleResultSourceRequestOptions {
24 url: string;
25 method: Models.HttpMethod;
26 body: any;
27 isArray: boolean;
28 }
29 type BackendError = {
30 msg?: string;
31 stack?: string[];
32 data: any;
33 };
34 type MetaRequest = {
35 path: string;
36 endpoint: string;
37 entity: Mapping.Mapping;
38 circular: Circ[];
39 };
40 type HttpCode = 200 | 400 | 401 | 404 | 500;
41 type PromiseObservableMix<T> = Promise<T> & {
42 cache?: RequestCache;
43 observable: Observable<T>;
44 };
45 type MethodWithoutBody<E, T, R = PromiseObservableMix<E>> = (params?: UrlParams[], doNotSerializeParams?: boolean) => R;
46 type MethodWithBody<E, T, R = PromiseObservableMix<E>> = (item?: T, params?: UrlParams[], doNotSerializeParams?: boolean) => R;
47 type ReplayData = {
48 subject: Subject<any>;
49 data: {
50 url: string;
51 body: string;
52 headers: RestHeaders;
53 isArray: boolean;
54 };
55 id: number;
56 };
57 type ReqParams = {
58 url: string;
59 method: HelpersModels.HttpMethod;
60 headers?: RestHeaders;
61 body?: any;
62 jobid: number;
63 isArray: boolean;
64 };
65 interface ResourceModel<A, TA> {
66 model: (pathModels?: Object, responseObjectType?: Function) => Rest<A, TA>;
67 replay: (method: HelpersModels.HttpMethod) => void;
68 headers: RestHeaders;
69 }
70 interface Ng2RestMethods<E, T> {
71 get: MethodWithoutBody<E, T>;
72 post: MethodWithBody<E, T>;
73 put: MethodWithBody<E, T>;
74 patch: MethodWithBody<E, T>;
75 head: MethodWithoutBody<E, T>;
76 delete: MethodWithoutBody<E, T>;
77 jsonp: MethodWithoutBody<E, T>;
78 }
79 type MockController = (url: string, method: HelpersModels.HttpMethod, headers?: RestHeaders, body?: any) => MockResponse;
80 type MockHttp = (MockResponse | MockController);
81 interface FnMethodsHttp<T, TA> extends Ng2RestMethods<HttpResponse<T>, T> {
82 array: Ng2RestMethods<HttpResponse<TA>, TA>;
83 }
84 interface FnMethodsHttpWithMock<T, TA> extends Ng2RestMethods<HttpResponse<T>, T> {
85 array: Ng2RestMethods<HttpResponse<TA>, TA>;
86 mock(mock: MockHttp, code: HttpCode): FnMethodsHttp<T, TA>;
87 }
88 interface NestedParams {
89 [params: string]: string;
90 }
91 interface UrlParams {
92 [urlModelName: string]: string | number | boolean | RegExp | Object;
93 regex?: RegExp;
94 }
95 abstract class BaseBody {
96 protected toJSON(data: any, isJSONArray?: boolean): any;
97 }
98 class HttpBody<T> extends BaseBody {
99 private body;
100 private isArray;
101 private entity;
102 private circular;
103 constructor(body: string, isArray: boolean, entity: Mapping.Mapping, circular: Circ[]);
104 get json(): T;
105 get text(): string;
106 }
107 class ErrorBody extends BaseBody {
108 private data;
109 constructor(data: any);
110 get json(): Object;
111 get text(): any;
112 }
113 abstract class BaseResponse<T> {
114 responseText?: string;
115 readonly headers?: RestHeaders;
116 readonly statusCode?: HttpCode | number;
117 isArray: boolean;
118 protected static readonly cookies: Cookie;
119 get cookies(): Cookie;
120 constructor(responseText?: string, headers?: RestHeaders, statusCode?: HttpCode | number, isArray?: boolean);
121 }
122 class HttpResponse<T> extends BaseResponse<T> {
123 sourceRequest: Models.HandleResultSourceRequestOptions;
124 responseText?: string;
125 headers?: RestHeaders;
126 statusCode?: HttpCode | number;
127 entity?: Mapping.Mapping;
128 circular?: Circ[];
129 isArray: boolean;
130 body?: HttpBody<T>;
131 rq: RequestCache;
132 constructor(sourceRequest: Models.HandleResultSourceRequestOptions, responseText?: string, headers?: RestHeaders, statusCode?: HttpCode | number, entity?: Mapping.Mapping, circular?: Circ[], isArray?: boolean);
133 init(): void;
134 get cache(): RequestCache;
135 }
136 class HttpResponseError extends BaseResponse<any> {
137 message: string;
138 private body;
139 constructor(message: string, responseText?: string, headers?: RestHeaders, statusCode?: HttpCode | number);
140 }
141 interface MockResponse {
142 data?: any;
143 code?: HttpCode;
144 error?: string;
145 headers?: RestHeaders;
146 jobid?: number;
147 isArray: boolean;
148 }
149}