(oversizedImages: OversizedImage[], maxSize: number)
| 15 | */ |
| 16 | export class ImageSizeError extends Error { |
| 17 | constructor(oversizedImages: OversizedImage[], maxSize: number) { |
| 18 | let message: string |
| 19 | const firstImage = oversizedImages[0] |
| 20 | if (oversizedImages.length === 1 && firstImage) { |
| 21 | message = |
| 22 | `Image base64 size (${formatFileSize(firstImage.size)}) exceeds API limit (${formatFileSize(maxSize)}). ` + |
| 23 | `Please resize the image before sending.` |
| 24 | } else { |
| 25 | message = |
| 26 | `${oversizedImages.length} images exceed the API limit (${formatFileSize(maxSize)}): ` + |
| 27 | oversizedImages |
| 28 | .map(img => `Image ${img.index}: ${formatFileSize(img.size)}`) |
| 29 | .join(', ') + |
| 30 | `. Please resize these images before sending.` |
| 31 | } |
| 32 | super(message) |
| 33 | this.name = 'ImageSizeError' |
| 34 | } |
| 35 | } |
| 36 | |
| 37 | /** |
nothing calls this directly
no test coverage detected