-
Notifications
You must be signed in to change notification settings - Fork 0
Description
SDK Roadmap
While the initial release was a success, the current architecture contains structural issues related to maintainability and direct API compatibility. This roadmap outlines the planned work for the upcoming major release of the SDK.
Our goal is to deliver a highly compatible, and API-accurate SDK that aligns directly with the Zoho Inventory, Zoho Books and Zoho Invoice API, establishing a flexible foundation for future modules.
Core Changes
Param Handling (API Alignment)
To ensure the SDK mirrors the Zoho Inventory API closely, we will eliminate internal mapping and renaming, allowing developers to pass Zoho's native parameters directly.
- Accept Zoho parameter names directly (e.g.,
created_date_start,sort_order). - Remove internal parameter renaming and mapping logic.
- Strip SDK-only options (e.g.,
limit) before transmission to the Zoho API. - Avoid unnecessary runtime parameter validation inside SDK methods.
Unified Action Methods (Bulk Operations)
To simplify the API surface and improve developer experience, we will expose single, unified methods for actions that can be performed on one or many resources. The SDK will handle the transition between single and bulk API calls.
- Pattern decided (Single method for single/bulk operations).
- Implement unified actions (
markAsConfirmed(ids), etc). - Add chunking logic for large bulk operations.
- Remove old, duplicated single/bulk methods (e.g.,
deleteandbulkDelete).
Void Return Types
Any method that performs an action but does not return a resource or module data (only { code: number, message: string } response) will be updated to return void to reflect a completed side-effect.
- Convert delete operations to return
void. - Convert other related operations to return
void. - Standardise return types across all modules for consistency.
Repository Structure
We will transition to a monorepo structure to manage and release related packages under the Zoho Finance Suite more effectively.
- Convert the current repository into a monorepo structure.
- Release and manage
zapi-booksandzapi-invoiceas separate, distinct packages.
Testing and CI Infrastructure
The repository currently lacks automated testing. A minimal, robust testing layer is critical for the next release's long-term stability and maintainability.
- Add a test runner (e.g., Bun Test).
- Add unit tests for all client layers and core logic.
- Add integration mocks for simulating Zoho API responses.
- Implement a Continuous Integration (CI) workflow for automated test execution.