Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit b25be73

Browse files
armano2mysticatea
authored andcommitted
Fix: 'no-shared-component-data' false positive when using arrow functions (fixes #154)(#156)
1 parent 1e7a13a commit b25be73

File tree

2 files changed

+28
-15
lines changed

2 files changed

+28
-15
lines changed

‎lib/rules/no-shared-component-data.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ function create (context) {
1818
p.key.type === 'Identifier' &&
1919
p.key.name === 'data' &&
2020
p.value.type !== 'FunctionExpression' &&
21+
p.value.type !== 'ArrowFunctionExpression' &&
2122
p.value.type !== 'Identifier'
2223
)
2324
.forEach(cp => {
@@ -41,9 +42,7 @@ module.exports = {
4142
recommended: false
4243
},
4344
fixable: null, // or "code" or "whitespace"
44-
schema: [
45-
// fill in your schema
46-
]
45+
schema: []
4746
},
4847

4948
create

‎tests/lib/rules/no-shared-component-data.js

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,12 @@ const rule = require('../../../lib/rules/no-shared-component-data')
1212

1313
const RuleTester = require('eslint').RuleTester
1414

15+
const parserOptions = {
16+
ecmaVersion: 7,
17+
sourceType: 'module',
18+
ecmaFeatures: { experimentalObjectRestSpread: true }
19+
}
20+
1521
// ------------------------------------------------------------------------------
1622
// Tests
1723
// ------------------------------------------------------------------------------
@@ -30,7 +36,8 @@ ruleTester.run('no-shared-component-data', rule, {
3036
}
3137
}
3238
})
33-
`
39+
`,
40+
parserOptions
3441
},
3542
{
3643
filename: 'test.js',
@@ -44,11 +51,7 @@ ruleTester.run('no-shared-component-data', rule, {
4451
}
4552
})
4653
`,
47-
parserOptions: {
48-
ecmaVersion: 7,
49-
sourceType: 'module',
50-
ecmaFeatures: { experimentalObjectRestSpread: true }
51-
}
54+
parserOptions
5255
},
5356
{
5457
filename: 'test.js',
@@ -71,7 +74,7 @@ ruleTester.run('no-shared-component-data', rule, {
7174
}
7275
})
7376
`,
74-
parserOptions: {ecmaVersion: 6}
77+
parserOptions
7578
},
7679
{
7780
filename: 'test.vue',
@@ -84,7 +87,7 @@ ruleTester.run('no-shared-component-data', rule, {
8487
}
8588
}
8689
`,
87-
parserOptions: {ecmaVersion: 6,sourceType: 'module'}
90+
parserOptions
8891
},
8992
{
9093
filename: 'test.vue',
@@ -93,7 +96,7 @@ ruleTester.run('no-shared-component-data', rule, {
9396
...foo
9497
}
9598
`,
96-
parserOptions: {ecmaVersion: 6,sourceType: 'module',ecmaFeatures: {experimentalObjectRestSpread: true}}
99+
parserOptions
97100
},
98101
{
99102
filename: 'test.vue',
@@ -102,7 +105,18 @@ ruleTester.run('no-shared-component-data', rule, {
102105
data
103106
}
104107
`,
105-
parserOptions: { ecmaVersion: 6, sourceType: 'module' }
108+
parserOptions
109+
},
110+
{
111+
filename: 'test.vue',
112+
code: `
113+
export default {
114+
data: () => {
115+
116+
}
117+
}
118+
`,
119+
parserOptions
106120
}
107121
],
108122

@@ -116,7 +130,7 @@ ruleTester.run('no-shared-component-data', rule, {
116130
}
117131
})
118132
`,
119-
parserOptions: {ecmaVersion: 6},
133+
parserOptions,
120134
errors: [{
121135
message: '`data` property in component must be a function',
122136
line: 3
@@ -131,7 +145,7 @@ ruleTester.run('no-shared-component-data', rule, {
131145
}
132146
}
133147
`,
134-
parserOptions: {ecmaVersion: 6,sourceType: 'module'},
148+
parserOptions,
135149
errors: [{
136150
message: '`data` property in component must be a function',
137151
line: 3

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /