import {DEFAULT_PALETTE_COLOR_COUNT, GetImageMetadataOptions, ImageMetadata} from './common'; const doGetImageMetadata = async (input: string | Buffer, options = {} as GetImageMetadataOptions): Promise> => { const { paletteColorCount = DEFAULT_PALETTE_COLOR_COUNT } = options; const { imageSize, disableFS } = await import('image-size'); disableFS(true); const { default: getColors } = await import('get-image-colors'); const dimensions = imageSize(input); const palette = await getColors(input, { count: paletteColorCount }); return { width: dimensions.width, height: dimensions.height, palette: palette.map((color) => color.rgb()), }; }; export const getMetadataFromUrl = (imageUrl: string, options?: GetImageMetadataOptions): Promise> => doGetImageMetadata(imageUrl, options); export const getMetadataFromBuffer = (buffer: Buffer, options?: GetImageMetadataOptions): Promise> => doGetImageMetadata(buffer, options);