Skip to content

Commit 29922c7

Browse files
committed
add replace-string-ref codemod
1 parent 71eab34 commit 29922c7

12 files changed

+265
-1
lines changed

bin/cli.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,11 @@ const TRANSFORMER_INQUIRER_CHOICES = [
227227
'replace-act-import: Updates `act` import',
228228
value: 'replace-act-import'
229229
},
230+
{
231+
name:
232+
'replace-string-ref: Replaces deprecated string ref with callback ref',
233+
value: 'replace-string-ref'
234+
},
230235
];
231236

232237
const PARSER_INQUIRER_CHOICES = [
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import React1, { PureComponent as PureComponent1 } from "react";
2+
3+
class C extends React1.Component {
4+
render() {
5+
return <div ref="refName" />;
6+
}
7+
}
8+
9+
class C1 extends PureComponent1 {
10+
render() {
11+
return <div ref="refName" />;
12+
}
13+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import React1, { PureComponent as PureComponent1 } from "react";
2+
3+
class C extends React1.Component {
4+
render() {
5+
return (
6+
<div ref={(ref) => {
7+
this.refs.refName = ref;
8+
}} />
9+
);
10+
}
11+
}
12+
13+
class C1 extends PureComponent1 {
14+
render() {
15+
return (
16+
<div ref={(ref) => {
17+
this.refs.refName = ref;
18+
}} />
19+
);
20+
}
21+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import React from "react";
2+
3+
class C extends React.Component {
4+
render() {
5+
return <div ref="refName" />;
6+
}
7+
}
8+
9+
class C1 extends React.PureComponent {
10+
render() {
11+
return <div ref="refName" />;
12+
}
13+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import React from "react";
2+
3+
class C extends React.Component {
4+
render() {
5+
return (
6+
<div ref={(ref) => {
7+
this.refs.refName = ref;
8+
}} />
9+
);
10+
}
11+
}
12+
13+
class C1 extends React.PureComponent {
14+
render() {
15+
return (
16+
<div ref={(ref) => {
17+
this.refs.refName = ref;
18+
}} />
19+
);
20+
}
21+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { Component, PureComponent } from "react";
2+
3+
class C extends Component {
4+
render() {
5+
return <div ref="refName" />;
6+
}
7+
}
8+
9+
class C1 extends PureComponent {
10+
render() {
11+
return <div ref="refName" />;
12+
}
13+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { Component, PureComponent } from "react";
2+
3+
class C extends Component {
4+
render() {
5+
return (
6+
<div ref={(ref) => {
7+
this.refs.refName = ref;
8+
}} />
9+
);
10+
}
11+
}
12+
13+
class C1 extends PureComponent {
14+
render() {
15+
return (
16+
<div ref={(ref) => {
17+
this.refs.refName = ref;
18+
}} />
19+
);
20+
}
21+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
const C = () => {
2+
return <div ref="refName" />;
3+
};

transforms/__testfixtures__/replace-string-ref/function-component.output.js

Whitespace-only changes.
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
2+
3+
'use strict';
4+
5+
const tests = [
6+
'class-component-custom-import-names',
7+
'class-component-default-import',
8+
'class-component-named-import',
9+
'function-component',
10+
];
11+
12+
const defineTest = require('jscodeshift/dist/testUtils').defineTest;
13+
14+
describe('replace-string-ref', () => {
15+
16+
tests.forEach(test =>
17+
defineTest(
18+
__dirname,
19+
'replace-string-ref',
20+
null,
21+
`replace-string-ref/${ test }`
22+
)
23+
);
24+
25+
});

0 commit comments

Comments
 (0)