@@ -0,0 +1,25 @@
|
||||
import { optimize } from 'svgo'
|
||||
|
||||
/**
|
||||
* Оптимизация SVG с использованием SVGO.
|
||||
* @param svgText string изображения SVG.
|
||||
* @returns Строка оптимизированного SVG.
|
||||
*/
|
||||
export function optimizeSvg(svgText: string): string {
|
||||
const optimizedSvg = optimize(svgText, {
|
||||
plugins: [
|
||||
{ name: 'removeDoctype' },
|
||||
{ name: 'removeComments' },
|
||||
{ name: 'removeDimensions' },
|
||||
{ name: 'convertShapeToPath' },
|
||||
{ name: 'convertPathData' },
|
||||
{ name: 'mergePaths' },
|
||||
],
|
||||
})
|
||||
|
||||
if (!optimizedSvg.data) {
|
||||
throw new Error('Ошибка оптимизации SVG')
|
||||
}
|
||||
|
||||
return optimizedSvg.data
|
||||
}
|
||||
Reference in New Issue
Block a user