← back to Quadrille Showroom

scripts/syntax-check.cjs

19 lines

// Parse-only syntax check for the browser JS bundles (no DOM/THREE needed — we just
// compile the source to catch syntax errors).
const fs = require('fs');
const path = require('path');
const vm = require('vm');
const files = ['public/js/showroom.js', 'public/js/viewmodes.js'];
let ok = true;
for (const f of files) {
  const src = fs.readFileSync(path.join(__dirname, '..', f), 'utf8');
  try {
    new vm.Script(src, { filename: f });
    console.log('OK   ', f);
  } catch (e) {
    ok = false;
    console.log('FAIL ', f, '->', e.message);
  }
}
process.exit(ok ? 0 : 1);