-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
28 lines (27 loc) · 849 Bytes
/
index.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
const fs = require('fs');
const path = require('path');
const babel = require('@babel/core');
const svgr = require('@svgr/core').default;
module.exports = function (_, options) {
return {
name: 'snowpack-svgr',
resolve: {
input: ['.svgr.svg'],
output: ['.js'],
},
async load({ filePath }) {
const contents = fs.readFileSync(filePath, 'utf-8');
let code = svgr
.sync(contents, {
componentName: path.basename(filePath).split('.')[0],
})
.replace('import * as React', 'import React');
if(options.exportType=='named')
code=code.replace('export default SvgComponent',' export { SvgComponent as ReactComponent }');
const { code: result } = babel.transformSync(code, {
presets: ['@babel/preset-react'],
});
return result;
},
};
};