Files
commander-ai-lab/scripts/generate-precons-js.js
T
Commander AI Lab 694f085827 fix: add precons.js with 163 precon entries and fix backend precon UI refresh
- Generate lan-client/precons.js from precon-decks/precon-index.json
  so PRECON_DATA is always available for local/offline mode
- Add scripts/generate-precons-js.js for re-generation
- Fix _loadBackendPrecons() to actually re-render the precon tab UI
  when backend precons load (was only updating status indicator text)

Fixes the empty precon dropdown and 'No precon data loaded' message.
2026-04-03 13:29:24 +00:00

36 lines
1.1 KiB
JavaScript

#!/usr/bin/env node
/**
* Generate lan-client/precons.js from precon-decks/precon-index.json
* Usage: node scripts/generate-precons-js.js
*/
const fs = require('fs');
const path = require('path');
const indexPath = path.join(__dirname, '..', 'precon-decks', 'precon-index.json');
const outputPath = path.join(__dirname, '..', 'lan-client', 'precons.js');
const index = JSON.parse(fs.readFileSync(indexPath, 'utf8'));
let js = '// Auto-generated from precon-decks/precon-index.json\n';
js += '// Run: node scripts/generate-precons-js.js to regenerate\n';
js += 'var PRECON_DATA = [\n';
index.forEach(function(p, i) {
const entry = {
id: (p.fileName || p.name || '').replace('.dck', ''),
name: p.name || '',
commander: p.commander || (p.commanders && p.commanders[0]) || '',
set: p.set || '',
fileName: p.fileName || '',
colors: p.colors || [],
year: p.year || 0,
};
js += ' ' + JSON.stringify(entry);
js += (i < index.length - 1) ? ',\n' : '\n';
});
js += '];\n';
fs.writeFileSync(outputPath, js);
console.log(`Generated ${outputPath} with ${index.length} precon entries`);