hensei-web/node_modules/@svgr/parcel-plugin-svgr/lib/asset.js
2020-09-11 06:44:42 -07:00

78 lines
No EOL
2 KiB
JavaScript

"use strict";
var _core = require("@babel/core");
var _pluginSvgo = _interopRequireDefault(require("@svgr/plugin-svgo"));
var _pluginJsx = _interopRequireDefault(require("@svgr/plugin-jsx"));
var _core2 = _interopRequireDefault(require("@svgr/core"));
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 }; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
/* eslint-disable global-require, import/no-unresolved */
function requireParcel() {
try {
return require('parcel');
} catch (error) {
return require('parcel-bundler');
}
}
/* eslint-enable global-require, import/no-unresolved */
const {
Asset
} = requireParcel();
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)]
};
class ReactSVGAsset extends Asset {
constructor(...args) {
super(...args);
_defineProperty(this, "type", 'js');
}
async parse(contents) {
const code = await (0, _core2.default)(contents, {}, {
caller: {
name: '@svgr/parcel',
defaultPlugins: [_pluginSvgo.default, _pluginJsx.default]
},
filePath: this.name
});
const {
code: babelCode
} = await (0, _core.transformAsync)(code, babelOptions);
return babelCode;
}
async generate() {
return [{
type: 'js',
value: this.ast
}];
}
}
module.exports = ReactSVGAsset;