Files

26 lines
645 B
TypeScript

import path from "path";
import fs from "fs";
const UPLOAD_DIR = process.env.UPLOAD_DIR || path.join(process.cwd(), "public", "uploads");
export function getUploadDir(subdir = "") {
const dir = path.join(UPLOAD_DIR, subdir);
if (!fs.existsSync(dir)) {
fs.mkdirSync(dir, { recursive: true });
}
return dir;
}
export function getPublicUrl(filename: string, subdir = "") {
const base = subdir ? `/${subdir}` : "";
return `${base}/${filename}`;
}
export function sanitizeFilename(name: string) {
return name
.normalize("NFD")
.replace(/[\u0300-\u036f]/g, "")
.replace(/[^a-zA-Z0-9._-]/g, "_")
.toLowerCase();
}