Ensure caching implementations store the correct data and use appropriate strategies for the context. Cache should store the final processed output, not intermediate or input data, and should include strategy options for different security/performance requirements.
Ensure caching implementations store the correct data and use appropriate strategies for the context. Cache should store the final processed output, not intermediate or input data, and should include strategy options for different security/performance requirements.
Key considerations:
--write
flag, cache the formatted content, not the unformatted input.--cache-strategy
option.Example implementation:
// Good: Store formatted output and handle strategy
if (isCacheExists && cacheStrategy === "content") {
result = { formatted: input };
} else {
result = format(context, input, options);
// Cache the formatted result, not the input
formatResultsCache?.setFormatResultsCache(filename, result.formatted, options);
}
// Good: Handle cache format changes
try {
this.#fileEntryCache = fileEntryCache.createFromFile(cacheFileLocation, useChecksum);
} catch {
// If cache format changed, delete and retry
fs.unlinkSync(cacheFileLocation);
this.#fileEntryCache = fileEntryCache.createFromFile(cacheFileLocation, useChecksum);
}
This ensures cache reliability and prevents subtle bugs where cached data doesn’t match expected output.
Enter the URL of a public GitHub repository