import { HttpRequest } from '@angular/common/http'; import { ResourceCacheItem, ResourceCacheItemPromisable } from './resource-cache-item'; /** * Interface defining the signature of a resource cache class. */ export interface ResourceCache { /** * Put that request/response pair on the cache. * @param {HttpRequest} request * @param {any} obj */ put: (request: HttpRequest, obj: ResourceCacheItemPromisable) => ResourceCacheItemPromisable; /** * Pop the response for a request from the cache. * @param {HttpRequest} request * @returns {any} */ pop: (request: HttpRequest) => ResourceCacheItemPromisable; /** * Get the response for a request from the cache. * @param {HttpRequest} request * @returns {any} */ get: (request: HttpRequest) => ResourceCacheItemPromisable; /** * Checks if the given request is on the cache. * @param {HttpRequest} request * @returns {boolean} */ has: (request: HttpRequest) => boolean; /** * Populates the cache with the given list of items. */ populate: (urlAttr: string, items: ResourceCacheItem[]) => void; /** * Invalidate all data from the cache. */ invalidate: () => void; }