Refactor MoshiEncodeStrategy to remove Wave-specific polymorphic type adapters #922
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
Refactored
MoshiEncodeStrategyto remove Wave-specific internal class dependencies by extracting polymorphic type adapter configurations into dedicated strategy factory classes. This improves separation of concerns and makesMoshiEncodeStrategya more generic, reusable component.Changes
Structural Improvements
DigestStoreandPairingMessagepolymorphic adapter configurations from the coreMoshiEncodeStrategyclassPairingMessageEncodeStrategy: Manages polymorphic adapters for pairing message types (ProxyHttpRequest, ProxyHttpResponse, PairingHeartbeat, PairingResponse)DigestStoreEncodeStrategy: Manages polymorphic adapters for digest store types (ZippedDigestStore, HttpDigestStore, DockerDigestStore)Updated Consumers
PairingMessageEncodeStrategy.create()createEncodingStrategy()usingPairingMessageEncodeStrategyDigestStoreEncodeStrategy.create()Test Organization
PairingMessageMoshiTypeAdapterTestfor pairing message encoding testsDigestStoreEncodeStrategyTestfor digest store encoding testsMoshiEncodingStrategyTestBenefits
MoshiEncodeStrategyis no longer coupled to Wave-specific domain classes🤖 Generated with Claude Code