@speckle/shared
Version:
Shared code between various Speckle JS packages
21 lines (16 loc) • 596 B
text/typescript
export const isValidBase64Image = (data: string): boolean => {
if (!data.startsWith('data:image/')) return false
const parts = data.split(',')
if (parts.length !== 2) return false
// Remove all whitespace characters from base64 string
const base64String = parts[1].replace(/\s+/g, '')
// Validate that the cleaned string only has valid base64 characters
const base64Regex = /^[A-Za-z0-9+/]+={0,2}$/
if (!base64Regex.test(base64String)) return false
try {
const buffer = Buffer.from(base64String, 'base64')
return buffer.length > 0
} catch {
return false
}
}