Skip to content

Commit 7c0a4e7

Browse files
authored
Fixes require-ember-lifeline rule to scope it to only ember file types (#93)
* Fixes require-ember-lifeline rule to scope it to only ember file types
1 parent 388bdfe commit 7c0a4e7

File tree

4 files changed

+308
-116
lines changed

4 files changed

+308
-116
lines changed

lib/rules/require-ember-lifeline.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ const { getCaller, cleanCaller } = require('../utils/caller');
66
const { getEmberImportBinding } = require('../utils/imports');
77
const { collectObjectPatternBindings } = require('../utils/destructed-binding');
88

9+
const LINTABLE_FILE_PATTERNS = /\/components|routes|controllers|services\//i;
910
let DISALLOWED_OBJECTS = ['Ember.run', 'run'];
1011
let RUN_METHODS = ['later', 'next', 'debounce', 'throttle'];
1112
const LIFELINE_METHODS = ['runTask', 'runTask', 'debounceTask', 'throttleTask'];
@@ -28,6 +29,10 @@ function mergeDisallowedCalls(objects) {
2829
}, []);
2930
}
3031

32+
function isLintableFile(context) {
33+
return LINTABLE_FILE_PATTERNS.test(context.eslint.getFilename());
34+
}
35+
3136
module.exports = {
3237
docs: {
3338
description: 'Please use the lifecycle-aware tasks from ember-lifeline instead of Ember.run.*.',
@@ -61,6 +66,10 @@ module.exports = {
6166
MemberExpression(node) {
6267
let caller = cleanCaller(getCaller(node));
6368

69+
if (!isLintableFile(context)) {
70+
return;
71+
}
72+
6473
if (disallowedCalls.includes(caller)) {
6574
context.report(node, getMessage(caller));
6675
}

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
"eslint": "^3.11.1",
3030
"mocha": "^3.2.0",
3131
"mocha-eslint": "^3.0.1",
32-
"nyc": "^10.0.0"
32+
"nyc": "^11.2.1"
3333
},
3434
"dependencies": {
3535
"requireindex": "^1.1.0"

tests/lib/rules/require-ember-lifeline.js

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,13 @@ const ruleTester = new RuleTester({
77
sourceType: 'module'
88
}
99
});
10+
const filename = 'addon/components/my-component.js';
11+
const unlintableFilename = 'addon/utils/util.js';
1012

1113
ruleTester.run('require-ember-lifeline', rule, {
1214
valid: [
1315
{
16+
filename,
1417
code: `
1518
import Ember from 'ember';
1619
@@ -23,6 +26,7 @@ ruleTester.run('require-ember-lifeline', rule, {
2326
});`
2427
},
2528
{
29+
filename,
2630
code: `
2731
import Ember from 'ember';
2832
@@ -37,6 +41,7 @@ ruleTester.run('require-ember-lifeline', rule, {
3741
});`
3842
},
3943
{
44+
filename,
4045
code: `
4146
import Ember from 'ember';
4247
@@ -49,6 +54,7 @@ ruleTester.run('require-ember-lifeline', rule, {
4954
});`
5055
},
5156
{
57+
filename,
5258
code: `
5359
import Ember from 'ember';
5460
@@ -63,6 +69,7 @@ ruleTester.run('require-ember-lifeline', rule, {
6369
});`
6470
},
6571
{
72+
filename,
6673
code: `
6774
import Ember from 'ember';
6875
@@ -75,6 +82,7 @@ ruleTester.run('require-ember-lifeline', rule, {
7582
});`
7683
},
7784
{
85+
filename,
7886
code: `
7987
import Ember from 'ember';
8088
@@ -87,10 +95,26 @@ ruleTester.run('require-ember-lifeline', rule, {
8795
}
8896
}
8997
});`
98+
},
99+
{
100+
filename: unlintableFilename,
101+
code: `
102+
import Ember from 'ember';
103+
104+
export default Ember.Component({
105+
actions: {
106+
foo() {
107+
Ember.run.later(() => {
108+
doSomeWork();
109+
});
110+
}
111+
}
112+
});`
90113
}
91114
],
92115
invalid: [
93116
{
117+
filename,
94118
code: `
95119
import Ember from 'ember';
96120
@@ -106,6 +130,7 @@ ruleTester.run('require-ember-lifeline', rule, {
106130
}]
107131
},
108132
{
133+
filename,
109134
code: `
110135
import Ember from 'ember';
111136
@@ -123,6 +148,7 @@ ruleTester.run('require-ember-lifeline', rule, {
123148
}]
124149
},
125150
{
151+
filename,
126152
code: `
127153
import Ember from 'ember';
128154
@@ -138,6 +164,7 @@ ruleTester.run('require-ember-lifeline', rule, {
138164
}]
139165
},
140166
{
167+
filename,
141168
code: `
142169
import Ember from 'ember';
143170
@@ -155,6 +182,7 @@ ruleTester.run('require-ember-lifeline', rule, {
155182
}]
156183
},
157184
{
185+
filename,
158186
code: `
159187
import Ember from 'ember';
160188
@@ -174,6 +202,7 @@ ruleTester.run('require-ember-lifeline', rule, {
174202
}]
175203
},
176204
{
205+
filename,
177206
code: `
178207
import Ember from 'ember';
179208
@@ -195,6 +224,7 @@ ruleTester.run('require-ember-lifeline', rule, {
195224
}]
196225
},
197226
{
227+
filename,
198228
code: `
199229
import Ember from 'ember';
200230
@@ -210,6 +240,7 @@ ruleTester.run('require-ember-lifeline', rule, {
210240
}]
211241
},
212242
{
243+
filename,
213244
code: `
214245
import Ember from 'ember';
215246
@@ -227,6 +258,7 @@ ruleTester.run('require-ember-lifeline', rule, {
227258
}]
228259
},
229260
{
261+
filename,
230262
code: `
231263
import Ember from 'ember';
232264
@@ -242,6 +274,7 @@ ruleTester.run('require-ember-lifeline', rule, {
242274
}]
243275
},
244276
{
277+
filename,
245278
code: `
246279
import Ember from 'ember';
247280
@@ -259,6 +292,7 @@ ruleTester.run('require-ember-lifeline', rule, {
259292
}]
260293
},
261294
{
295+
filename,
262296
code: `
263297
import Ember from 'ember';
264298
@@ -278,6 +312,7 @@ ruleTester.run('require-ember-lifeline', rule, {
278312
}]
279313
},
280314
{
315+
filename,
281316
code: `
282317
import Ember from 'ember';
283318
@@ -299,6 +334,7 @@ ruleTester.run('require-ember-lifeline', rule, {
299334
}]
300335
},
301336
{
337+
filename,
302338
code: `
303339
import Ember from 'ember';
304340
@@ -314,6 +350,7 @@ ruleTester.run('require-ember-lifeline', rule, {
314350
}]
315351
},
316352
{
353+
filename,
317354
code: `
318355
import Ember from 'ember';
319356
@@ -331,6 +368,7 @@ ruleTester.run('require-ember-lifeline', rule, {
331368
}]
332369
},
333370
{
371+
filename,
334372
code: `
335373
import Ember from 'ember';
336374
@@ -346,6 +384,7 @@ ruleTester.run('require-ember-lifeline', rule, {
346384
}]
347385
},
348386
{
387+
filename,
349388
code: `
350389
import Ember from 'ember';
351390
@@ -363,6 +402,7 @@ ruleTester.run('require-ember-lifeline', rule, {
363402
}]
364403
},
365404
{
405+
filename,
366406
code: `
367407
import Ember from 'ember';
368408
@@ -382,6 +422,7 @@ ruleTester.run('require-ember-lifeline', rule, {
382422
}]
383423
},
384424
{
425+
filename,
385426
code: `
386427
import Ember from 'ember';
387428
@@ -403,6 +444,7 @@ ruleTester.run('require-ember-lifeline', rule, {
403444
}]
404445
},
405446
{
447+
filename,
406448
code: `
407449
import Ember from 'ember';
408450
@@ -418,6 +460,7 @@ ruleTester.run('require-ember-lifeline', rule, {
418460
}]
419461
},
420462
{
463+
filename,
421464
code: `
422465
import Ember from 'ember';
423466
@@ -435,6 +478,7 @@ ruleTester.run('require-ember-lifeline', rule, {
435478
}]
436479
},
437480
{
481+
filename,
438482
code: `
439483
import Ember from 'ember';
440484
@@ -450,6 +494,7 @@ ruleTester.run('require-ember-lifeline', rule, {
450494
}]
451495
},
452496
{
497+
filename,
453498
code: `
454499
import Ember from 'ember';
455500
@@ -467,6 +512,7 @@ ruleTester.run('require-ember-lifeline', rule, {
467512
}]
468513
},
469514
{
515+
filename,
470516
code: `
471517
import Ember from 'ember';
472518
@@ -486,6 +532,7 @@ ruleTester.run('require-ember-lifeline', rule, {
486532
}]
487533
},
488534
{
535+
filename,
489536
code: `
490537
import Ember from 'ember';
491538

0 commit comments

Comments
 (0)