| import { CorruptFrameError } from './codec.js'; | |
| export type StorageErrorAction = 'rebuild' | 'transient'; | |
| export function classifyStorageError(error: unknown): StorageErrorAction { | |
| if (error instanceof AggregateError) { | |
| return error.errors.some((inner) => classifyStorageError(inner) === 'rebuild') | |
| ? 'rebuild' | |
| : 'transient'; | |
| } | |
| if (error instanceof SyntaxError || error instanceof CorruptFrameError) return 'rebuild'; | |
| const code = (error as { code?: unknown } | null | undefined)?.code; | |
| if (code === 'WAL_WRITE_DISABLED' || code === 'WAL_POISONED') return 'rebuild'; | |
| return 'transient'; | |
| } | |