From 5f841b4bd31ffccf5adda872954b3fc766522bf8 Mon Sep 17 00:00:00 2001 From: Andrea Mazzini Date: Wed, 3 Jul 2019 17:11:23 +0200 Subject: [PATCH] Avoid trying to optimize unsupported formats --- .gitignore | 3 ++- package.json | 5 ++++- src/plugin.js | 26 ++++++++++++++++++++++++-- 3 files changed, 30 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 6551bfd..5350f43 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ dist build -node_modules \ No newline at end of file +node_modules +package-lock.json \ No newline at end of file diff --git a/package.json b/package.json index 81d3c63..47679a7 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,10 @@ "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, - "authors": ["Kornel Lesiński", "Ale Muñoz"], + "authors": [ + "Kornel Lesiński", + "Ale Muñoz" + ], "license": "MIT", "repository": "https://github.com/BohemianCoding/sketch-image-compressor", "devDependencies": { diff --git a/src/plugin.js b/src/plugin.js index e485b73..b8c39f7 100644 --- a/src/plugin.js +++ b/src/plugin.js @@ -83,8 +83,11 @@ function exportAndCompress(context){ } render.data().writeToFile_atomically(currentExport.path, true) } + // Filter out items that can't be optimized + const optimizableExports = filteredExports(exports); // …and then we'll be able to compress them :) - const urlsToCompress = getURLsToCompress(exports) + + const urlsToCompress = getURLsToCompress(optimizableExports); if (urlsToCompress.length > 0) { runImageOptim(context, urlsToCompress, false); } else { @@ -96,8 +99,27 @@ function exportAndCompress(context){ } } +function filteredExports(exports) { + var optimizableExports = NSMutableArray.new(); + + for (var i = 0; i < exports.count(); i++) { + if (!exports[i].request.format().isEqualToString("pdf") + && !exports[i].request.format().isEqualToString("webp") + && !exports[i].request.format().isEqualToString("eps") + && !exports[i].request.format().isEqualToString("svg")) { + optimizableExports.addObject(exports[i]); + } + } + + return optimizableExports; +} + function compressAutomatically(context){ - const urlsToCompress = getURLsToCompress(context.actionContext.exports) + const exports = context.actionContext.exports; + // Filter out items that can't be optimized + const optimizableExports = filteredExports(exports); + + const urlsToCompress = getURLsToCompress(optimizableExports) runImageOptim(context, urlsToCompress, true) }