import fs from 'fs'; import path from 'path'; import { fileURLToPath } from 'url'; import { spawnSync } from 'child_process'; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); const projectRoot = path.resolve(__dirname, '..'); const targets = ['src', 'tests']; const collectFiles = (dir) => { if (!fs.existsSync(dir)) { return []; } const entries = fs.readdirSync(dir, { withFileTypes: true }); return entries.flatMap((entry) => { const fullPath = path.join(dir, entry.name); if (entry.isDirectory()) { return collectFiles(fullPath); } if (entry.isFile() && fullPath.endsWith('.js')) { return [fullPath]; } return []; }); }; const files = targets.flatMap((target) => collectFiles(path.join(projectRoot, target))); const failures = []; files.forEach((file) => { const result = spawnSync(process.execPath, ['--check', file], { stdio: 'inherit' }); if (result.status !== 0) { failures.push(file); } }); if (failures.length > 0) { process.exit(1); }