Skip to content

Commit 49566f5

Browse files
huozhiijjk
authored andcommitted
Fix vercel og package memory leak (#70214)
# Conflicts: # pnpm-lock.yaml
1 parent 62fbd7f commit 49566f5

File tree

7 files changed

+20
-13
lines changed

7 files changed

+20
-13
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@
115115
"@typescript-eslint/eslint-plugin": "6.14.0",
116116
"@typescript-eslint/parser": "6.14.0",
117117
"@vercel/fetch": "6.1.1",
118-
"@vercel/og": "0.6.2",
118+
"@vercel/og": "0.6.3",
119119
"abort-controller": "3.0.0",
120120
"alex": "9.1.0",
121121
"amphtml-validator": "1.0.35",

packages/next/src/compiled/@vercel/og/index.edge.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18784,7 +18784,11 @@ async function render(satori, resvg, opts, defaultFonts, element) {
1878418784
value: options.width
1878518785
}
1878618786
});
18787-
return resvgJS.render().asPng();
18787+
const pngData = resvgJS.render();
18788+
const pngBuffer = pngData.asPng();
18789+
pngData.free();
18790+
resvgJS.free();
18791+
return pngBuffer;
1878818792
}
1878918793

1879018794
// src/figma/index.tsx

packages/next/src/compiled/@vercel/og/index.node.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18786,7 +18786,11 @@ async function render(satori2, resvg, opts, defaultFonts, element) {
1878618786
value: options.width
1878718787
}
1878818788
});
18789-
return resvgJS.render().asPng();
18789+
const pngData = resvgJS.render();
18790+
const pngBuffer = pngData.asPng();
18791+
pngData.free();
18792+
resvgJS.free();
18793+
return pngBuffer;
1879018794
}
1879118795

1879218796
// src/figma/index.tsx
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
export default function render(satori: any, resvg: any, opts: any, defaultFonts: any, element: any): Promise<any>;
1+
export default function render(satori: any, resvg: any, opts: any, defaultFonts: any, element: any): Promise<Uint8Array>;

packages/next/src/compiled/@vercel/og/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@vercel/og",
3-
"version": "0.6.2",
3+
"version": "0.6.3",
44
"LICENSE": "MLP-2.0",
55
"type": "module",
66
"main": "./index.node.js",

packages/next/taskfile.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -210,10 +210,9 @@ export async function copy_vercel_og(task, opts) {
210210
.run({ every: true }, function* (file) {
211211
const source = file.data.toString()
212212
// Refers to copied satori types
213-
file.data = source.replace(
214-
/['"]satori['"]/g,
215-
'"next/dist/compiled/@vercel/og/satori"'
216-
)
213+
file.data = source
214+
.replace(/['"]satori['"]/g, '"next/dist/compiled/@vercel/og/satori"')
215+
.replace("typeof import('@resvg/resvg-wasm')", 'any')
217216
})
218217
.target('src/compiled/@vercel/og')
219218

pnpm-lock.yaml

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)