mirror of
https://github.com/hanzoai/next.js.git
synced 2026-09-24 17:00:51 +00:00
## Description This PR ensures that the default prettier config is used for examples and templates. This config is compatible with `prettier@3` as well (upgrading prettier is bigger change that can be a future PR). ## Changes - Updated `.prettierrc.json` in root with `"trailingComma": "es5"` (will be needed upgrading to prettier@3) - Added `examples/.prettierrc.json` with default config (this will change every example) - Added `packages/create-next-app/templates/.prettierrc.json` with default config (this will change every template) ## Related - Fixes #54402 - Closes #54409
26 lines
782 B
TypeScript
26 lines
782 B
TypeScript
import imagemin from "imagemin";
|
|
import imageminJpegtran from "imagemin-jpegtran";
|
|
import type { ImageProps } from "./types";
|
|
|
|
const cache = new Map<ImageProps, string>();
|
|
|
|
export default async function getBase64ImageUrl(
|
|
image: ImageProps,
|
|
): Promise<string> {
|
|
let url = cache.get(image);
|
|
if (url) {
|
|
return url;
|
|
}
|
|
const response = await fetch(
|
|
`https://res.cloudinary.com/${process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME}/image/upload/f_jpg,w_8,q_70/${image.public_id}.${image.format}`,
|
|
);
|
|
const buffer = await response.arrayBuffer();
|
|
const minified = await imagemin.buffer(Buffer.from(buffer), {
|
|
plugins: [imageminJpegtran()],
|
|
});
|
|
|
|
url = `data:image/jpeg;base64,${Buffer.from(minified).toString("base64")}`;
|
|
cache.set(image, url);
|
|
return url;
|
|
}
|