Add portfolio thingies

This commit is contained in:
2025-12-25 09:24:27 +01:00
parent ee454261cb
commit ededf3df06
13 changed files with 332 additions and 103 deletions

View File

@ -6,8 +6,9 @@ import { PutObjectCommand } from "@aws-sdk/client-s3";
import "dotenv/config";
import sharp from "sharp";
import { v4 as uuidv4 } from "uuid";
import { generateArtworkColorsForArtwork } from "../artworks/generateArtworkColors";
export async function createImageFromFile(imageFile: File, opts?: { originalName?: string }) {
export async function createImageFromFile(imageFile: File, opts?: { originalName?: string, colorMode?: "inline" | "defer" | "off" }) {
if (!(imageFile instanceof File)) {
console.log("No image or invalid type");
return null;
@ -126,6 +127,7 @@ export async function createImageFromFile(imageFile: File, opts?: { originalName
slug: artworkSlug,
creationDate: lastModified,
fileId: fileRecord.id,
colorStatus: "PENDING",
},
});
@ -194,5 +196,16 @@ export async function createImageFromFile(imageFile: File, opts?: { originalName
],
});
const mode = opts?.colorMode ?? "defer";
if (mode === "inline") {
// blocks, but guarantees sortKey is ready immediately
await generateArtworkColorsForArtwork(artworkRecord.id);
} else if (mode === "defer") {
// mark pending; a separate job will process these
// (nothing else to do here)
}
return artworkRecord;
}