(buffer: Buffer | undefined)
| 747 | }).filter((e) => e.length > 0 && e.type !== "text"); |
| 748 | } |
| 749 | |
| 750 | async function normalizeAvatarBuffer(buffer: Buffer): Promise<Buffer | undefined> { |
| 751 | if (!buffer || buffer.length === 0) return undefined; |
| 752 | try { |
| 753 | const meta = await (await getSharp())(buffer).metadata(); |
| 754 | if (!meta.width || !meta.height) return undefined; |
| 755 | const side = Math.min(meta.width, meta.height); |
| 756 | const left = Math.max(0, Math.floor(((meta.width || side) - side) / 2)); |
| 757 | const top = Math.max(0, Math.floor(((meta.height || side) - side) / 2)); |
| 758 | return await (await getSharp())(buffer) |
| 759 | .extract({ left, top, width: side, height: side }) |
| 760 | .resize(256, 256, { fit: "cover", position: "centre" }) |
no test coverage detected