export async function sendFastlyPurgeRequestWithRetries()

in lib/recipes-data/src/lib/fastly.ts [109:151]


export async function sendFastlyPurgeRequestWithRetries({
	contentPath,
	apiKey,
	contentPrefix,
	purgeType,
	retryCount,
}: {
	contentPath: string;
	apiKey: string;
	contentPrefix: string;
	purgeType?: PurgeType;
	retryCount?: number;
}): Promise<void> {
	try {
		return sendFastlyPurgeRequest({
			contentPath,
			apiKey,
			contentPrefix,
			purgeType,
		});
	} catch (err) {
		if (err instanceof FastlyError) {
			const nextRetry = retryCount ? retryCount + 1 : 1;
			if (
				nextRetry > MaximumRetries ||
				!MaximumRetries ||
				isNaN(MaximumRetries)
			) {
				throw err; //we give up! it ain't gonna work.
			}
			await awaitableDelay();
			return sendFastlyPurgeRequestWithRetries({
				contentPath,
				apiKey,
				contentPrefix,
				purgeType,
				retryCount: nextRetry,
			});
		} else {
			throw err;
		}
	}
}