refactor!: transform StyleDefault into an object #2728
Merged
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.
StyleDefault
was previously an enum but there is no need to enumerate the values. In addition, the values store both number and string which is generally considered confusing and a bad practice. Switching to a regular object make things more explicit and fix several SonarCloud code smells related to the enum usage (mix value types and non literal values).Notes
This PR applies something similar to MarkerIdentifiers and BpmnStyleIdentifiers with #1617 and #2716
See also https://www.typescriptlang.org/docs/handbook/enums.html#objects-vs-enums for more reasons to use objects instead of enum.
Using enum for StyleDefault, cause issues while trying to migrate to maxGraph because of the mixed number and string: it forced us to cast some values.
AFAIK, this impacts the way the HTML API is produced.
The API still lists the entries (there is no dedicated doc for entries) but in a different way. The entries are still available in the IDE.
Fixed SonarCloud code smells
TS rule typescript:S6583 Enum members should not mix value types
typescript:S6550 Explicit enum value must only be a literal value (string, number, boolean, etc).
Tasks
StyleDefault
. refactor: simplify reset of StyleDefault bpmn-visualization-examples#505