| 65 | } |
| 66 | |
| 67 | function isValidState(obj: unknown): obj is CacheStatsState { |
| 68 | if (typeof obj !== 'object' || obj === null) return false |
| 69 | const s = obj as Record<string, unknown> |
| 70 | return ( |
| 71 | s['version'] === 1 && |
| 72 | (s['signature'] === null || typeof s['signature'] === 'string') && |
| 73 | (s['lastResetAt'] === null || typeof s['lastResetAt'] === 'number') && |
| 74 | (s['lastHitRate'] === null || typeof s['lastHitRate'] === 'number') |
| 75 | ) |
| 76 | } |
| 77 | |
| 78 | /** |
| 79 | * Read state file. Returns init defaults on any error (corrupt, missing, etc.). |