UNPKG

nitropage

Version:

A free and open source, extensible visual page builder based on SolidStart.

25 lines (19 loc) 765 B
import { urlJoin } from "#utils/url/urlJoin"; import { NitroMedia } from "@prisma/client"; import { type Readable } from "stream"; import { fileType, svgMime } from "../../media"; const basePath = "/media"; export const joinMediaUrl = (...parts: string[]) => urlJoin(basePath, ...parts); export const mediaImagePath = (publicId: string, ...parts: string[]) => joinMediaUrl("image", publicId, ...parts); export const isOptimizable = (media: Partial<NitroMedia> & { mime: string }) => media.mime !== svgMime && !media.isAnimated && fileType(media.mime) === "image"; export const bufferFromReadable = async (readable: Readable) => { const chunks = []; for await (let chunk of readable) { chunks.push(chunk); } return Buffer.concat(chunks); };