UNPKG

validate-image-type

Version:

Check the image file of a Buffer/Uint8Array that matched expected image MIME-type.

33 lines (31 loc) 694 B
const supportedImageTypes = [ "jpg", "png", "gif", "webp", "flif", "cr2", "tif", "bmp", "jxr", "psd", "ico", "bpg", "jp2", "jpm", "jpx", "heic", "cur", "dcm", "avif" ]; export type SupportedImageTypes = (typeof supportedImageTypes)[number]; const imageExts = new Set(supportedImageTypes); export const imageType = async (buffer: Buffer | Uint8Array | ArrayBuffer): Promise<SupportedImageTypes | null> => { const { fileTypeFromBuffer } = await import("file-type"); const ret = await fileTypeFromBuffer(buffer); if (!ret) { return null; } return imageExts.has(ret.ext) ? ret.mime : null; };