docs: test doc for decorator templates (#23902) (#23902)

PR Close #23902

PR Close #23902
This commit is contained in:
Judy Bogart
2018-05-14 08:37:43 -07:00
committed by Jason Aden
parent 2a68ba4cbb
commit 7d318743c1
4 changed files with 549 additions and 455 deletions

View File

@ -19,12 +19,13 @@ import {BrowserXhr, HttpXhrBackend, XhrFactory} from './xhr';
import {HttpXsrfCookieExtractor, HttpXsrfInterceptor, HttpXsrfTokenExtractor, XSRF_COOKIE_NAME, XSRF_HEADER_NAME} from './xsrf';
/**
* An `HttpHandler` that applies a bunch of `HttpInterceptor`s
* An injectable `HttpHandler` that applies multiple interceptors
* to a request before passing it to the given `HttpBackend`.
*
* The interceptors are loaded lazily from the injector, to allow
* interceptors to themselves inject classes depending indirectly
* on `HttpInterceptingHandler` itself.
* @see `HttpInterceptor`
*/
@Injectable()
export class HttpInterceptingHandler implements HttpHandler {
@ -42,6 +43,23 @@ export class HttpInterceptingHandler implements HttpHandler {
}
}
/**
* Constructs an `HttpHandler` that applies interceptors
* to a request before passing it to the given `HttpBackend`.
*
* Use as a factory function within `HttpClientModule`.
*
*
*/
export function interceptingHandler(
backend: HttpBackend, interceptors: HttpInterceptor[] | null = []): HttpHandler {
if (!interceptors) {
return backend;
}
return interceptors.reduceRight(
(next, interceptor) => new HttpInterceptorHandler(next, interceptor), backend);
}
/**
* Factory function that determines where to store JSONP callbacks.
*
@ -58,14 +76,14 @@ export function jsonpCallbackContext(): Object {
}
/**
* `NgModule` which adds XSRF protection support to outgoing requests.
* An NgModule that adds XSRF protection support to outgoing requests.
*
* Provided the server supports a cookie-based XSRF protection system, this
* module can be used directly to configure XSRF protection with the correct
* For a server that supports a cookie-based XSRF protection system,
* use directly to configure XSRF protection with the correct
* cookie and header names.
*
* If no such names are provided, the default is to use `X-XSRF-TOKEN` for
* the header name and `XSRF-TOKEN` for the cookie name.
* If no names are supplied, the default cookie name is `XSRF-TOKEN`
* and the default header name is `X-XSRF-TOKEN`.
*
*
*/
@ -92,8 +110,12 @@ export class HttpClientXsrfModule {
}
/**
* Configure XSRF protection to use the given cookie name or header name,
* or the default names (as described above) if not provided.
* Configure XSRF protection.
* @param options An object that can specify either or both
* cookie name or header name.
* - Cookie name default is `XSRF-TOKEN`.
* - Header name default is `X-XSRF-TOKEN`.
*
*/
static withOptions(options: {
cookieName?: string,
@ -110,7 +132,7 @@ export class HttpClientXsrfModule {
}
/**
* `NgModule` which provides the `HttpClient` and associated services.
* An NgModule that provides the `HttpClient` and associated services.
*
* Interceptors can be added to the chain behind `HttpClient` by binding them
* to the multiprovider for `HTTP_INTERCEPTORS`.
@ -118,12 +140,18 @@ export class HttpClientXsrfModule {
*
*/
@NgModule({
/**
* Optional configuration for XSRF protection.
*/
imports: [
HttpClientXsrfModule.withOptions({
cookieName: 'XSRF-TOKEN',
headerName: 'X-XSRF-TOKEN',
}),
],
/**
* The module provides `HttpClient` itself, and supporting services.
*/
providers: [
HttpClient,
{provide: HttpHandler, useClass: HttpInterceptingHandler},
@ -137,7 +165,7 @@ export class HttpClientModule {
}
/**
* `NgModule` which enables JSONP support in `HttpClient`.
* An NgModule that enables JSONP support in `HttpClient`.
*
* Without this module, Jsonp requests will reach the backend
* with method JSONP, where they'll be rejected.