Initial commit: Angular frontend and Expressjs backend
This commit is contained in:
23
worklenz-backend/src/middlewares/image-to-webp.ts
Normal file
23
worklenz-backend/src/middlewares/image-to-webp.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
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"));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user