feat: Implement throttling and retry logic in secure-fs module

- Added concurrency limiting using p-limit to prevent ENFILE/EMFILE errors.
- Introduced retry logic with exponential backoff for transient file descriptor errors.
- Enhanced secure-fs with new functions for configuring throttling and monitoring active/pending operations.
- Added unit tests for throttling and retry logic to ensure reliability.
This commit is contained in:
Kacper
2025-12-26 00:48:14 +01:00
parent 91eeda3a73
commit 35541f810d
6 changed files with 304 additions and 24 deletions

View File

@@ -70,8 +70,9 @@ Binary file ${relativePath} added
return createNewFileDiff(relativePath, '040000', ['[Directory]']);
}
if (stats.size > MAX_SYNTHETIC_DIFF_SIZE) {
const sizeKB = Math.round(stats.size / 1024);
const fileSize = Number(stats.size);
if (fileSize > MAX_SYNTHETIC_DIFF_SIZE) {
const sizeKB = Math.round(fileSize / 1024);
return createNewFileDiff(relativePath, '100644', [
`[File too large to display: ${sizeKB}KB]`,
]);