refactor(http): remove default settings from RequestOptions constructor
The BaseRequestOptions class is responsible for declaring default values, while the RequestOptions class is merely responsible for setting values based on values provided in the constructor.
This commit is contained in:
@@ -13,18 +13,31 @@ import {BaseException} from 'angular2/src/facade/lang';
|
||||
import {EventEmitter} from 'angular2/src/facade/async';
|
||||
import {Request} from './static_request';
|
||||
|
||||
/**
|
||||
* Abstract class from which real backends are derived.
|
||||
*
|
||||
* The primary purpose of a `ConnectionBackend` is to create new connections to fulfill a given
|
||||
* {@link Request}.
|
||||
*/
|
||||
export class ConnectionBackend {
|
||||
constructor() {}
|
||||
createConnection(request: any): Connection { throw new BaseException('Abstract!'); }
|
||||
}
|
||||
|
||||
/**
|
||||
* Abstract class from which real connections are derived.
|
||||
*/
|
||||
export class Connection {
|
||||
readyState: ReadyStates;
|
||||
request: Request;
|
||||
response: EventEmitter; //<IResponse>;
|
||||
response: EventEmitter; // TODO: generic of <Response>;
|
||||
dispose(): void { throw new BaseException('Abstract!'); }
|
||||
}
|
||||
|
||||
/**
|
||||
* Interface for options to construct a Request, based on
|
||||
* [RequestInit](https://fetch.spec.whatwg.org/#requestinit) from the Fetch spec.
|
||||
*/
|
||||
export interface IRequestOptions {
|
||||
url?: string;
|
||||
method?: RequestMethods;
|
||||
@@ -36,27 +49,16 @@ export interface IRequestOptions {
|
||||
cache?: RequestCacheOpts;
|
||||
}
|
||||
|
||||
export interface ResponseOptions {
|
||||
/**
|
||||
* Interface for options to construct a Response, based on
|
||||
* [ResponseInit](https://fetch.spec.whatwg.org/#responseinit) from the Fetch spec.
|
||||
*/
|
||||
export interface IResponseOptions {
|
||||
// TODO: Support Blob, ArrayBuffer, JSON
|
||||
body?: string | Object | FormData;
|
||||
status?: number;
|
||||
statusText?: string;
|
||||
headers?: Headers | Object;
|
||||
headers?: Headers;
|
||||
type?: ResponseTypes;
|
||||
url?: string;
|
||||
}
|
||||
|
||||
export interface IResponse {
|
||||
headers: Headers;
|
||||
ok: boolean;
|
||||
status: number;
|
||||
statusText: string;
|
||||
type: ResponseTypes;
|
||||
url: string;
|
||||
totalBytes: number;
|
||||
bytesLoaded: number;
|
||||
blob(): any; // TODO: Blob
|
||||
arrayBuffer(): any; // TODO: ArrayBuffer
|
||||
text(): string;
|
||||
json(): Object;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user