## Codebase structure
npm install @wopee-io/sdkThe 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.
#### ApolloTrackAdapterService
Streamlise the creation of ApolloTrackerAdapter.
#### LoggerService
Streamlise the craetion of adapters implementing LoggerPort.
#### ZodHelper
Implementing common wrappers around zod.