about summary refs log tree commit diff
path: root/svgo.config.mjs
diff options
context:
space:
mode:
Diffstat (limited to 'svgo.config.mjs')
-rw-r--r--svgo.config.mjs64
1 files changed, 64 insertions, 0 deletions
diff --git a/svgo.config.mjs b/svgo.config.mjs
new file mode 100644
index 000000000..d7c98cd54
--- /dev/null
+++ b/svgo.config.mjs
@@ -0,0 +1,64 @@
+const preset = [
+  "removeDoctype",
+  "removeXMLProcInst",
+  "removeComments",
+  "removeMetadata",
+  "removeEditorsNSData",
+  "cleanupAttrs",
+  "mergeStyles",
+  "inlineStyles",
+  "minifyStyles",
+  "cleanupIds",
+  "removeUselessDefs",
+  "cleanupNumericValues",
+  "convertColors",
+  "removeUnknownsAndDefaults",
+  "removeNonInheritableGroupAttrs",
+  "removeUselessStrokeAndFill",
+  "removeDimensions",
+  "cleanupEnableBackground",
+  "removeHiddenElems",
+  "removeEmptyText",
+  "convertShapeToPath",
+  "convertEllipseToCircle",
+  "moveElemsAttrsToGroup",
+  "moveGroupAttrsToElems",
+  "collapseGroups",
+  "convertPathData",
+  "convertTransform",
+  "removeEmptyAttrs",
+  "removeEmptyContainers",
+  "removeUnusedNS",
+  "mergePaths",
+  "sortAttrs",
+  "sortDefsChildren",
+  "removeTitle",
+  "removeDesc",
+]
+
+export default {
+  plugins: [...preset.map(name => ({
+    name,
+    params: {
+      floatPrecision: 3,
+      transformPrecision: 5,
+      // minimise diff in ouput from svgomg
+      // maybe remove in future? will produce smaller output
+      convertToZ: false,
+      removeUseless: false,
+    }
+  })),
+  {
+    name: 'addTrailingWhitespace',
+    fn() {
+      return {
+        root: {
+          exit (root) {
+            root.children.push({ type: 'text', value: '\n' })
+            return root
+          }
+        }
+      }
+    }
+  }]
+};