scripts/check-syntax.mjs Repository PiTcA Original path scripts/check-syntax.mjsRole SOURCE Size 963 bytes Lines 29 SHA-256 f109de709133c950ffdae406422647e6bf0ae333cc6a4ed06d04c9ecfbbdaa62Displayed range 1–29 Previous file/page · Project index · Next file/page
import fs from 'node:fs';
import path from 'node:path';
import { spawnSync } from 'node:child_process';
import { fileURLToPath } from 'node:url';
const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..');
const ignored = new Set(['node_modules', '.git', 'downloads']);
const files = [];
function walk(dir) {
for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
if (ignored.has(entry.name)) continue;
const full = path.join(dir, entry.name);
if (entry.isDirectory()) walk(full);
else if (/\.(?:js|cjs|mjs)$/.test(entry.name)) files.push(full);
}
}
walk(root);
for (const file of files) {
const result = spawnSync(process.execPath, ['--check', file], { encoding: 'utf8' });
if (result.status !== 0) {
process.stderr.write(result.stderr || result.stdout);
process.exit(result.status || 1);
}
}
console.log(`Syntax OK: ${files.length} JavaScript files checked.`);