Skip to content

Commit c169b30

Browse files
committed
Adds preset init method
1 parent 3b5b11f commit c169b30

File tree

3 files changed

+47
-0
lines changed

3 files changed

+47
-0
lines changed

community/react/codeshift.config.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ module.exports = {
33
targets: ['react', 'react-dom'],
44
description: 'Codemods for react',
55
transforms: {},
6+
67
presets: {
78
'add-react-import': require.resolve('./add-react-import/transform'),
89
'remove-default-props': require.resolve('./remove-default-props/transform'),
@@ -11,5 +12,25 @@ module.exports = {
1112
'use-string-literal-props': require.resolve(
1213
'./use-string-literal-props/transform',
1314
),
15+
'React-PropTypes-to-prop-types': require.resolve(
16+
'./React-PropTypes-to-prop-types/transform',
17+
),
18+
'ReactNative-View-propTypes': require.resolve(
19+
'./ReactNative-View-propTypes/transform',
20+
),
21+
class: require.resolve('./class/transform'),
22+
'create-element-to-jsx': require.resolve(
23+
'./create-element-to-jsx/transform',
24+
),
25+
'rename-unsafe-lifecycles': require.resolve(
26+
'./rename-unsafe-lifecycles/transform',
27+
),
28+
'manual-bind-to-arrow': require.resolve('./manual-bind-to-arrow/transform'),
29+
'pure-component': require.resolve('./pure-component/transform'),
30+
'react-to-react-dom': require.resolve('./react-to-react-dom/transform'),
31+
'error-boundaries': require.resolve('./error-boundaries/transform'),
32+
'React-DOM-to-react-dom-factories': require.resolve(
33+
'./React-DOM-to-react-dom-factories/transform',
34+
),
1435
},
1536
};

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
"cli:init": "ts-node packages/cli/bin/codeshift-cli.js init",
2828
"cli:list": "ts-node packages/cli/bin/codeshift-cli.js list",
2929
"community:init": "ts-node scripts/initialize.ts",
30+
"community:init:preset": "ts-node scripts/initialize-preset.ts",
3031
"community:validate": "ts-node scripts/validate.ts ./community",
3132
"community:release": "ts-node scripts/publish.ts ./community .tmp",
3233
"community:release-all": "ts-node scripts/publish-all.ts ./community .tmp",

scripts/initialize-preset.ts

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import chalk from 'chalk';
2+
import { initDirectory, initTransform } from '@codeshift/initializer';
3+
import path from 'path';
4+
5+
const communityPath = `${__dirname}/../community`;
6+
7+
export function main(packageName: string, preset?: string) {
8+
if (!packageName) throw new Error('Package name was not provided');
9+
if (!preset) throw new Error('Preset name was not provided');
10+
11+
const targetPath = path.join(communityPath, packageName.replace('/', '__'));
12+
13+
if (preset) {
14+
initDirectory(packageName, targetPath, true);
15+
initTransform(packageName, preset, 'preset', targetPath, true);
16+
}
17+
18+
console.log(
19+
chalk.green(
20+
`🚚 New codemod package created at: ./community/${packageName}/${preset}`,
21+
),
22+
);
23+
}
24+
25+
main(process.argv[2], process.argv[3]);

0 commit comments

Comments
 (0)