---
type: JS Module
title: with-lock.mjs
resource: npm/scripts/utils/with-lock.mjs
docgen:
  crc: 45df57fc
  score: 95
---

Файл реалізує механізм захисту важких команд через атомарне блокування та унікалізацію результатів. Функції дозволяють перевіряти можливість повторного використання результату з кешу та виконувати команду через серіалізований механізм. Механізм використовує `mkdirSync-based lock` та `sha256-dedup` з TTL.

## Поведінка

shouldDedup
Перевіряє можливість повторного використання результату з кешу.

withLock
Серіалізує важку команду через атомарний lock та dedup.

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

shouldDedup — Чи можна пропустити повторний прогін за кешованим result.json.
withLock — Серіалізує важку команду через атомарний lock і dedup за fingerprint.

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

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