Files
community-rule/lib/server/uploads/uploadConstants.ts
T

34 lines
1.1 KiB
TypeScript

export type { CreateFlowUploadPurpose } from "../../create/createFlowUploadPurpose";
export { CREATE_FLOW_UPLOAD_PURPOSES } from "../../create/createFlowUploadPurpose";
export { maxBytesForPurpose } from "../../create/createFlowUploadValidation";
/** Max body size for multipart upload (bytes). */
export const CREATE_FLOW_UPLOAD_MAX_BYTES = 12 * 1024 * 1024;
/** Extension including dot, from normalized mime (lowercase). */
export function extensionForMime(mime: string): string {
const m = mime.toLowerCase().split(";")[0]?.trim() ?? "";
switch (m) {
case "image/jpeg":
return ".jpg";
case "image/png":
return ".png";
case "image/webp":
return ".webp";
case "image/gif":
return ".gif";
case "application/pdf":
return ".pdf";
default:
return ".bin";
}
}
/** Strict id: uuid v4 filename stem (no extension in id param for GET). */
const UPLOAD_ID_RE =
/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
export function isValidUploadFileId(id: string): boolean {
return UPLOAD_ID_RE.test(id);
}