-
Notifications
You must be signed in to change notification settings - Fork 3
Home
This repository is currently outdated both functionally and technically. To ensure long-term maintainability, scalability, and alignment with modern development standards, a comprehensive review and modernization effort is required.
The key areas of focus for this modernization initiative include:
-
Dependency Audit
Review all existing dependencies and update or remove them as needed to eliminate deprecated or redundant packages. -
Testing Framework Migration
Replace the deprecatedkarma
testing framework withvitest
. All tests should be rewritten accordingly to adopt modern testing practices. -
TypeScript Upgrade
UpdateTypeScript
to the latest stable version and apply a modernizedtsconfig
configuration. -
Build Tooling Simplification
Consider removingwebpack
and the UMD bundle format, subject to further discussion, in favor of simpler and more modern alternatives. -
Codebase Refactoring
- Transition toward a more functional programming style where appropriate
- Replace
interface
definitions prefixed withI
withtype
aliases - Improve overall code structure, readability, and consistency
-
Barrel File Removal
Eliminate the use of barrel files to reduce indirection and improve clarity. -
Public API Simplification
Only expose relevant and useful components in the public API to keep the library lean and developer-friendly. -
Selective Use of Classes
Favor simple data structures over classes, reserving class usage for specific scenarios (e.g., custom error handling where class instances offer advantages). -
Model Simplification
Remove the distinction betweencontract
andmodel
structures. This separation, originally introduced to convertsnake_case
API responses intocamelCase
, has added unnecessary complexity and maintenance overhead with minimal benefit. -
Output Format Standardization
Consolidate the distribution format by selecting a single modern module target (e.g.,ES2024
orESNext
, to be finalized). Avoid publishing multiple module formats (such as CommonJS and ESM) to simplify build configuration, reduce maintenance overhead, and align with modern ecosystem expectations. -
Embrace Immutability
Promote the use of immutable data structures and applyreadonly
modifiers where applicable. This practice enhances code reliability, reduces unintended side effects, and makes the codebase easier to reason about and maintain. Adoptts-pattern
where applicable. -
Replace Axios with Native Fetch API
Remove theaxios
dependency in favor of the nativefetch
API. This reduces external dependencies, aligns with modern JavaScript standards, and provides a lighter, more maintainable HTTP client implementation.
As part of the modernization effort, SDK-specific functionality will be reviewed to ensure alignment with current best practices and developer expectations.
-
Delivery SDK:
Evaluate and improve key areas such as the query builder API, including parameter and filter handling. Consider enhancements like providing IntelliSense support for elements and system fields to improve the developer experience and reduce potential errors. -
Management SDK:
Introduce support for strongly typed models, along with improved type safety and the use of type guards. These enhancements will make the SDK more reliable, predictable, and easier to work with in strongly typed environments like TypeScript.
Additional improvements and edge cases may be identified during the review process, but these areas represent a solid foundation for targeted enhancements.
This modernization effort will position the project for future growth and align it with current best practices in the TypeScript and JavaScript ecosystem.