main
 1import crypto from "node:crypto";
 2
 3export function getBase64ImageInfo(
 4  src: string,
 5): { filename: string; base64Data: string; ext: string } | null {
 6  const match = src.match(/^data:image\/([^;]+);base64,(.+)$/);
 7  if (!match) {
 8    return null;
 9  }
10
11  const ext = match[1] === "svg+xml" ? "svg" : match[1];
12  const base64Data = match[2];
13
14  const hash = crypto
15    .createHash("sha256")
16    .update(base64Data)
17    .digest("hex")
18    .slice(0, 12);
19
20  const filename = `${hash}.${ext}`;
21
22  return { filename, base64Data, ext };
23}