24 lines
761 B
TypeScript
24 lines
761 B
TypeScript
import {NextFunction} from "express";
|
|
import sharp from "sharp";
|
|
|
|
import {IWorkLenzRequest} from "../interfaces/worklenz-request";
|
|
import {IWorkLenzResponse} from "../interfaces/worklenz-response";
|
|
import {ServerResponse} from "../models/server-response";
|
|
|
|
export default async function (req: IWorkLenzRequest, res: IWorkLenzResponse, next: NextFunction) {
|
|
if (!req.body.file) return next();
|
|
try {
|
|
const buffer = Buffer.from(req.body.file.replace(/^data:(.*?);base64,/, ""), "base64");
|
|
const out = await sharp(buffer)
|
|
.webp({quality: 50})
|
|
.toBuffer();
|
|
|
|
req.body.type = "webp";
|
|
req.body.buffer = out;
|
|
|
|
return next();
|
|
} catch (error) {
|
|
return res.status(200).send(new ServerResponse(false, null, "Upload failed"));
|
|
}
|
|
}
|