2024-01-01 14:58:21 -05:00
|
|
|
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
2022-09-28 08:11:12 -04:00
|
|
|
|
|
|
|
// deno-lint-ignore-file no-var
|
|
|
|
|
|
|
|
/// <reference no-default-lib="true" />
|
|
|
|
/// <reference lib="esnext" />
|
|
|
|
|
|
|
|
/** @category Cache API */
|
|
|
|
declare var caches: CacheStorage;
|
|
|
|
|
|
|
|
/** @category Cache API */
|
|
|
|
declare interface CacheStorage {
|
|
|
|
/** Open a cache storage for the provided name. */
|
|
|
|
open(cacheName: string): Promise<Cache>;
|
|
|
|
/** Check if cache already exists for the provided name. */
|
|
|
|
has(cacheName: string): Promise<boolean>;
|
|
|
|
/** Delete cache storage for the provided name. */
|
|
|
|
delete(cacheName: string): Promise<boolean>;
|
|
|
|
}
|
|
|
|
|
|
|
|
/** @category Cache API */
|
|
|
|
declare interface Cache {
|
|
|
|
/**
|
|
|
|
* Put the provided request/response into the cache.
|
|
|
|
*
|
|
|
|
* How is the API different from browsers?
|
|
|
|
* 1. You cannot match cache objects using by relative paths.
|
|
|
|
* 2. You cannot pass options like `ignoreVary`, `ignoreMethod`, `ignoreSearch`.
|
|
|
|
*/
|
|
|
|
put(request: RequestInfo | URL, response: Response): Promise<void>;
|
|
|
|
/**
|
|
|
|
* Return cache object matching the provided request.
|
|
|
|
*
|
|
|
|
* How is the API different from browsers?
|
|
|
|
* 1. You cannot match cache objects using by relative paths.
|
|
|
|
* 2. You cannot pass options like `ignoreVary`, `ignoreMethod`, `ignoreSearch`.
|
|
|
|
*/
|
|
|
|
match(
|
|
|
|
request: RequestInfo | URL,
|
|
|
|
options?: CacheQueryOptions,
|
|
|
|
): Promise<Response | undefined>;
|
|
|
|
/**
|
|
|
|
* Delete cache object matching the provided request.
|
|
|
|
*
|
|
|
|
* How is the API different from browsers?
|
|
|
|
* 1. You cannot delete cache objects using by relative paths.
|
|
|
|
* 2. You cannot pass options like `ignoreVary`, `ignoreMethod`, `ignoreSearch`.
|
|
|
|
*/
|
|
|
|
delete(
|
|
|
|
request: RequestInfo | URL,
|
|
|
|
options?: CacheQueryOptions,
|
|
|
|
): Promise<boolean>;
|
|
|
|
}
|
|
|
|
|
|
|
|
/** @category Cache API */
|
|
|
|
declare var Cache: {
|
2023-07-03 14:36:55 -04:00
|
|
|
readonly prototype: Cache;
|
|
|
|
new (): never;
|
2022-09-28 08:11:12 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
/** @category Cache API */
|
|
|
|
declare var CacheStorage: {
|
2023-07-03 14:36:55 -04:00
|
|
|
readonly prototype: CacheStorage;
|
|
|
|
new (): never;
|
2022-09-28 08:11:12 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
/** @category Cache API */
|
2023-07-03 14:36:55 -04:00
|
|
|
declare interface CacheQueryOptions {
|
2022-09-28 08:11:12 -04:00
|
|
|
ignoreMethod?: boolean;
|
|
|
|
ignoreSearch?: boolean;
|
|
|
|
ignoreVary?: boolean;
|
|
|
|
}
|