UNPKG

6.17 kBSource Map (JSON)View Raw
1{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import * as fs from 'fs'\nimport { transform, Config } from '@svgr/core'\nimport { createFilter, CreateFilter } from 'rollup-pluginutils'\nimport { transformAsync, createConfigItem } from '@babel/core'\nimport svgo from '@svgr/plugin-svgo'\nimport jsx from '@svgr/plugin-jsx'\n// @ts-ignore\nimport presetReact from '@babel/preset-react'\n// @ts-ignore\nimport presetEnv from '@babel/preset-env'\n// @ts-ignore\nimport presetTS from '@babel/preset-typescript'\n// @ts-ignore\nimport pluginTransformReactConstantElements from '@babel/plugin-transform-react-constant-elements'\nimport type { PluginImpl } from 'rollup'\n\nconst babelOptions = {\n babelrc: false,\n configFile: false,\n presets: [\n createConfigItem(presetReact, { type: 'preset' }),\n createConfigItem([presetEnv, { modules: false }], { type: 'preset' }),\n ],\n plugins: [createConfigItem(pluginTransformReactConstantElements)],\n}\n\nconst typeScriptBabelOptions = {\n ...babelOptions,\n presets: [\n ...babelOptions.presets,\n createConfigItem(\n [presetTS, { allowNamespaces: true, allExtensions: true, isTSX: true }],\n { type: 'preset' },\n ),\n ],\n}\nexport interface Options extends Config {\n include?: Parameters<CreateFilter>[0]\n exclude?: Parameters<CreateFilter>[1]\n babel?: boolean\n}\n\nconst plugin: PluginImpl<Options> = (options = {}) => {\n const EXPORT_REGEX = /(module\\.exports *= *|export default)/\n const filter = createFilter(options.include || '**/*.svg', options.exclude)\n const { babel = true } = options\n\n return {\n name: 'svgr',\n async transform(data, id) {\n if (!filter(id)) return null\n if (id.slice(-4) !== '.svg') return null\n\n const load = fs.readFileSync(id, 'utf8')\n\n const previousExport = EXPORT_REGEX.test(data) ? data : null\n\n const jsCode = await transform(load, options, {\n filePath: id,\n caller: {\n name: '@svgr/rollup',\n previousExport,\n defaultPlugins: [svgo, jsx],\n },\n })\n\n if (babel) {\n const result = await transformAsync(\n jsCode,\n options.typescript ? typeScriptBabelOptions : babelOptions,\n )\n if (!result?.code) {\n throw new Error(`Error while transforming using Babel`)\n }\n return { code: result.code, map: null }\n }\n\n return {\n ast: {\n type: 'Program',\n start: 0,\n end: 0,\n sourceType: 'module',\n body: [],\n },\n code: jsCode,\n map: null\n }\n },\n }\n}\n\nexport default plugin\n"],"names":["createConfigItem","presetReact","presetEnv","pluginTransformReactConstantElements","presetTS","createFilter","fs","transform","svgo","jsx","transformAsync"],"mappings":"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"}
\No newline at end of file