Skip to content

Commit 09b88ed

Browse files
committed
fix: support all call signatures
1 parent 2bc4c29 commit 09b88ed

File tree

3 files changed

+71
-4
lines changed

3 files changed

+71
-4
lines changed

packages/eslint-plugin-svelte/src/rules/no-add-event-listener.ts

-4
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,6 @@ export default createRule('no-add-event-listener', {
2929
const { callee, arguments: args } = node;
3030
let target: string | null = null;
3131

32-
if (args.length < 2 || args.length > 3) {
33-
return;
34-
}
35-
3632
if (
3733
callee.type === 'MemberExpression' &&
3834
callee.property.type === 'Identifier' &&

packages/eslint-plugin-svelte/tests/fixtures/rules/no-add-event-listener/invalid/test01-errors.yaml

+68
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@
3636
3737
// with options
3838
window.addEventListener('message', handler, { once: true });
39+
40+
// using spread
41+
window.addEventListener(...params);
3942
</script>
4043
4144
<button onclick={onClick}>Hello</button>
@@ -77,6 +80,9 @@
7780
7881
// with options
7982
window.addEventListener('message', handler, { once: true });
83+
84+
// using spread
85+
window.addEventListener(...params);
8086
</script>
8187
8288
<button onclick={onClick}>Hello</button>
@@ -118,6 +124,9 @@
118124
119125
// with options
120126
window.addEventListener('message', handler, { once: true });
127+
128+
// using spread
129+
window.addEventListener(...params);
121130
</script>
122131
123132
<button onclick={onClick}>Hello</button>
@@ -159,6 +168,9 @@
159168
160169
// with options
161170
window.addEventListener('message', handler, { once: true });
171+
172+
// using spread
173+
window.addEventListener(...params);
162174
</script>
163175
164176
<button onclick={onClick}>Hello</button>
@@ -200,6 +212,9 @@
200212
201213
// with options
202214
window.addEventListener('message', handler, { once: true });
215+
216+
// using spread
217+
window.addEventListener(...params);
203218
</script>
204219
205220
<button onclick={onClick}>Hello</button>
@@ -241,6 +256,9 @@
241256
242257
// with options
243258
window.addEventListener('message', handler, { once: true });
259+
260+
// using spread
261+
window.addEventListener(...params);
244262
</script>
245263
246264
<button onclick={onClick}>Hello</button>
@@ -282,6 +300,9 @@
282300
283301
// with options
284302
window.addEventListener('message', handler, { once: true });
303+
304+
// using spread
305+
window.addEventListener(...params);
285306
</script>
286307
287308
<button onclick={onClick}>Hello</button>
@@ -323,6 +344,53 @@
323344
324345
// with options
325346
on(window, 'message', handler, { once: true });
347+
348+
// using spread
349+
window.addEventListener(...params);
350+
</script>
351+
352+
<button onclick={onClick}>Hello</button>
353+
- message: Do not use `addEventListener`. Use the `on` function from
354+
`svelte/events` instead.
355+
line: 34
356+
column: 2
357+
suggestions:
358+
- desc: Use `on` from `svelte/events` instead
359+
output: |
360+
<script>
361+
const handler = (ev) => {
362+
console.log(ev);
363+
};
364+
365+
function onClick(event) {
366+
const target = event.currentTarget;
367+
368+
const deepObj = {
369+
deep: {
370+
obj: {
371+
target
372+
}
373+
}
374+
};
375+
376+
target.addEventListener('focus', handler);
377+
deepObj.deep.obj.target.addEventListener('focus', handler);
378+
}
379+
380+
addEventListener('message', handler);
381+
window.addEventListener('message', handler);
382+
document.addEventListener('visibilitychange', handler);
383+
384+
// with a load of whitespace
385+
window.addEventListener ('message', handler);
386+
// with a comment
387+
window.addEventListener/* foo */('message', handler);
388+
389+
// with options
390+
window.addEventListener('message', handler, { once: true });
391+
392+
// using spread
393+
on(window, ...params);
326394
</script>
327395
328396
<button onclick={onClick}>Hello</button>

packages/eslint-plugin-svelte/tests/fixtures/rules/no-add-event-listener/invalid/test01-input.svelte

+3
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@
2929
3030
// with options
3131
window.addEventListener('message', handler, { once: true });
32+
33+
// using spread
34+
window.addEventListener(...params);
3235
</script>
3336

3437
<button onclick={onClick}>Hello</button>

0 commit comments

Comments
 (0)