diff --git a/src/templates/client.hbs b/src/templates/client.hbs index 601f27d8f..9b5a70bf1 100644 --- a/src/templates/client.hbs +++ b/src/templates/client.hbs @@ -70,6 +70,8 @@ export class {{{clientName}}} { PASSWORD: config?.PASSWORD, HEADERS: config?.HEADERS, ENCODE_PATH: config?.ENCODE_PATH, + REVALIDATE: config?.REVALIDATE, + CACHE: config?.CACHE, }); {{#each services}} diff --git a/src/templates/core/OpenAPI.hbs b/src/templates/core/OpenAPI.hbs index 19e66fbf1..e7518abec 100644 --- a/src/templates/core/OpenAPI.hbs +++ b/src/templates/core/OpenAPI.hbs @@ -15,6 +15,8 @@ export type OpenAPIConfig = { PASSWORD?: string | Resolver; HEADERS?: Headers | Resolver; ENCODE_PATH?: (path: string) => string; + REVALIDATE?: number; + CACHE?: RequestCache; }; export const OpenAPI: OpenAPIConfig = { @@ -27,4 +29,6 @@ export const OpenAPI: OpenAPIConfig = { PASSWORD: undefined, HEADERS: undefined, ENCODE_PATH: undefined, + REVALIDATE: undefined, + CACHE: undefined, }; diff --git a/src/templates/core/fetch/sendRequest.hbs b/src/templates/core/fetch/sendRequest.hbs index 73f71f428..a51e4beae 100644 --- a/src/templates/core/fetch/sendRequest.hbs +++ b/src/templates/core/fetch/sendRequest.hbs @@ -20,6 +20,16 @@ export const sendRequest = async ( request.credentials = config.CREDENTIALS; } + if (config.REVALIDATE) { + request.next = { + revalidate: config.REVALIDATE, + }; + } + + if (config.CACHE) { + request.cache = config.CACHE; + } + onCancel(() => controller.abort()); return await fetch(url, request);