---
type: JS Module
title: cache.mjs
resource: npm/src/coverage-classify/cache.mjs
docgen:
  crc: 53b251b1
  model: omlx/gemma-4-e4b-it-OptiQ-4bit
  score: 100
  issues: judge:inaccurate:0.98
  judgeModel: openai-codex/gpt-5.4-mini
---

## Огляд

Механізм кешування фіксує вердикти класифікації мутантів для прискорення аналізу. Він використовує кеш, описаний у `cache.json`, де ключами є ідентифікатори контенту у форматі `<blob-hash>:<line>:<col>:<base64url>`, що динамічно формується на основі хешу файлу (`git hash-object` або `sha1`). Збережені дані включають вердикт, рівень впевненості та причину, а інвалідація кешу спрацьовує при зміні джерела коду, що призводить до нового хешу.

## Поведінка

deriveBlobHash обчислює унікальний хеш контенту файлу, використовуючи `git hash-object` або SHA256 контенту у випадку відсутності Git.
deriveCacheKey створює унікальний ключ кешу для мутанта на основі хешу файлу, номера рядка, колонки та заміни.
readCache зчитує дані кешу з файлу, повертаючи порожній кеш у разі відсутності або некоректності.
writeCache зберігає об'єкт кешу на диск, автоматично створюючи необхідні батьківські директорії.

## Публічний API

deriveBlobHash — Створює унікальний ідентифікатор вмісту файлу (SHA1 хеш).
deriveCacheKey — Генерує ключ для кешування, що описує зміну файлу у певному стані.
readCache — Завантажує кешовані дані з диска; повертає порожній кеш при будь-якій помилці зчитування.
writeCache — Зберігає кешовані дані на диск, створюючи необхідну структуру каталогів.

## Гарантії поведінки

- Перехоплює помилки і не пропускає винятків назовні (fail-safe).
- Кешує результати в межах одного прогону.
