docs(common): add `HttpParamsOptions` to the public API (#20332)

Fixes #20276

PR Close #20332
This commit is contained in:
George Kalpakas 2017-11-10 13:52:21 +02:00 committed by Miško Hevery
parent d9ae70c699
commit a9545aba4d
3 changed files with 23 additions and 20 deletions

View File

@ -15,7 +15,7 @@ import {map} from 'rxjs/operator/map';
import {HttpHandler} from './backend'; import {HttpHandler} from './backend';
import {HttpHeaders} from './headers'; import {HttpHeaders} from './headers';
import {HttpParams, HttpParamsOptions} from './params'; import {HttpParams} from './params';
import {HttpRequest} from './request'; import {HttpRequest} from './request';
import {HttpEvent, HttpResponse} from './response'; import {HttpEvent, HttpResponse} from './response';
@ -364,7 +364,7 @@ export class HttpClient {
if (options.params instanceof HttpParams) { if (options.params instanceof HttpParams) {
params = options.params; params = options.params;
} else { } else {
params = new HttpParams({ fromObject: options.params } as HttpParamsOptions); params = new HttpParams({fromObject: options.params});
} }
} }

View File

@ -73,21 +73,6 @@ interface Update {
op: 'a'|'d'|'s'; op: 'a'|'d'|'s';
} }
/** Options used to construct an `HttpParams` instance. */
export interface HttpParamsOptions {
/**
* String representation of the HTTP params in URL-query-string format. Mutually exclusive with
* `fromObject`.
*/
fromString?: string;
/** Object map of the HTTP params. Mutally exclusive with `fromString`. */
fromObject?: {[param: string]: string | string[]};
/** Encoding codec used to parse and serialize the params. */
encoder?: HttpParameterCodec;
}
/** /**
* An HTTP request/response body that represents serialized parameters, * An HTTP request/response body that represents serialized parameters,
* per the MIME type `application/x-www-form-urlencoded`. * per the MIME type `application/x-www-form-urlencoded`.
@ -102,7 +87,19 @@ export class HttpParams {
private updates: Update[]|null = null; private updates: Update[]|null = null;
private cloneFrom: HttpParams|null = null; private cloneFrom: HttpParams|null = null;
constructor(options: HttpParamsOptions = {} as HttpParamsOptions) { constructor(options = {} as {
/**
* String representation of the HTTP params in URL-query-string format. Mutually exclusive with
* `fromObject`.
*/
fromString?: string;
/** Object map of the HTTP params. Mutally exclusive with `fromString`. */
fromObject?: {[param: string]: string | string[]};
/** Encoding codec used to parse and serialize the params. */
encoder?: HttpParameterCodec;
}) {
this.encoder = options.encoder || new HttpUrlEncodingCodec(); this.encoder = options.encoder || new HttpUrlEncodingCodec();
if (!!options.fromString) { if (!!options.fromString) {
if (!!options.fromObject) { if (!!options.fromObject) {
@ -186,7 +183,7 @@ export class HttpParams {
} }
private clone(update: Update): HttpParams { private clone(update: Update): HttpParams {
const clone = new HttpParams({ encoder: this.encoder } as HttpParamsOptions); const clone = new HttpParams({encoder: this.encoder});
clone.cloneFrom = this.cloneFrom || this; clone.cloneFrom = this.cloneFrom || this;
clone.updates = (this.updates || []).concat([update]); clone.updates = (this.updates || []).concat([update]);
return clone; return clone;

View File

@ -1580,7 +1580,13 @@ export interface HttpParameterCodec {
/** @stable */ /** @stable */
export declare class HttpParams { export declare class HttpParams {
constructor(options?: HttpParamsOptions); constructor(options?: {
fromString?: string | undefined;
fromObject?: {
[param: string]: string | string[];
} | undefined;
encoder?: HttpParameterCodec | undefined;
});
append(param: string, value: string): HttpParams; append(param: string, value: string): HttpParams;
delete(param: string, value?: string): HttpParams; delete(param: string, value?: string): HttpParams;
get(param: string): string | null; get(param: string): string | null;