chore: keep the fixture generator scripts and the replay-sample bot

scripts/fixtures/ holds the scripts that produced the 2026-11-11
fixtures, with a README on running them safely into a copy. Run in
order they reproduce the content of every fixture they touch.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
This commit is contained in:
Lucas WintherandClaude Fable 5.2 committed 2026-11-11 12:13:03 +01:00
1 parent 1e3cea5eac
commit 5062838604
17 files changed
+432 -3

No files matched your search

+23
View File
@@ -0,0 +1,23 @@
import fs from 'node:fs'
// Fixture regeneration aid (see scripts/fixtures/README.md). Written during the 2026-11-11 build, kept for reference.
// Writes into fixtures/ unless FIXTURES_OUT names another directory (with a trailing slash).
const FIX = process.env.FIXTURES_OUT ?? new URL('../../fixtures/', import.meta.url).pathname
const SOL = new URL('../../js/solutions/', import.meta.url).href
const HERE = new URL('./', import.meta.url).pathname
const dir = FIX
const walk = (x) => {
if (Array.isArray(x)) return x.map(walk)
if (x && typeof x === 'object') {
const o = Object.fromEntries(Object.entries(x).map(([k, v]) => [k, walk(v)]))
return ('snake' in o && 'nextDir' in o && !('queued' in o)) ? { ...o, queued: null } : o
}
return x
}
for (const f of fs.readdirSync(dir)) {
const txt = fs.readFileSync(dir + f, 'utf8')
if (!f.endsWith('.json')) continue
const before = JSON.parse(txt)
const after = walk(before)
// Only rewrite a file whose content changed; a file with no game states keeps its formatting.
if (JSON.stringify(after) !== JSON.stringify(before)) { fs.writeFileSync(dir + f, JSON.stringify(after, null, 2) + '\n'); console.log('updated', f) }
}