| 254 | } |
| 255 | |
| 256 | function loadState(stateFile) { |
| 257 | try { |
| 258 | const parsed = JSON.parse(fs.readFileSync(stateFile, 'utf8')); |
| 259 | if (parsed && typeof parsed === 'object' && parsed.offsets && typeof parsed.offsets === 'object') { |
| 260 | return { version: 1, offsets: parsed.offsets }; |
| 261 | } |
| 262 | } catch (error) { |
| 263 | // Missing or corrupt state file: start from the beginning of each file. |
| 264 | } |
| 265 | return { version: 1, offsets: {} }; |
| 266 | } |
| 267 | |
| 268 | function saveState(stateFile, state) { |
| 269 | fs.mkdirSync(path.dirname(stateFile), { recursive: true }); |