Migrations
Migrate JavaScript to TypeScript with behavior in view.
Move JavaScript to TypeScript with checks for both types and runtime behavior. Zerg works through the conversion in reviewable steps and improves the migration tools as failures reveal edge cases.
What the work produces
21 days
Durable’s key legacy module agent run, covered in our case study
Small steps
Changes your engineers can review
Behavior
Tests check the result in the application
The problem
The details are where the work lives.
The syntax changes are often straightforward. Preserving behavior across a real application is harder. Edge cases, old assumptions, and hidden dependencies turn migrations into a long-running drain on engineering time.
How we approach it
Build the checks into the work.
- 01
Capture the current behavior, choose the TypeScript rules, and identify the module boundaries and critical flows to test.
- 02
Transform a bounded part of the code, run checks in the application, and repair the failures before moving on.
- 03
Reuse and refine migration rules and test harnesses as the work reaches the next module.
Who it helps
Engineering teams modernizing an existing product while continuing to ship and support it.
The systems involved
Migrations