Spaces:
Sleeping
Sleeping
| ; | |
| exports.__esModule = true; | |
| exports.default = void 0; | |
| var _loaderUtils = require("loader-utils"); | |
| var _core = require("@babel/core"); | |
| var _core2 = _interopRequireDefault(require("@svgr/core")); | |
| var _pluginSvgo = _interopRequireDefault(require("@svgr/plugin-svgo")); | |
| var _pluginJsx = _interopRequireDefault(require("@svgr/plugin-jsx")); | |
| var _presetReact = _interopRequireDefault(require("@babel/preset-react")); | |
| var _presetEnv = _interopRequireDefault(require("@babel/preset-env")); | |
| var _pluginTransformReactConstantElements = _interopRequireDefault(require("@babel/plugin-transform-react-constant-elements")); | |
| function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | |
| const babelOptions = { | |
| babelrc: false, | |
| configFile: false, | |
| presets: [(0, _core.createConfigItem)(_presetReact.default, { | |
| type: 'preset' | |
| }), (0, _core.createConfigItem)([_presetEnv.default, { | |
| modules: false | |
| }], { | |
| type: 'preset' | |
| })], | |
| plugins: [(0, _core.createConfigItem)(_pluginTransformReactConstantElements.default)] | |
| }; | |
| function svgrLoader(source) { | |
| const callback = this.async(); | |
| const { | |
| babel = true, | |
| ...options | |
| } = (0, _loaderUtils.getOptions)(this) || {}; | |
| const readSvg = () => new Promise((resolve, reject) => { | |
| this.fs.readFile(this.resourcePath, (err, result) => { | |
| if (err) reject(err); | |
| resolve(result); | |
| }); | |
| }); | |
| const previousExport = (() => { | |
| if (source.toString('utf-8').startsWith('export ')) { | |
| return source; | |
| } | |
| const exportMatches = source.toString('utf-8').match(/^module.exports\s*=\s*(.*)/); | |
| return exportMatches ? `export default ${exportMatches[1]}` : null; | |
| })(); | |
| const tranformSvg = svg => (0, _core2.default)(svg, options, { | |
| caller: { | |
| name: '@svgr/webpack', | |
| previousExport, | |
| defaultPlugins: [_pluginSvgo.default, _pluginJsx.default] | |
| }, | |
| filePath: this.resourcePath | |
| }).then(jsCode => { | |
| if (!babel) return jsCode; | |
| return (0, _core.transformAsync)(jsCode, babelOptions).then(({ | |
| code | |
| }) => code); | |
| }).then(result => callback(null, result)).catch(err => callback(err)); | |
| if (previousExport) { | |
| readSvg().then(tranformSvg); | |
| } else { | |
| tranformSvg(source); | |
| } | |
| } | |
| var _default = svgrLoader; | |
| exports.default = _default; |