@@ -13,15 +13,15 @@ export class HttpCacheService {
1313 * Gets the unique key used as idenitifier to store
1414 * a cached response for the given http request.
1515 */
16- private getRequestIdentifier ( request : HttpRequest ) : string {
16+ private getRequestIdentifier < HttpRequestBodyT > ( request : HttpRequest < HttpRequestBodyT > ) : string {
1717 const fullUrl = request . urlWithParams ;
1818 return fullUrl ;
1919 }
2020
2121 /**
2222 * Tells if a cached entry is expired.
2323 */
24- private isEntryExpired < T > ( entry : HttpCacheEntry < T > ) : boolean {
24+ private isEntryExpired < HttpResponseT > ( entry : HttpCacheEntry < HttpResponseT > ) : boolean {
2525 const nowTime = new Date ( ) . getTime ( ) ;
2626 const cachedAtDate = entry . cachedAt instanceof Date ? entry . cachedAt : new Date ( entry . cachedAt ) ;
2727 const cachedTime = cachedAtDate . getTime ( ) ;
@@ -31,30 +31,32 @@ export class HttpCacheService {
3131 /**
3232 * Gets the cached entry associated with the request.
3333 */
34- private getEntry < T > ( request : HttpRequest ) : HttpCacheEntry < T > | undefined {
34+ private getEntry < HttpResponseT , HttpRequestBodyT > (
35+ request : HttpRequest < HttpRequestBodyT >
36+ ) : HttpCacheEntry < HttpResponseT > | undefined {
3537 const reqIdentifier = this . getRequestIdentifier ( request ) ;
36- return this . prefixedStore . get ( reqIdentifier ) as HttpCacheEntry < T > ;
38+ return this . prefixedStore . get ( reqIdentifier ) as HttpCacheEntry < HttpResponseT > ;
3739 }
3840
3941 /**
4042 * Removes a cached entry.
4143 */
42- private removeEntry < T > ( entry : HttpCacheEntry < T > ) : void {
44+ private removeEntry < HttpResponseT > ( entry : HttpCacheEntry < HttpResponseT > ) : void {
4345 this . prefixedStore . delete ( entry . identifier ) ;
4446 }
4547
4648 /**
4749 * Determines if for the given request is available a cached response.
4850 */
49- has ( request : HttpRequest ) : boolean {
51+ has < HttpRequestBodyT > ( request : HttpRequest < HttpRequestBodyT > ) : boolean {
5052 const key = this . getRequestIdentifier ( request ) ;
5153 return this . prefixedStore . has ( key ) ;
5254 }
5355
5456 /**
5557 * Tells if the cached request is expired or not.
5658 */
57- isExpired ( request : HttpRequest ) : boolean {
59+ isExpired < HttpRequestBodyT > ( request : HttpRequest < HttpRequestBodyT > ) : boolean {
5860 const cachedEntry = this . getEntry ( request ) ;
5961 if ( ! cachedEntry ) {
6062 return true ;
@@ -66,26 +68,31 @@ export class HttpCacheService {
6668 /**
6769 * Gets the cached entry in the map for the given request.
6870 */
69- get < T > ( request : HttpRequest ) : T | undefined {
71+ get < HttpResponseT , HttpRequestBodyT > (
72+ request : HttpRequest < HttpRequestBodyT >
73+ ) : HttpResponseT | undefined {
7074 const cachedEntry = this . getEntry ( request ) ;
7175 if ( ! cachedEntry ) {
7276 return undefined ;
7377 }
7478
7579 const isExpired = this . isEntryExpired ( cachedEntry ) ;
76- return isExpired ? undefined : ( cachedEntry . response as T ) ;
80+ return isExpired ? undefined : ( cachedEntry . response as HttpResponseT ) ;
7781 }
7882
7983 /**
8084 * Puts a new cached response for the given request.
8185 */
82- put < T > ( request : HttpRequest , response : T ) : void {
86+ put < HttpResponseT , HttpRequestBodyT > (
87+ request : HttpRequest < HttpRequestBodyT > ,
88+ response : HttpResponseT
89+ ) : void {
8390 if ( ! request . maxAge ) {
8491 return ;
8592 }
8693
8794 const reqKey = this . getRequestIdentifier ( request ) ;
88- const entry : HttpCacheEntry < T > = {
95+ const entry : HttpCacheEntry < HttpResponseT > = {
8996 response,
9097 identifier : reqKey ,
9198 cachedAt : new Date ( ) ,
0 commit comments