Filter unzip entries during .fig parse to skip non-essential files
Only decompress canvas.fig, canvas, and images/* entries. Avoids decompressing metadata and other cruft in large .fig files.
This commit is contained in:
parent
cf6747389a
commit
35bb98d1c8
|
|
@ -45,7 +45,12 @@ function parseFigKiwiContainer(data: Uint8Array): FigKiwiPayload | null {
|
|||
}
|
||||
|
||||
export async function parseFigFile(buffer: ArrayBuffer): Promise<SceneGraph> {
|
||||
const zip = unzipSync(new Uint8Array(buffer))
|
||||
const zip = unzipSync(new Uint8Array(buffer), {
|
||||
filter: (file) =>
|
||||
file.name === 'canvas.fig' ||
|
||||
file.name === 'canvas' ||
|
||||
(file.name.startsWith('images/') && file.name !== 'images/'),
|
||||
})
|
||||
const entries = Object.keys(zip)
|
||||
|
||||
let canvasData: Uint8Array | null = null
|
||||
|
|
|
|||
Loading…
Reference in a new issue