es-tooling / module-replacements-codemods

MIT License
188 stars 25 forks source link

Exposing or codemodding changed packages #90

Open 43081j opened 2 months ago

43081j commented 2 months ago

currently we have a few codemods which replace imports.

for example:

https://github.com/es-tooling/module-replacements-codemods/blob/c6fe8d70630533bc4adfab7fcc03ccb0bf11eab8/codemods/deep-equal/index.js#L19-L24

if something (such as the es-t cli) consumes these codemods, it doesn't currently have a way to know what you replaced the import with. we don't expose the fact that we replaced deep-equal with dequal.

in our case, it means the CLI doesn't know which new package to add to package.json.

i think we have two options here:

  1. the codemod owns the job of modifying package.json (by checking the filename or something), and the CLI just calls the codemod on package.json contents
  2. all codemods that affect packages (imports) expose some kind of "result" which defines these (e.g. [{type: 'remove', name: 'deep-equal'}, {type: 'add', name: 'dequal'}])
thepassle commented 2 months ago

I think it should be number 2 👍 The codemod should provide this information for tooling that uses the codemods