Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
0b6b314
test: split test cases out to share with ts
Jack-Works Sep 26, 2020
ebec748
feat: impl component finding
Jack-Works Sep 26, 2020
b0e83b4
feat: able to track hooks calls
Jack-Works Sep 26, 2020
78c86d1
fix: use outdated node
Jack-Works Sep 26, 2020
1b1b416
feat: able to insert signature calls
Jack-Works Sep 26, 2020
1d5a156
chore: use paran
Jack-Works Sep 26, 2020
8a0ab66
fix: also wrap hoc fns
Jack-Works Sep 26, 2020
09f5b14
fix: rest cases
Jack-Works Sep 26, 2020
5f34534
chore: remove unused vars
Jack-Works Sep 26, 2020
218b0d4
feat: generate signature for builtin hooks
Jack-Works Sep 27, 2020
182e81c
feat: track custom hooks
Jack-Works Sep 27, 2020
8caf2f2
test: add test cases
Jack-Works Sep 27, 2020
eae20b6
fix: aliased improt not tracked
Jack-Works Sep 27, 2020
a88eb33
chore: remove extra false param
Jack-Works Sep 27, 2020
0553d1b
fix: export default hooks
Jack-Works Sep 27, 2020
8139cc7
feat: add emit hash
Jack-Works Sep 27, 2020
d020fa2
chore: make it more pure
Jack-Works Sep 27, 2020
a827f0a
refactor
Jack-Works Sep 27, 2020
91d280e
refactor
Jack-Works Sep 27, 2020
caf3aa2
refactor
Jack-Works Sep 27, 2020
fe8db84
refactor
Jack-Works Sep 27, 2020
775abee
test: add a new case
Jack-Works Sep 27, 2020
792a7f7
chore: move ts into opts
Jack-Works Sep 28, 2020
4ae646b
fix: break when downgrading ?? and ?. syntax
Jack-Works Sep 29, 2020
aed1d14
chore: update snapshot
Jack-Works Sep 29, 2020
4fb4f52
fix: some runtime error
Jack-Works Sep 29, 2020
ec6180d
fix: some runtime error
Jack-Works Sep 29, 2020
abfb1be
use ts 4.0 factory API
Jack-Works Sep 28, 2020
fcdbb2d
use create temp var
Jack-Works Sep 28, 2020
dea9ef4
Merge branch 'master' into ts-react-refresh
Jack-Works Oct 5, 2020
8b9d686
throw on ts v3
Jack-Works Oct 5, 2020
1e1e12f
chore: add a .d.ts file for /typescript entry
Jack-Works Oct 24, 2020
8448fe2
chore: add a .d.ts file for /typescript entry
Jack-Works Oct 24, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
chore: remove unused vars
  • Loading branch information
Jack-Works committed Sep 26, 2020
commit 5f34534e813a9ddca18bcb1fe61307b26d41ec1a
14 changes: 9 additions & 5 deletions packages/react-refresh/src/ReactFreshTypeScriptTransformer.js
Original file line number Diff line number Diff line change
Expand Up @@ -150,15 +150,15 @@ export default function(opts = {}, ts = require('typescript')) {
* @returns {import('typescript').BinaryExpression | CallExpression}
*/
function registerHigherOrderFunction(callExpr, nameHint) {
const uniq = createTempVariable();
// Recursive case, if it is x(y(...)), recursive with y(...) to get inner expr
const arg = callExpr.arguments[0];
if (ts.isCallExpression(arg)) {
const tempVar = createTempVariable();
const nextNameHint = nameHint + '$' + printNode(callExpr.expression);
const innerResult = registerHigherOrderFunction(arg, nextNameHint);
afterStatements.push(createRegister(uniq, nextNameHint));
afterStatements.push(createRegister(tempVar, nextNameHint));
return ts.updateCall(callExpr, callExpr.expression, void 0, [
ts.createAssignment(uniq, innerResult),
ts.createAssignment(tempVar, innerResult),
...callExpr.arguments.slice(1),
]);
}
Expand All @@ -170,11 +170,15 @@ export default function(opts = {}, ts = require('typescript')) {
)
throw new Error('Please call isHOCLike first');
if (ts.isIdentifier(arg)) return callExpr;
const tempVar = createTempVariable();
afterStatements.push(
createRegister(uniq, nameHint + '$' + printNode(callExpr.expression)),
createRegister(
tempVar,
nameHint + '$' + printNode(callExpr.expression),
),
);
return ts.updateCall(callExpr, callExpr.expression, void 0, [
ts.createAssignment(uniq, hooksSignatureMap.get(arg) || arg),
ts.createAssignment(tempVar, hooksSignatureMap.get(arg) || arg),
...callExpr.arguments.slice(1),
]);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -236,25 +236,25 @@ function hello() {
`;

exports[`ReactFreshTypeScriptTransformer registers capitalized identifiers in HOC calls 1`] = `
var _a, _b, _c, _d, _e, _f, _g;
var _a, _b, _c, _d;
function Foo() {
return <h1>Hi</h1>;
}
_a = Foo;
export default _c = hoc(Foo);
export default _b = hoc(Foo);
export const A = hoc(Foo);
_e = A;
_c = A;
const B = hoc(Foo);
_g = B;
_d = B;
$RefreshReg$(_a, "Foo");
$RefreshReg$(_c, "%default%");
$RefreshReg$(_e, "A");
$RefreshReg$(_g, "B");
$RefreshReg$(_b, "%default%");
$RefreshReg$(_c, "A");
$RefreshReg$(_d, "B");

`;

exports[`ReactFreshTypeScriptTransformer registers identifiers used in JSX at definition site 1`] = `
var _a, _b, _c, _d, _e, _f, _g, _h;
var _a, _b, _c, _d, _e, _f, _g;
import A from './A';
import Store from './Store';
Store.subscribe();
Expand All @@ -278,19 +278,19 @@ const B = hoc(A);
_f = B;
// This is currently registered as a false positive:
const NotAComponent = wow(A);
_h = NotAComponent;
_g = NotAComponent;
$RefreshReg$(_a, "Header");
$RefreshReg$(_b, "StyledFactory1");
$RefreshReg$(_c, "StyledFactory2");
$RefreshReg$(_d, "StyledFactory3");
$RefreshReg$(_e, "Foo");
$RefreshReg$(_f, "B");
$RefreshReg$(_h, "NotAComponent");
$RefreshReg$(_g, "NotAComponent");

`;

exports[`ReactFreshTypeScriptTransformer registers identifiers used in React.createElement at definition site 1`] = `
var _a, _b, _c, _d, _e, _f, _g, _h;
var _a, _b, _c, _d, _e, _f, _g;
import A from './A';
import Store from './Store';
Store.subscribe();
Expand Down Expand Up @@ -325,14 +325,14 @@ const B = hoc(A);
_f = B;
// This is currently registered as a false positive:
const NotAComponent = wow(A);
_h = NotAComponent;
_g = NotAComponent;
$RefreshReg$(_a, "Header");
$RefreshReg$(_b, "StyledFactory1");
$RefreshReg$(_c, "StyledFactory2");
$RefreshReg$(_d, "StyledFactory3");
$RefreshReg$(_e, "Foo");
$RefreshReg$(_f, "B");
$RefreshReg$(_h, "NotAComponent");
$RefreshReg$(_g, "NotAComponent");

`;

Expand Down