MCPcopy Index your code
hub / github.com/azu/commonjs-to-es-module-codemod

github.com/azu/commonjs-to-es-module-codemod @v0.5.7

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.5.7 ↗ · + Follow
31 symbols 73 edges 50 files 1 documented · 3%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

commonjs-to-es-module-codemod Actions Status: test

jscodeshift codemod that convert CommonJS(require/exports) to ES Modules(import/export) for JavaScript/TypeScript

Support Patterns

Exports

  • [x] named export: module.exports.foo = foo & exports.foo = foo to export { foo }
  • [x] named export: module.exports.bar = foo & exports.bar = foo to export { foo as bar }
  • [x] default export: module.exports = foo to export default foo
  • [x] ignore multiple module.exports = x

Imports

  • [x] require("mod") to import "mod"
  • [x] const foo = require("mod") to import foo from "mod"
  • [x] const { foo } = require("mod") to import { foo } from "mod"
  • [x] const foo = require("mod").foo to import { foo } from "mod"
  • [x] const bar = require("mod").foo to import { foo as bar } from "mod"
  • [ ] const o = { foo: require("foo") } to import foo from "mod"; const o = { foo }

Usage

commonjs-to-es-module-codemod is published on npm.

You can convert index.js and index.ts to ES Modules using jscodeshift and unpkg.

# Install jscodeshift
npm install --global jscodeshift
# Transform using latest version
LATEST_VERSION=$(npm view commonjs-to-es-module-codemod version)
jscodeshift -t "https://unpkg.com/commonjs-to-es-module-codemod@${LATEST_VERSION}/dist/index.js" "index.js"
# Transform TypeScript
jscodeshift -t "https://unpkg.com/commonjs-to-es-module-codemod@${LATEST_VERSION}/dist/index.js" --extensions ts "index.ts"

Convert src/*.js:

LATEST_VERSION=$(npm view commonjs-to-es-module-codemod version)
find src -name "*.js" | xargs jscodeshift -t "https://unpkg.com/commonjs-to-es-module-codemod@${LATEST_VERSION}/dist/index.js"

Tests

yarn test

Contributing

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

License

MIT © azu

It includes BuonOmo/CommonJS-to-ES6-codemod.

MIT © Ulysse Buonomo buonomo.ulysse@gmail.com

Related

Core symbols most depended-on inside this repo

lines
called by 10
transforms/utils/logger.js
log
called by 9
transforms/utils/logger.js
error
called by 9
transforms/utils/logger.js
isTopNode
called by 5
transforms/utils/filters.js
defineTests
called by 4
transforms/__testutils__/defineTests.js
warn
called by 2
transforms/utils/logger.js
transformer
called by 0
transforms/single-require.js
_isTopNode
called by 0
transforms/single-require.js

Shape

Function 24
Method 5
Class 2

Languages

TypeScript100%

Modules by API surface

transforms/utils/logger.js7 symbols
transforms/module-exports-to-named-export.js3 symbols
transforms/__testfixtures__/module-exports-to-named-export/basic-case-exports.output.js3 symbols
transforms/single-require.js2 symbols
transforms/require-with-props-to-named-import.js2 symbols
transforms/require-to-import-default.js2 symbols
transforms/module-exports-to-export-default.js2 symbols
transforms/__testfixtures__/module-exports-to-named-export/basic-case-module-exports.output.js2 symbols
transforms/utils/filters.js1 symbols
transforms/index.js1 symbols
transforms/__testutils__/defineTests.js1 symbols
transforms/__testfixtures__/single-require.output.js1 symbols

For agents

$ claude mcp add commonjs-to-es-module-codemod \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page