@atlaskit/codemod-utils
Advanced tools
Comparing version
# @atlaskit/codemod-utils | ||
## 2.0.1 | ||
### Patch Changes | ||
- [`ecc5b95e65`](https://bitbucket.org/atlassian/atlassian-frontend/commits/ecc5b95e65) - ED-11440: Add skipTest to codemod-utils | ||
## 2.0.0 | ||
### Major Changes | ||
- [`f1e5c2be81`](https://bitbucket.org/atlassian/atlassian-frontend/commits/f1e5c2be81) - ED-11335: Initialise codemod-utils package |
@@ -6,4 +6,45 @@ "use strict"; | ||
}); | ||
exports.default = void 0; | ||
var _default = {}; | ||
exports.default = _default; | ||
Object.defineProperty(exports, "createRenameFuncFor", { | ||
enumerable: true, | ||
get: function get() { | ||
return _utils.createRenameFuncFor; | ||
} | ||
}); | ||
Object.defineProperty(exports, "createConvertFuncFor", { | ||
enumerable: true, | ||
get: function get() { | ||
return _utils.createConvertFuncFor; | ||
} | ||
}); | ||
Object.defineProperty(exports, "createRenameImportFor", { | ||
enumerable: true, | ||
get: function get() { | ||
return _utils.createRenameImportFor; | ||
} | ||
}); | ||
Object.defineProperty(exports, "createRemoveFuncFor", { | ||
enumerable: true, | ||
get: function get() { | ||
return _utils.createRemoveFuncFor; | ||
} | ||
}); | ||
Object.defineProperty(exports, "replaceImportStatementFor", { | ||
enumerable: true, | ||
get: function get() { | ||
return _utils.replaceImportStatementFor; | ||
} | ||
}); | ||
Object.defineProperty(exports, "createSkipTest", { | ||
enumerable: true, | ||
get: function get() { | ||
return _utils.createSkipTest; | ||
} | ||
}); | ||
Object.defineProperty(exports, "createTransformer", { | ||
enumerable: true, | ||
get: function get() { | ||
return _utils.createTransformer; | ||
} | ||
}); | ||
var _utils = require("./utils"); |
{ | ||
"name": "@atlaskit/codemod-utils", | ||
"version": "2.0.0", | ||
"version": "2.0.1", | ||
"sideEffects": false | ||
} |
@@ -1,1 +0,1 @@ | ||
export default {}; | ||
export { createRenameFuncFor, createConvertFuncFor, createRenameImportFor, createRemoveFuncFor, replaceImportStatementFor, createSkipTest, createTransformer } from './utils'; |
{ | ||
"name": "@atlaskit/codemod-utils", | ||
"version": "2.0.0", | ||
"version": "2.0.1", | ||
"sideEffects": false | ||
} |
@@ -1,1 +0,1 @@ | ||
export default {}; | ||
export { createRenameFuncFor, createConvertFuncFor, createRenameImportFor, createRemoveFuncFor, replaceImportStatementFor, createSkipTest, createTransformer } from './utils'; |
{ | ||
"name": "@atlaskit/codemod-utils", | ||
"version": "2.0.0", | ||
"version": "2.0.1", | ||
"sideEffects": false | ||
} |
@@ -1,2 +0,1 @@ | ||
declare const _default: {}; | ||
export default _default; | ||
export { createRenameFuncFor, createConvertFuncFor, createRenameImportFor, createRemoveFuncFor, replaceImportStatementFor, createSkipTest, createTransformer, } from './utils'; |
{ | ||
"name": "@atlaskit/codemod-utils", | ||
"version": "2.0.0", | ||
"version": "2.0.1", | ||
"author": "Atlassian Pty Ltd", | ||
@@ -27,3 +27,4 @@ "license": "Apache-2.0", | ||
"@babel/runtime": "^7.0.0", | ||
"@types/jscodeshift": "^0.6.3" | ||
"@types/jscodeshift": "^0.6.3", | ||
"jscodeshift": "^0.7.0" | ||
}, | ||
@@ -30,0 +31,0 @@ "devDependencies": { |
@@ -1,1 +0,83 @@ | ||
# Shared jscodeshift-compatible codemod utilites | ||
## Home for codemods | ||
As part of lite mode conversion for components in atlaskit, we found `codemods` are extremely useful for migrating some breaking changes for our consumers. However, one painpoint for us who need to write them is we have to copy-paste the code snippet in many places. | ||
So the purpose of this repo is to reduce that pain and centric all reusable `codemods` snippets into a single place, and all the further changes should happen in this repo too. | ||
The target is to release this repo as a npm package if possible, and user then can introduce those generic functions and compose in their codebase. | ||
### Example | ||
For example, when you want to depracate a `prop` called `isLoading` from your consumer's codebase, you can introduce some utils in a file `transformer.ts` from this repo: | ||
```js | ||
import { | ||
createRemoveFuncFor, | ||
createTransformer, | ||
} from '@atlaskit/codemod-utils'; | ||
const removeIsLoading = createRemoveFuncFor( | ||
'@atlaskit/fancycomponent', | ||
'ComponentName', | ||
'isLoading', | ||
); | ||
const transformer = createTransformer('@atlaskit/fancycomponent', [ | ||
removeIsLoading, | ||
]); | ||
export default transformer; | ||
``` | ||
And then run the `transformer` like: | ||
```sh | ||
npx jscodeshift -t transformer.ts --ignore-pattern node_modules --parser babel --extensions ts path/to/your/codebase | ||
``` | ||
### Advanced usage | ||
If you need more than one mutation against your codebase and want to apply all of them in one go, it's recommended to structure them properly into a separate folder. | ||
For example, if you need 3 separate steps: | ||
- remove `isLoading` prop | ||
- rename `isDefaultChecked` to `defaultChecked` | ||
- add a new prop `title` | ||
then you can have a folder called `migrates` that contains: | ||
- remove-isLoading.ts | ||
- rename-isDefaultChecked-to-defaultChecked.ts | ||
- add-title.ts | ||
and for each file, you can have some code like: | ||
```js | ||
import { createAddingPropFor } from '@atlaskit/codemod-utils'; | ||
export const addTitle = createAddingPropFor('@atlaskit/fancycomponent', { | ||
prop: 'title', | ||
defaultValue: '', | ||
}); | ||
``` | ||
and in your entrypoint for `jscodeshift` to pick up, you can introduce all those migrates: | ||
```js | ||
import { addTitle } from './migrates/add-title'; | ||
import { removeIsLoading } from './migrates/remove-isLoading'; | ||
import { renameDefaultChecked } from './migrates/rename-isDefaultChecked-to-defaultChecked.ts'; | ||
import { createTransformer } from './utils'; | ||
const transformer = createTransformer('@atlaskit/toggle', [ | ||
renameDefaultChecked, | ||
removeIsLoading, | ||
addTitle, | ||
]); | ||
export default transformer; | ||
``` | ||
That way, you can easily test those migrates separately with all the possible scenario, and compose them freely as well to see if they can work together. |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
43788
1573.21%19
72.73%859
3634.78%84
4100%3
50%1
Infinity%+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added