fix: use readFile utility in hooks and add pattern type safety

- Replace raw fs.readFileSync with readFile() from utils in
  check-console-log.js and post-edit-console-warn.js to eliminate
  TOCTOU race conditions (file deleted between existsSync and read)
- Remove redundant existsSync in post-edit-format.js (exec already
  handles missing files via its catch block)
- Resolve path upfront in post-edit-typecheck.js before tsconfig walk
- Add type guard in getGitModifiedFiles() to skip non-string and
  empty patterns before regex compilation
This commit is contained in:
Affaan Mustafa
2026-02-12 15:28:30 -08:00
parent 911d38f686
commit e7b5c62eb7
5 changed files with 14 additions and 9 deletions

View File

@@ -14,7 +14,7 @@
*/
const fs = require('fs');
const { isGitRepo, getGitModifiedFiles, log } = require('../lib/utils');
const { isGitRepo, getGitModifiedFiles, readFile, log } = require('../lib/utils');
// Files where console.log is expected and should not trigger warnings
const EXCLUDED_PATTERNS = [
@@ -49,8 +49,8 @@ process.stdin.on('end', () => {
let hasConsole = false;
for (const file of files) {
const content = fs.readFileSync(file, 'utf8');
if (content.includes('console.log')) {
const content = readFile(file);
if (content && content.includes('console.log')) {
log(`[Hook] WARNING: console.log found in ${file}`);
hasConsole = true;
}