This includes a number of changes to both test type generation as well as to do the actual generation:
Added allowUnsafeOperations publish profile option. In addition, cleaned up the documentation and format of the object slightly (i.e. generationOptions object).
Changed Diffable to take a generic type argument as to what it's comparing against. This is a little questionable perhaps however I was really trying to break out the code (perhaps unnecessarily?)
Added PublishProfile to Diffable args - this is to support the allowUnsafeOperations arg above.
Created TypeModificationAction sub argument to ChangeInstruction::ModifyType. This was namely to avoid convoluting the ChangeInstruction enum - I could be convinced to flatten this (went back and forth a bit).
At the moment, the only supported operations on types are:
Add Enum Type
Modify Enum Type, Add Value After
Modify Enum Type, Add Value Before
Modify Enum Type, Remove Value (extra check for unsafe bypass)
I haven't yet implemented drop as I want to revisit how to specify this within the publish profile.
This includes a number of changes to both test type generation as well as to do the actual generation:
allowUnsafeOperations
publish profile option. In addition, cleaned up the documentation and format of the object slightly (i.e.generationOptions
object).Diffable
to take a generic type argument as to what it's comparing against. This is a little questionable perhaps however I was really trying to break out the code (perhaps unnecessarily?)PublishProfile
toDiffable
args - this is to support theallowUnsafeOperations
arg above.TypeModificationAction
sub argument toChangeInstruction::ModifyType
. This was namely to avoid convoluting theChangeInstruction
enum - I could be convinced to flatten this (went back and forth a bit).At the moment, the only supported operations on types are:
I haven't yet implemented drop as I want to revisit how to specify this within the publish profile.