import type { PublicBucketError, PublicBucketErrorCode } from '$lib/types/bucket-state'; import { HfBucketError } from './client'; function codeFromError(error: unknown): PublicBucketErrorCode { if (error instanceof HfBucketError) { if (error.status === 401) return 'unauthorized'; if (error.status === 403) return 'forbidden'; if (error.status === 404) return 'not_found'; const message = error.message.toLowerCase(); if (message.includes('hf_token')) return 'missing_token'; if (message.includes('timed out')) return 'timeout'; if (message.includes('valid json')) return 'invalid_json'; if (message.includes('hash')) return 'hash_mismatch'; if ( message.includes('validation') || message.includes('schema') || message.includes('duplicate') || message.includes('unknown') ) { return 'invalid_schema'; } } return 'unknown'; } export function toPublicBucketError(error: unknown): PublicBucketError { if (error instanceof HfBucketError) { return { code: codeFromError(error), message: error.message, status: error.status }; } return { code: 'unknown', message: error instanceof Error ? error.message : 'Unknown bucket error.' }; }