-
Notifications
You must be signed in to change notification settings - Fork 2
/
.svgrrc.js
52 lines (45 loc) · 1.11 KB
/
.svgrrc.js
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
// .svgrrc.js
const path = require("path");
function defaultIndexTemplate(filePaths) {
const exportEntries = filePaths.map(filePath => {
const basename = path.basename(filePath, path.extname(filePath));
const exportName = /^\d/.test(basename) ? `Svg${basename}` : basename;
return `export { default as Svg${exportName} } from './${basename}'`;
});
return exportEntries.join("\n");
}
const template = (variables, { tpl }) => {
return tpl`
import * as React from "react";
import type { SVGProps } from "react";
${variables.interfaces};
function ${variables.componentName}(${variables.props}) {
return (
${variables.jsx}
);
}
${variables.exports};
`;
};
module.exports = {
template: template,
indexTemplate: defaultIndexTemplate,
typescript: true,
ignoreExisting: true,
svgoConfig: {
plugins: [
{
name: "removeViewBox", // needs to be disabled in order for "removeDimensions" to work
active: false,
},
{
name: "removeDimensions",
active: true,
},
{
name: "removeXMLNS",
active: true,
},
],
},
};