Files
medusa-store/packages/design-system/toolbox/src/transformers/transform-svg.ts

57 lines
1.1 KiB
TypeScript

import { transform } from "@svgr/core"
import jsx from "@svgr/plugin-jsx"
import prettier from "@svgr/plugin-prettier"
import svgo from "@svgr/plugin-svgo"
import { defaultTemplate, fixedTemplate } from "@/templates"
type TransformArgs = {
code: string
componentName: string
fixed?: boolean
}
export async function transformSvg({
code,
componentName,
fixed = false,
}: TransformArgs) {
return await transform(
code,
{
typescript: true,
replaceAttrValues: !fixed
? {
"#030712": "{color}",
}
: undefined,
svgProps: {
ref: "{ref}",
},
expandProps: "end",
plugins: [svgo, jsx, prettier],
jsxRuntime: "classic",
prettierConfig: {
semi: false,
parser: "typescript",
},
svgoConfig: {
plugins: [
{
name: "preset-default",
params: {
overrides: {
removeTitle: false,
},
},
},
],
},
template: fixed ? fixedTemplate : defaultTemplate,
},
{
componentName,
}
)
}