about summary refs log tree commit diff
path: root/svgo.config.mjs
blob: d7c98cd54a51215586e67fd77a0f18e0a4470569 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
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
          }
        }
      }
    }
  }]
};