From 3260c7449e6e284f12dc7f951057d99049169c2d Mon Sep 17 00:00:00 2001 From: Jonghyeok Park Date: Tue, 3 Mar 2026 22:11:51 +0900 Subject: [PATCH] fix(lint): remove unnecessary escape characters in regex patterns MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - doc-file-warning.js: \/ → / inside character classes (4 occurrences) - project-detect.js: \[ → [ inside character classes (2 occurrences) These are pre-existing no-useless-escape errors on upstream main. --- scripts/hooks/doc-file-warning.js | 16 +++++---- scripts/lib/project-detect.js | 57 +++++++++++++++++++------------ 2 files changed, 46 insertions(+), 27 deletions(-) diff --git a/scripts/hooks/doc-file-warning.js b/scripts/hooks/doc-file-warning.js index 497d024a..f45edc30 100644 --- a/scripts/hooks/doc-file-warning.js +++ b/scripts/hooks/doc-file-warning.js @@ -5,20 +5,24 @@ */ let data = ''; -process.stdin.on('data', c => data += c); +process.stdin.on('data', c => (data += c)); process.stdin.on('end', () => { try { const input = JSON.parse(data); const filePath = input.tool_input?.file_path || ''; - if (/\.(md|txt)$/.test(filePath) && - !/(README|CLAUDE|AGENTS|CONTRIBUTING|CHANGELOG|LICENSE|SKILL)\.md$/i.test(filePath) && - !/\.claude[\/\\]plans[\/\\]/.test(filePath) && - !/(^|[\/\\])(docs|skills|\.history)[\/\\]/.test(filePath)) { + if ( + /\.(md|txt)$/.test(filePath) && + !/(README|CLAUDE|AGENTS|CONTRIBUTING|CHANGELOG|LICENSE|SKILL)\.md$/i.test(filePath) && + !/\.claude[/\\]plans[/\\]/.test(filePath) && + !/(^|[/\\])(docs|skills|\.history)[/\\]/.test(filePath) + ) { console.error('[Hook] WARNING: Non-standard documentation file detected'); console.error('[Hook] File: ' + filePath); console.error('[Hook] Consider consolidating into README.md or docs/ directory'); } - } catch { /* ignore parse errors */ } + } catch { + /* ignore parse errors */ + } console.log(data); }); diff --git a/scripts/lib/project-detect.js b/scripts/lib/project-detect.js index 9b9bb5b1..cac0f060 100644 --- a/scripts/lib/project-detect.js +++ b/scripts/lib/project-detect.js @@ -165,10 +165,7 @@ function getPackageJsonDeps(projectDir) { const pkgPath = path.join(projectDir, 'package.json'); if (!fs.existsSync(pkgPath)) return []; const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8')); - return [ - ...Object.keys(pkg.dependencies || {}), - ...Object.keys(pkg.devDependencies || {}) - ]; + return [...Object.keys(pkg.dependencies || {}), ...Object.keys(pkg.devDependencies || {})]; } catch { return []; } @@ -190,12 +187,17 @@ function getPythonDeps(projectDir) { content.split('\n').forEach(line => { const trimmed = line.trim(); if (trimmed && !trimmed.startsWith('#') && !trimmed.startsWith('-')) { - const name = trimmed.split(/[>== { - const name = m.replace(/"/g, '').split(/[>== 0) { let depList = []; switch (rule.language) { - case 'python': depList = pyDeps; break; + case 'python': + depList = pyDeps; + break; case 'typescript': - case 'javascript': depList = npmDeps; break; - case 'golang': depList = goDeps; break; - case 'rust': depList = rustDeps; break; - case 'php': depList = composerDeps; break; - case 'elixir': depList = elixirDeps; break; + case 'javascript': + depList = npmDeps; + break; + case 'golang': + depList = goDeps; + break; + case 'rust': + depList = rustDeps; + break; + case 'php': + depList = composerDeps; + break; + case 'elixir': + depList = elixirDeps; + break; } - hasDep = rule.packageKeys.some(key => - depList.some(dep => dep.toLowerCase().includes(key.toLowerCase())) - ); + hasDep = rule.packageKeys.some(key => depList.some(dep => dep.toLowerCase().includes(key.toLowerCase()))); } if (hasMarker || hasDep) {