Skip to content

Commit 0340bbb

Browse files
committed
working for identifiers
1 parent 0fcd6b8 commit 0340bbb

File tree

2 files changed

+59
-24
lines changed

2 files changed

+59
-24
lines changed

community/memoize-one/src/5.0.0/transform.spec.ts

Lines changed: 56 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ describe('memoize-one@5.0.0 transform', () => {
4545
);
4646
});
4747

48-
it.only('should wrap inline equality arrow functions', () => {
48+
it('should wrap inline equality arrow functions', () => {
4949
const result = applyTransform(
5050
transformer,
5151
format(`
@@ -125,15 +125,12 @@ describe('memoize-one@5.0.0 transform', () => {
125125
);
126126
});
127127

128-
it('should wrap references', () => {
128+
it('should wrap identifiers', () => {
129129
const result = applyTransform(
130130
transformer,
131131
format(`
132132
import memoize from 'memoize-one';
133-
134-
function isEqual(a, b) {
135-
return a === b;
136-
}
133+
import isEqual from 'something';
137134
138135
function add(a: number, b: number) {
139136
return a + b;
@@ -146,24 +143,64 @@ describe('memoize-one@5.0.0 transform', () => {
146143

147144
expect(result).toEqual(
148145
format(`
149-
import memoize from "memoize-one";
146+
import memoize from 'memoize-one';
147+
import isEqual from 'something';
150148
151-
function isEqual(a, b) {
152-
return a === b;
153-
}
149+
function add(a: number, b: number) {
150+
return a + b;
151+
}
154152
155-
function add(a: number, b: number) {
156-
return a + b;
153+
const memoized = memoize(add, (newArgs, lastArgs) => {
154+
if (newArgs.length !== lastArgs.length) {
155+
return false;
157156
}
158157
159-
const memoized = memoize(add, (newArgs, lastArgs) => {
160-
if (newArgs.length !== lastArgs.length) {
161-
return false;
162-
}
163-
164-
return newArgs.every((newArg, index) => isEqual(newArg, lastArgs[index]));
165-
});
158+
const __equalityFn = isEqual;
159+
return newArgs.every((newArg, index) => __equalityFn(newArg, lastArgs[index]));
160+
});
166161
`),
167162
);
168163
});
164+
165+
// it('should wrap references', () => {
166+
// const result = applyTransform(
167+
// transformer,
168+
// format(`
169+
// import memoize from 'memoize-one';
170+
171+
// function isEqual(a, b) {
172+
// return a === b;
173+
// }
174+
175+
// function add(a: number, b: number) {
176+
// return a + b;
177+
// }
178+
179+
// const memoized = memoize(add, isEqual);
180+
// `),
181+
// { parser: 'tsx' },
182+
// );
183+
184+
// expect(result).toEqual(
185+
// format(`
186+
// import memoize from "memoize-one";
187+
188+
// function isEqual(a, b) {
189+
// return a === b;
190+
// }
191+
192+
// function add(a: number, b: number) {
193+
// return a + b;
194+
// }
195+
196+
// const memoized = memoize(add, (newArgs, lastArgs) => {
197+
// if (newArgs.length !== lastArgs.length) {
198+
// return false;
199+
// }
200+
201+
// return newArgs.every((newArg, index) => isEqual(newArg, lastArgs[index]));
202+
// });
203+
// `),
204+
// );
205+
// });
169206
});

community/memoize-one/src/5.0.0/transform.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ export default function transformer(
4242
}
4343
if (
4444
second.type === 'FunctionExpression' ||
45-
second.type === 'ArrowFunctionExpression'
45+
second.type === 'ArrowFunctionExpression' ||
46+
second.type === 'Identifier'
4647
) {
4748
const customEqualityFn = j.arrowFunctionExpression(
4849
[j.identifier('newArgs'), j.identifier('lastArgs')],
@@ -78,7 +79,7 @@ export default function transformer(
7879
j.memberExpression(
7980
j.identifier('lastArgs'),
8081
j.identifier('index'),
81-
// computed lastArgs[index]
82+
// computed: lastArgs[index]
8283
true,
8384
),
8485
]),
@@ -92,9 +93,6 @@ export default function transformer(
9293
call.value.arguments = [first, customEqualityFn];
9394
return;
9495
}
95-
96-
if (second.type === 'Identifier') {
97-
}
9896
});
9997

10098
/**

0 commit comments

Comments
 (0)