Search⌘ K
AI Features

Solution: Compose Nested Adapters

Explore composing nested adapters to bridge incompatible interfaces from multiple analytics providers. Learn to normalize varying response formats and error behaviors into a consistent pattern, ensuring reliable and maintainable Node.js backend code. Understand how ResponseAdapter and ErrorAdapter work together to provide uniform success and error handling without modifying original providers.

Solution explanation

  • Lines 2–14: We simulate two analytics providers:

    • providerA throws an error for invalid input and returns { ok, payload } on success.

    • providerB returns success or failure objects instead of throwing.

    • These two incompatible interfaces form the motivation for adapter composition.

  • Lines 17–36: The ResponseAdapter converts both providers’ response formats to a unified shape.

    • If the response has ok, it maps { ok, payload } → { success, result }.

    • If the response has success, it maps { success, data } → { success, result }.

    • If the response indicates failure (success: ...