26 lines
684 B
TypeScript
26 lines
684 B
TypeScript
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
|
|
}
|