New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@atlaskit/codemod-utils

Package Overview
Dependencies
Maintainers
1
Versions
26
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@atlaskit/codemod-utils - npm Package Compare versions

Comparing version

to
2.0.1

dist/cjs/utils/index.js

7

CHANGELOG.md
# @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

47

dist/cjs/index.js

@@ -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");

2

dist/cjs/version.json
{
"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.