Skip to content

Commit 843f867

Browse files
author
Ivan Grekov
committed
React upd to 16.8.23, react.props to props
1 parent 3b91d88 commit 843f867

File tree

46 files changed

+222
-214
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+222
-214
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ Transforms React code written in JavaScript to TypeScript.
2020
```jsx
2121
class MyComponent extends React.Component {
2222
static propTypes = {
23-
prop1: React.PropTypes.string.isRequired,
24-
prop2: React.PropTypes.number,
23+
prop1: PropTypes.string.isRequired,
24+
prop2: PropTypes.number,
2525
};
2626
constructor() {
2727
super();

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
"@types/lodash": "^4.14.109",
4949
"@types/node": "^10.1.2",
5050
"@types/prettier": "^1.12.2",
51-
"@types/react": "^16.3.14",
51+
"@types/react": "^16.8.23",
5252
"dedent": "^0.7.0",
5353
"husky": "^0.14.3",
5454
"jest": "^22.4.4",

src/helpers/build-prop-type-interface.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import * as ts from 'typescript';
44
* Build props interface from propTypes object
55
* @example
66
* {
7-
* foo: React.PropTypes.string.isRequired
7+
* foo: PropTypes.string.isRequired
88
* }
99
*
1010
* becomes
@@ -53,7 +53,7 @@ export function buildInterfaceFromPropTypeObjectLiteral(objectLiteral: ts.Object
5353
}
5454

5555
/**
56-
* Turns React.PropTypes.* into TypeScript type value
56+
* Turns PropTypes.* into TypeScript type value
5757
*
5858
* @param node React propTypes value
5959
*/

src/helpers/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ export function isReactHeritageClause(clause: ts.HeritageClause) {
6363
/**
6464
* Return true if a statement is a React propType assignment statement
6565
* @example
66-
* SomeComponent.propTypes = { foo: React.PropTypes.string };
66+
* SomeComponent.propTypes = { foo: PropTypes.string };
6767
* @param statement
6868
*/
6969
export function isReactPropTypeAssignmentStatement(statement: ts.Statement): statement is ts.ExpressionStatement {

src/transforms/react-move-prop-types-to-class-transform.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,19 @@ export type Factory = ts.TransformerFactory<ts.SourceFile>;
1515
* @example
1616
* Before:
1717
* class SomeComponent extends React.Component<{foo: number;}, {bar: string;}> {}
18-
* SomeComponent.propTypes = { foo: React.PropTypes.string }
18+
* SomeComponent.propTypes = { foo: PropTypes.string }
1919
*
2020
* After
2121
* class SomeComponent extends React.Component<{foo: number;}, {bar: string;}> {
22-
* static propTypes = { foo: React.PropTypes.string }
22+
* static propTypes = { foo: PropTypes.string }
2323
* }
2424
*
2525
* @todo
2626
* This is not supporting multiple statements for a single class yet
2727
* ```
2828
* class SomeComponent extends React.Component<{foo: number;}, {bar: string;}> {}
29-
* SomeComponent.propTypes = { foo: React.PropTypes.string }
30-
* SomeComponent.propTypes.bar = React.PropTypes.number;
29+
* SomeComponent.propTypes = { foo: PropTypes.string }
30+
* SomeComponent.propTypes.bar = PropTypes.number;
3131
* ```
3232
*/
3333
export function reactMovePropTypesToClassTransformFactoryFactory(typeChecker: ts.TypeChecker): Factory {

src/transforms/react-remove-prop-types-assignment-transform.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export type Factory = ts.TransformerFactory<ts.SourceFile>;
1010
* @example
1111
* Before:
1212
* class SomeComponent extends React.Component<{foo: number;}, {bar: string;}> {}
13-
* SomeComponent.propTypes = { foo: React.PropTypes.string }
13+
* SomeComponent.propTypes = { foo: PropTypes.string }
1414
*
1515
* After
1616
* class SomeComponent extends React.Component<{foo: number;}, {bar: string;}> {}

src/transforms/react-remove-static-prop-types-member-transform.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export type Factory = ts.TransformerFactory<ts.SourceFile>;
1111
* Before:
1212
* class SomeComponent extends React.Component<{foo: number;}, {bar: string;}> {
1313
* static propTypes = {
14-
* foo: React.PropTypes.number.isRequired,
14+
* foo: PropTypes.number.isRequired,
1515
* }
1616
* }
1717
*

src/transforms/react-stateless-function-make-props-transform.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,20 @@ export type Factory = ts.TransformerFactory<ts.SourceFile>;
1717
* // const Hello = ({ message }) => <div>hello {message}</div>
1818
*
1919
* Hello.propTypes = {
20-
* message: React.PropTypes.string,
20+
* message: PropTypes.string,
2121
* }
2222
*
2323
* After:
2424
* Type HelloProps = {
2525
* message: string;
2626
* }
2727
*
28-
* const Hello: React.SFC<HelloProps> = ({ message }) => {
28+
* const Hello: React.FunctionComponent<HelloProps> = ({ message }) => {
2929
* return <div>hello {message}</div>
3030
* }
3131
*
3232
* Hello.propTypes = {
33-
* message: React.PropTypes.string,
33+
* message: PropTypes.string,
3434
* }
3535
*/
3636
export function reactStatelessFunctionMakePropsTransformFactoryFactory(typeChecker: ts.TypeChecker): Factory {
@@ -83,9 +83,10 @@ function visitReactStatelessComponent(
8383
const propTypeDeclaration = ts.createTypeAliasDeclaration([], [], propTypeName, [], propType);
8484
const propTypeRef = ts.createTypeReferenceNode(propTypeName, []);
8585

86-
let componentType = ts.createTypeReferenceNode(ts.createQualifiedName(ts.createIdentifier('React'), 'SFC'), [
87-
shouldMakePropTypeDeclaration ? propTypeRef : propType,
88-
]);
86+
let componentType = ts.createTypeReferenceNode(
87+
ts.createQualifiedName(ts.createIdentifier('React'), 'FunctionComponent'),
88+
[shouldMakePropTypeDeclaration ? propTypeRef : propType],
89+
);
8990

9091
// replace component with ts stateless component
9192
const typedComponent = ts.createVariableStatement(

test/end-to-end/initial-state-and-proprypes-and-set-state/input.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,5 @@ export default class MyComponent extends React.Component {
1111
}
1212

1313
MyComponent.propTypes = {
14-
baz: React.PropTypes.string.isRequired,
14+
baz: PropTypes.string.isRequired,
1515
}

test/end-to-end/initial-state-and-proprypes/input.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ export default class MyComponent extends React.Component {
88
}
99

1010
MyComponent.propTypes = {
11-
baz: React.PropTypes.string.isRequired;
11+
baz: PropTypes.string.isRequired;
1212
}

test/end-to-end/multiple-components/input.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ const Hey = ({ name }) => {
77
}
88

99
Hey.propTypes = {
10-
message: React.PropTypes.string,
10+
message: PropTypes.string,
1111
}
1212

1313
Hello.propTypes = {
14-
message: React.PropTypes.string,
14+
message: PropTypes.string,
1515
}
1616

1717
export default class MyComponent extends React.Component {
@@ -26,7 +26,7 @@ export default class MyComponent extends React.Component {
2626

2727
export class AnotherComponent extends React.Component {
2828
static propTypes = {
29-
foo: React.PropTypes.string.isRequired,
29+
foo: PropTypes.string.isRequired,
3030
};
3131
render() {
3232
return <div />;

test/end-to-end/multiple-components/output.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
type HelloProps = {
22
message?: string,
33
};
4-
const Hello: React.SFC<HelloProps> = ({ message }) => {
4+
const Hello: React.FunctionComponent<HelloProps> = ({ message }) => {
55
return <div>hello {message}</div>;
66
};
77
type HeyProps = {
88
message?: string,
99
};
10-
const Hey: React.SFC<HeyProps> = ({ name }) => {
10+
const Hey: React.FunctionComponent<HeyProps> = ({ name }) => {
1111
return <div>hey, {name}</div>;
1212
};
1313
type MyComponentState = {

test/end-to-end/stateless-arrow-function/input.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@ const Hello = ({ message }) => {
33
};
44

55
Hello.propTypes = {
6-
message: React.PropTypes.string,
6+
message: PropTypes.string,
77
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
type HelloProps = {
22
message?: string,
33
};
4-
const Hello: React.SFC<HelloProps> = ({ message }) => {
4+
const Hello: React.FunctionComponent<HelloProps> = ({ message }) => {
55
return <div>hello {message}</div>;
66
};

test/end-to-end/stateless-function/input.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@ export function Hello({ message }) {
33
}
44

55
Hello.propTypes = {
6-
message: React.PropTypes.string,
6+
message: PropTypes.string,
77
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
type HelloProps = {
22
message?: string,
33
};
4-
export const Hello: React.SFC<HelloProps> = ({ message }) => {
4+
export const Hello: React.FunctionComponent<HelloProps> = ({ message }) => {
55
return <div>hello {message}</div>;
66
};

test/react-js-make-props-and-state-transform/multiple-components/input.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export default class MyComponent extends React.Component {
1212

1313
export class AnotherComponent extends React.Component {
1414
static propTypes = {
15-
foo: React.PropTypes.string.isRequired,
15+
foo: PropTypes.string.isRequired,
1616
};
1717
render() {
1818
return <div />;

test/react-js-make-props-and-state-transform/multiple-components/output.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ type AnotherComponentProps = {
1313
};
1414
export class AnotherComponent extends React.Component<AnotherComponentProps, {}> {
1515
static propTypes = {
16-
foo: React.PropTypes.string.isRequired,
16+
foo: PropTypes.string.isRequired,
1717
};
1818
render() {
1919
return <div />;

test/react-js-make-props-and-state-transform/static-proptypes-getter-simple/input.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import * as React from 'react';
33
export default class MyComponent extends React.Component {
44
static get propTypes() {
55
return {
6-
foo: React.PropTypes.string.isRequired,
6+
foo: PropTypes.string.isRequired,
77
};
88
}
99
render() {

test/react-js-make-props-and-state-transform/static-proptypes-getter-simple/output.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ type MyComponentProps = {
55
export default class MyComponent extends React.Component<MyComponentProps, {}> {
66
static get propTypes() {
77
return {
8-
foo: React.PropTypes.string.isRequired,
8+
foo: PropTypes.string.isRequired,
99
};
1010
}
1111
render() {

test/react-js-make-props-and-state-transform/static-proptypes-many-props/input.tsx

Lines changed: 37 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -2,46 +2,46 @@ import * as React from 'react';
22

33
export default class MyComponent extends React.Component {
44
static propTypes = {
5-
children: React.PropTypes.node,
6-
any: React.PropTypes.any,
7-
array: React.PropTypes.array,
8-
bool: React.PropTypes.bool,
9-
func: React.PropTypes.func,
10-
number: React.PropTypes.number,
11-
object: React.PropTypes.object,
12-
string: React.PropTypes.string,
13-
node: React.PropTypes.node,
14-
element: React.PropTypes.element,
15-
oneOf: React.PropTypes.oneOf(['a', 'b', 'c']),
16-
oneOfType: React.PropTypes.oneOfType([
17-
React.PropTypes.string,
18-
React.PropTypes.number,
5+
children: PropTypes.node,
6+
any: PropTypes.any,
7+
array: PropTypes.array,
8+
bool: PropTypes.bool,
9+
func: PropTypes.func,
10+
number: PropTypes.number,
11+
object: PropTypes.object,
12+
string: PropTypes.string,
13+
node: PropTypes.node,
14+
element: PropTypes.element,
15+
oneOf: PropTypes.oneOf(['a', 'b', 'c']),
16+
oneOfType: PropTypes.oneOfType([
17+
PropTypes.string,
18+
PropTypes.number,
1919
]),
20-
arrayOf: React.PropTypes.arrayOf(React.PropTypes.string),
21-
objectOf: React.PropTypes.objectOf(React.PropTypes.string),
22-
shape: React.PropTypes.shape({
23-
color: React.PropTypes.string,
24-
fontSize: React.PropTypes.number,
20+
arrayOf: PropTypes.arrayOf(PropTypes.string),
21+
objectOf: PropTypes.objectOf(PropTypes.string),
22+
shape: PropTypes.shape({
23+
color: PropTypes.string,
24+
fontSize: PropTypes.number,
2525
}),
26-
anyRequired: React.PropTypes.any.isRequired,
27-
arrayRequired: React.PropTypes.array.isRequired,
28-
boolRequired: React.PropTypes.bool.isRequired,
29-
funcRequired: React.PropTypes.func.isRequired,
30-
numberRequired: React.PropTypes.number.isRequired,
31-
objectRequired: React.PropTypes.object.isRequired,
32-
stringRequired: React.PropTypes.string.isRequired,
33-
nodeRequired: React.PropTypes.node.isRequired,
34-
elementRequired: React.PropTypes.element.isRequired,
35-
oneOfRequired: React.PropTypes.oneOf(['a', 'b', 'c']).isRequired,
36-
oneOfTypeRequired: React.PropTypes.oneOfType([
37-
React.PropTypes.string,
38-
React.PropTypes.number,
26+
anyRequired: PropTypes.any.isRequired,
27+
arrayRequired: PropTypes.array.isRequired,
28+
boolRequired: PropTypes.bool.isRequired,
29+
funcRequired: PropTypes.func.isRequired,
30+
numberRequired: PropTypes.number.isRequired,
31+
objectRequired: PropTypes.object.isRequired,
32+
stringRequired: PropTypes.string.isRequired,
33+
nodeRequired: PropTypes.node.isRequired,
34+
elementRequired: PropTypes.element.isRequired,
35+
oneOfRequired: PropTypes.oneOf(['a', 'b', 'c']).isRequired,
36+
oneOfTypeRequired: PropTypes.oneOfType([
37+
PropTypes.string,
38+
PropTypes.number,
3939
]).isRequired,
40-
arrayOfRequired: React.PropTypes.arrayOf(React.PropTypes.string).isRequired,
41-
objectOfRequired: React.PropTypes.objectOf(React.PropTypes.string).isRequired,
42-
shapeRequired: React.PropTypes.shape({
43-
color: React.PropTypes.string,
44-
fontSize: React.PropTypes.number.isRequired,
40+
arrayOfRequired: PropTypes.arrayOf(PropTypes.string).isRequired,
41+
objectOfRequired: PropTypes.objectOf(PropTypes.string).isRequired,
42+
shapeRequired: PropTypes.shape({
43+
color: PropTypes.string,
44+
fontSize: PropTypes.number.isRequired,
4545
}).isRequired,
4646
};
4747
render() {

0 commit comments

Comments
 (0)