refactor: migrate to pure ESM dependencies for better Vite compatibility #330
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Migrate from CommonJS dependencies (fetch-retry, keccak) to pure ESM alternatives (ky, ethers built-in crypto) to improve compatibility with modern bundlers like Vite.
Problem
When using
@zama-fhe/relayer-sdkin Vite projects, the package must be excluded from pre-bundling (optimizeDeps.exclude) because it contains CASM files. However, this causes Vite to fail when processing CommonJS dependencies within the excluded package.Solution
fetch-retrywithky(pure ESM HTTP client with retry support)keccakpackage with ethers' built-inkeccak256,concat, andgetBytesfunctionsBenefits
keccak,@types/keccak,fetch-retry)