Files
wedding-website/lib/validation/upload.ts
T
Raul Lugo 4ced446c9c
Build & Deployment / Build & Deploy (push) Failing after 5s
initial commit
2026-08-10 17:55:26 +02:00

19 lines
649 B
TypeScript

import { z } from "zod"
export const allowedImageContentTypes = ["image/jpeg", "image/png", "image/webp"] as const
export const maxUploadSizeBytes = 10 * 1024 * 1024
export const presignUploadSchema = z.object({
token: z.string().min(1),
filename: z.string().trim().min(1).max(255),
contentType: z.enum(allowedImageContentTypes),
sizeBytes: z.number().int().positive().max(maxUploadSizeBytes),
})
export const completeUploadSchema = presignUploadSchema.extend({
objectKey: z.string().min(1),
})
export type PresignUploadInput = z.infer<typeof presignUploadSchema>
export type CompleteUploadInput = z.infer<typeof completeUploadSchema>