breaking-change(plugin-svgo): handle potential errors from optimize #663
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
svg.optimize()
can in some cases return error, when passed SVG is invalid. There are some cases also, for instance when removing some namespace attributes that the SVG is invalid as a cause of that. When this happensdata
returned from plugin-svgo will be undefined, causing this to be undefined in the following iteration of the loop. This again causes obscure errors in some cases when running the following plugins.This depends on fixing the types for svgo: DefinitelyTyped/DefinitelyTyped#58031
Note: Marked this as breaking-change as it explicitly throws an error. There are other ways to handle this (propagate error etc), but feels like showing error here is better than just ignoring it.
This PR does not fix consumers of
plugin-svgo
to handle error.Test plan
Added test case to ensure invalid svg throws error.