Skip to content

Commit 23879f0

Browse files
committed
fix: some edge cases
1 parent b871383 commit 23879f0

File tree

5 files changed

+24
-16
lines changed

5 files changed

+24
-16
lines changed

bin/cli.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,8 @@ function runTransform({ files, flags, transformer }) {
9292

9393
const TRANSFORMER_INQUIRER_CHOICES = [
9494
{
95-
name: 'register-migration: Transforms register',
96-
value: 'register-migration'
95+
name: 'v7/update-register: Transforms register api from v6 to v7',
96+
value: 'v7/update-register'
9797
}
9898
];
9999

transforms/__testfixtures__/v7/update-register/function-component.input.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ function Input() {
77
const Form = () => {
88
const { register } = useForm();
99

10+
useEffect(() => {
11+
register('example');
12+
}, [register]);
13+
1014
return (
1115
<form>
1216
<input ref={register({ required: true })} name="example" />

transforms/__testfixtures__/v7/update-register/function-component.output.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ function Input() {
77
const Form = () => {
88
const { register } = useForm();
99

10+
useEffect(() => {
11+
register('example');
12+
}, [register]);
13+
1014
return (
1115
<form>
1216
<input {...register('example', { required: true })} />

transforms/v7/update-register.ts

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -61,22 +61,18 @@ export default function transformer(file: FileInfo, api: API, options) {
6161
* const { register } = useForm();
6262
* ^
6363
* */
64-
const registerProperties = j(useFormDeclarator).find(j.Property, {
65-
key: { name: REGISTER }
64+
const registerProperties = j(useFormDeclarator).find(j.Identifier, {
65+
name: REGISTER
6666
});
6767

6868
registerProperties.forEach((registerProperty) => {
69-
if (registerProperty.value.value.type !== 'Identifier') {
70-
return;
71-
}
72-
7369
/**
7470
* Retrieve `register` property name
7571
* @example
7672
* const { register } = useForm();
7773
* const { register: registerCustomName } = useForm();
7874
* */
79-
const register = registerProperty.value.value.name;
75+
const register = registerProperty.parentPath.value.value.name;
8076

8177
/**
8278
* Retrieve the related parent component
@@ -111,21 +107,25 @@ export default function transformer(file: FileInfo, api: API, options) {
111107
return;
112108
}
113109

114-
const jsxAttribute = isCallExpression
110+
const maybeJsxAttribute = isCallExpression
115111
? registerIdentifier.parent.parent.parent
116112
: registerIdentifier.parent.parent;
117113

118-
if (jsxAttribute.value.name.name !== 'ref') return;
119-
120-
const jsxOpeningElement = j(jsxAttribute.parentPath);
114+
if (maybeJsxAttribute.value.name?.name !== 'ref') return;
121115

116+
const jsxOpeningElement = j(maybeJsxAttribute.parentPath);
122117
// We search for all `name` attribute of the JSX element
123118
const nameAttributes = jsxOpeningElement.find(j.JSXAttribute, {
124119
name: { name: 'name' }
125120
});
126121

127122
nameAttributes.forEach((nameAttribute) => {
128-
if (nameAttribute.value.value.type !== 'Literal') return;
123+
if (
124+
nameAttribute.value.value.type !== 'Literal' &&
125+
nameAttribute.value.value.type !== 'StringLiteral'
126+
) {
127+
return;
128+
}
129129

130130
const name = nameAttribute.value.value.value;
131131
/**
@@ -152,7 +152,7 @@ export default function transformer(file: FileInfo, api: API, options) {
152152
});
153153

154154
// We remove the old `ref` attribute
155-
j(jsxAttribute).remove();
155+
j(maybeJsxAttribute).remove();
156156
});
157157
});
158158
});

tsconfig.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,5 @@
1010
"outDir": "dist"
1111
},
1212
"include": ["**/*.ts"],
13-
"exclude": ["node_modules", "transforms/__tests__"]
13+
"exclude": ["node_modules", "transforms/__tests__", "dist"]
1414
}

0 commit comments

Comments
 (0)