From 9d4f71546a39376e6e0e1886fa7b2d36cffd013f Mon Sep 17 00:00:00 2001 From: Jordan Eldredge Date: Sun, 25 Oct 2020 14:20:27 -0700 Subject: [PATCH] Recover if individual files cannot be extracted See: https://webamp.org/?skinUrl=https://cdn.webampskins.org/skins/0a90a510fcc077b0710f4ff1a763c8c2.wsz And: https://twitter.com/diamante_loco/status/1320374866311262210?s=21 --- packages/webamp/js/skinParserUtils.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/webamp/js/skinParserUtils.ts b/packages/webamp/js/skinParserUtils.ts index a9b45835..891c53ea 100644 --- a/packages/webamp/js/skinParserUtils.ts +++ b/packages/webamp/js/skinParserUtils.ts @@ -23,9 +23,19 @@ export async function getFileFromZip( if (!files.length) { return null; } + + let contents; + try { + contents = await files[0].async(mode); + } catch (e) { + console.warn( + `Failed to extract "${fileName}.${ext}" from the skin archive.` + ); + return null; + } // Return a promise (awaitable). return { - contents: await files[0].async(mode), + contents, name: files[0].name, }; }