UNPKG

@npio/internals

Version:

A free visual website editor, powered with your own SolidJS components.

43 lines (35 loc) 946 B
import { NitroMedia } from "@prisma/client"; import { useFilesystemDriver } from "../filesystem"; import { useDatabase } from "../prisma"; import { joinMediaUrl, mediaImagePath } from "./util"; export const deleteMedia = async function (id: string) { const prisma = useDatabase(); const media = await prisma.nitroMedia.findUniqueOrThrow({ where: { id, }, }); const fs = useFilesystemDriver(media.driver); await flushMediaCache(media); try { // Delete raw media file await fs.delete({ name: joinMediaUrl(media.file), }); } catch (err) {} return await prisma.nitroMedia.delete({ where: { id, }, }); }; // Delete optimized images export const flushMediaCache = async function (media: NitroMedia) { const fs = useFilesystemDriver(media.driver); try { await fs.deleteDir({ name: mediaImagePath(media.publicId), }); } catch (err) { console.log(err); } };