Skip to content
MergeShieldDemo

Like what you see? Sign up with GitHub to start governing your own repos — free forever.

Back to Pull Requests

Migrate to ESM modules

devin-aiDevin31 files
55/100 High

Files Changed

31

Additions

+420

Deletions

-380

Agent

Devin

Risk analysis complete.Score: 55/100
GitHub

Summary

ESM migration — large blast radius (31 files) but mostly mechanical import/export changes.

Model: claude-sonnet-4-20250514Duration: 11800msTokens: 4100
Was this analysis helpful?

Risk Scores

Overall55/100
Complexity35/100
Security10/100
Blast Radius70/100
Test Coverage40/100
Breaking Change60/100

File-Level Risk

FileRiskCategoryDetails
package.json60breaking ChangeAdding "type": "module" changes all .js file semantics
src/index.ts50blast RadiusEntry point rewritten for ESM exports
tsconfig.json35complexityModule resolution changed to NodeNext

blast Radius

70/100

Findings

  • 31 files changed — every source file updated for ESM syntax
  • package.json updated with "type": "module"
  • All require() calls replaced with import statements

Suggestions

  • Run full test suite with ESM loader to verify compatibility
  • Check for dynamic require() calls that need special handling

breaking Change

60/100

Findings

  • "type": "module" changes default module resolution
  • CommonJS interop may break some dependencies
  • __dirname and __filename no longer available — replaced with import.meta

Suggestions

  • Add explicit .js extensions to all relative imports for ESM compliance
  • Test all third-party package imports for ESM compatibility
Interactive Demo | MergeShield