From ea699c112e0c66b2c1657a8a68ef498d806d73c8 Mon Sep 17 00:00:00 2001 From: Sara Vieira Date: Sat, 16 Jul 2022 21:24:59 +0200 Subject: [PATCH] create remote url option --- apps/designer/app/shared/db/assets.server.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/apps/designer/app/shared/db/assets.server.ts b/apps/designer/app/shared/db/assets.server.ts index 9992deb643..ece4d1f87b 100644 --- a/apps/designer/app/shared/db/assets.server.ts +++ b/apps/designer/app/shared/db/assets.server.ts @@ -2,6 +2,7 @@ import { type Project } from "@webstudio-is/react-sdk"; import { prisma } from "./prisma.server"; import sharp from "sharp"; import fs from "fs"; +import { fetch } from "@remix-run/node"; export const loadByProject = async (projectId?: Project["id"]) => { if (typeof projectId !== "string") { @@ -23,8 +24,15 @@ export const create = async ( let size = 0; const image = await sharp(absolutePath); const metadata = await image.metadata(); + + // if there is no absolute path then it means it's a remote image and we can use fetch if (absolutePath) { size = fs.statSync(absolutePath).size; + } else { + const arrayBuffer = await fetch(values.path).then((rsp) => + rsp.arrayBuffer() + ); + size = arrayBuffer.byteLength; } const newAsset = await prisma.asset.create({