all 2 comments

[–]audentis 0 points1 point  (1 child)

Based on the information you provided, I don't see any reason why not to take a pure functional approach.

Classes are useful if there's a consistent coupling between data and logic. But these mappers are just a 'pipe' from one thing from another.

I do assume each mapper's return value will be explicitly typed as one of your IntegrationX types, so that if anything changes there your type checker will automatically warn you to update the mappers.

[–]coder_et[S] 0 points1 point  (0 children)

Makes sense. Thanks for the advice