Upgrade SVGO version to 2.8.0
authorNick Downing <nick@ndcode.org>
Mon, 10 Jan 2022 23:20:20 +0000 (10:20 +1100)
committerNick Downing <nick@ndcode.org>
Wed, 12 Jan 2022 01:20:10 +0000 (12:20 +1100)
MinSVGCache.js
package.json

index 67a7677..011cbd6 100644 (file)
@@ -22,7 +22,7 @@
  */
 
 let BuildCache = require('@ndcode/build_cache')
-let SVGO = require('svgo')
+let svgo = require('svgo')
 let assert = require('assert')
 let disk_build = require('@ndcode/disk_build')
 let fs = require('fs')
@@ -43,52 +43,51 @@ let MinSVGCache = function(diag1, diag) {
 MinSVGCache.prototype = Object.create(BuildCache.prototype)
 
 MinSVGCache.prototype.build = async function(key, result) {
-  let svgo = new SVGO(
-    {
-      plugins: [
-        {cleanupAttrs: true},
-        {removeDoctype: true},
-        {removeXMLProcInst: true},
-        {removeComments: true},
-        {removeMetadata: true},
-        {removeTitle: true},
-        {removeDesc: true},
-        {removeUselessDefs: true},
-        {removeEditorsNSData: true},
-        {removeEmptyAttrs: true},
-        {removeHiddenElems: true},
-        {removeEmptyText: true},
-        {removeEmptyContainers: true},
-        {removeViewBox: false},
-        {cleanupEnableBackground: true},
-        {convertStyleToAttrs: true},
-        {convertColors: true},
-        {convertPathData: true},
-        {convertTransform: true},
-        {removeUnknownsAndDefaults: true},
-        {removeNonInheritableGroupAttrs: true},
-        {removeUselessStrokeAndFill: true},
-        {removeUnusedNS: true},
-        {cleanupIDs: {prefix: slugify(key) + '_'}},
-        {cleanupNumericValues: true},
-        {moveElemsAttrsToGroup: true},
-        {moveGroupAttrsToElems: true},
-        {collapseGroups: true},
-        {removeRasterImages: false},
-        {mergePaths: true},
-        {convertShapeToPath: true},
-        {sortAttrs: true} //,
-        //{removeDimensions: true}//,
-        //{removeAttrs: {attrs: '(stroke|fill)'}}
-      ]
-    }
-  )
   let render = await disk_build(
     key,
     async temp_pathname => {
       let render = await svgo.optimize(
         await fs_readFile(key, {encoding: 'utf-8'}),
-        {path: key}
+        {
+          path: key,
+          multipass: true,
+          plugins: [
+            {name: 'cleanupAttrs'},
+            {name: 'removeDoctype'},
+            {name: 'removeXMLProcInst'},
+            {name: 'removeComments'},
+            {name: 'removeMetadata'},
+            {name: 'removeTitle'},
+            {name: 'removeDesc'},
+            {name: 'removeUselessDefs'},
+            {name: 'removeEditorsNSData'},
+            {name: 'removeEmptyAttrs'},
+            {name: 'removeHiddenElems'},
+            {name: 'removeEmptyText'},
+            {name: 'removeEmptyContainers'},
+            //{name: 'removeViewBox'},
+            {name: 'cleanupEnableBackground'},
+            {name: 'convertStyleToAttrs'},
+            {name: 'convertColors'},
+            {name: 'convertPathData'},
+            {name: 'convertTransform'},
+            {name: 'removeUnknownsAndDefaults'},
+            {name: 'removeNonInheritableGroupAttrs'},
+            {name: 'removeUselessStrokeAndFill'},
+            {name: 'removeUnusedNS'},
+            {name: 'cleanupIDs', prefix: slugify(key) + '_'},
+            {name: 'cleanupNumericValues'},
+            {name: 'moveElemsAttrsToGroup'},
+            {name: 'moveGroupAttrsToElems'},
+            {name: 'collapseGroups'},
+            //{name: 'removeRasterImages'},
+            {name: 'mergePaths'},
+            {name: 'convertShapeToPath'},
+            {name: 'sortAttrs'} //,
+            //{name: 'removeDimensions'}//,
+            //{name: 'removeAttrs', attrs: '(stroke|fill)'}
+          ]
+        }
       )
       return /*await*/ fs_writeFile(
         temp_pathname,
index 86bc314..ab68f24 100644 (file)
@@ -31,7 +31,6 @@
     "@ndcode/disk_build": "^0.1.1",
     "assert": "^1.4.1",
     "slugify": "^1.0.0",
-    "svgo": "^1.1.1"
-  },
-  "devDependencies": {}
+    "svgo": "^2.8.0"
+  }
 }