feat: viem-to-essential-eth migration codemod CLI#303
Open
feat: viem-to-essential-eth migration codemod CLI#303
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
9ef5867 to
f03a31f
Compare
f03a31f to
10fe402
Compare
Add scripts/migrate.ts — a zero-dependency CLI tool that scans a codebase for viem imports and rewrites them to use essential-eth where an equivalent utility exists. Features: - Recursively scans .ts/.tsx/.js/.jsx files - Maps 19 viem utility functions to essential-eth equivalents - Handles renamed functions (e.g. formatEther → weiToEther) - Renames all usages in the file body, not just the import - Splits partially-supported imports (keeps viem for unsupported symbols) - --dry-run mode for safe previewing - Clear summary with unsupported import report - Exit code 1 when unsupported imports remain Also adds: - MIGRATION.md — documentation for the migration tool - scripts/migrate-test-fixture/ — test fixtures for verification
10fe402 to
1e62676
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
🪶 viem → essential-eth Migration Codemod
A zero-dependency CLI tool that scans a codebase for
viemimports and rewrites them to useessential-ethwhere an equivalent utility exists.Usage
Migration Map (19 functions)
formatEtherweiToEtherparseEtheretherToWeiformatUnitsformatUnitsparseUnitsparseUnitsformatGweigweiToEtherparseGweietherToGweigetAddressgetAddressisAddressisAddresskeccak256keccak256hashMessagehashMessagetoHexhexlifytoBytesarrayifyconcatconcatpadzeroPadtrimstripZerosisHexisHexStringisBytesisBytesnamehashnamehashencodePackedpackExample Output (from test fixture)
Features
.ts,.tsx,.js,.jsxfilesformatEther(x)→weiToEther(x))--dry-runpreviews changes without modifying filesFiles Added
scripts/migrate.ts— the migration CLIscripts/migrate-test-fixture/— 3 test fixture files for verificationMIGRATION.md— documentationWhat is Next
npx essential-eth migrate ./src(publish as bin)import type { ... } from "viem")