Ir al contenido

API: optimize

@mosaicoo/svg-engine/optimize es un pipeline pequeño y enchufable de passes puros documento-a-documento que reducen y limpian un SVG. Cada passe es libre de efectos secundarios y worker-safe. Headless: sin Angular Material/CDK.

import { OptimizerRegistry, precisionOptimizer } from '@mosaicoo/svg-engine/optimize';
APIDescripciónÚsalo para
OptimizerRegistryRegistry de passes: register(optimizer) → Disposable, get(id), el signal optimizers y runPipeline(document, enabledIds?).Registrar passes personalizados y ejecutar el pipeline programáticamente.
OptimizerEl contrato de passe: id, name, description opcional, order (menor corre primero; por defecto 100), defaultEnabled (por defecto true) y un optimize(document) puro.Implementar tu propio passe de optimización.

runPipeline ejecuta los passes habilitados en order ascendente. Pasa un conjunto enabledIds para seleccionar passes específicos; omítelo para ejecutar todo passe cuyo defaultEnabled no sea false. Devuelve un documento nuevo — o el original si nada cambió.

PasseOrderPor defectoQué hace
precisionOptimizer10activadoRedondea números de geometría/transform/estilo a una precisión fija (por defecto 3 decimales), eliminando ruido de float como 0.30000000000000004.
dropDefaultsOptimizer50activadoElimina atributos de presentación iguales al default de SVG (opacity:1, visibility:visible, …).
pruneEmptyGroupsOptimizer—activadoElimina grupos vacíos del árbol.
stripAuthoredTitlesOptimizer80desactivadoIndica al exporter que omita el <title> emitido para nodos nombrados (mantiene metadata.name en el modelo; solo del lado de la exportación, reversible). Opt-in para minificación de producción.
APIDescripción
OptimizeCommandEnvuelve una ejecución completa del pipeline como un comando con undo (isDestructive: true), de modo que optimizar dentro de un editor produce una sola entrada de Ctrl+Z. No-op cuando el pipeline no cambia nada.