The codebase is loosely following ports/adapters (hexagonal) architecture principles, i.e., split inmplementation details and business logic whenever possible.
lib/
├── core/
│ ├── domain/
│ │ └── valueObjects/
│ └── ports/
├── infrastructure/
│ ├── adapters/
│ │ ├── apolloTrackAdapter/
│ │ ├── consoleLogger/
│ │ └── noLogger/
│ └── services/
│ ├── apolloTrackAdapterService/
│ └── loggerService/
└── shared/
├── metadata/
└── utils
└── zodHelper
-
LoggerPort: A generalized logging interface for various frameworks and packages, supporting uniform logging across the repository.
-
ImageTrackerPort: A unified interface for image tracking operations, supporting seamless integration with different storage mechanisms.
-
ApolloTrackAdapter: Implements
ImageTrackerPort
, providing integration with Wopee API. -
ConsoleLogger: Implements
LoggerPort
, providing simple logging to the console output. -
NoLogger: Implements
LoggerPort
, providing option to completely disable logging.
Streamlise the creation of ApolloTrackerAdapter.
Streamlise the craetion of adapters implementing LoggerPort.
Implementing common wrappers around zod.