rewrite-default-exports
v1.0.6
Published
Codemod to rewrite your default exports to named ones and replace old names everywhere
Downloads
146
Maintainers
Readme
rewrite-default-exports
It is codemod to rewrite your default exports to named ones and replace old names everywhere
Motivation
One day you might think about using named import and named export instead of default import and default export because it is a well-known best practice. After that you can add eslint rule for prohibiting export default in your code base with eslint/no-default-export or biomejs/no-default-export.
How to use it
It is divided into two stages:
- Gather all default imports and exports from entry file
- Transform all default imports and exports to named exports
It uses jscodeshift (with babel inside) to transform files and the resolve
package to resolve all imports. It will collect all relations between files and will transform all default imports and exports to named exports.
- Go to your product
- To collect data run:
$ IS_GATHER_INFO=true ENTRY="./path/to/your/entry.js" npx rewrite-default-exports
- To transform files run:
$ IS_TRANSFORM=true ENTRY="./path/to/your/entry.js" npx rewrite-default-exports
How to run and see the result as an example
- download this repo
- run
yarn
- add
.env
file to the root with:
DEBUG_APP=true - to see debug logs, by default it is false
ENTRY=./packages/app/client.js - entry file to gather info from
IS_GATHER_INFO=true - to gather info
IS_TRANSFORM=false - to transform files
- run
yarn transform
- you will see generated files in src/dump folder
defaultImports.json - info about files having used default import
exportsNames.json - info about files having used default export
preservedDefaultExports.json - info about files having been imported via dynamic import
proxyDefaultExports.json - info about files having used default import and having re-exported them with default export
- change in your
.env
file:
IS_GATHER_INFO=false
IS_TRANSFORM=true
- run
yarn transform
- you will see transformed files in packages folder