Skip to content

Commit d80ad8b

Browse files
authored
fix: add checks for undefined variables for valid-graphql-wire-adapter-callback-parameter rule (#149)
1 parent 4e66f16 commit d80ad8b

File tree

2 files changed

+17
-6
lines changed

2 files changed

+17
-6
lines changed

lib/rules/valid-graphql-wire-adapter-callback-parameters.js

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,16 @@ module.exports = {
2525
const { decorators } = node;
2626

2727
// Check that the @wire decorator is using graphql
28-
const graphQlDecorator = decorators.find((decorator) => {
29-
return decorator.expression.arguments.find((argument) => {
30-
return argument.name === 'graphql';
28+
const graphQlDecorator =
29+
decorators !== undefined &&
30+
decorators.find((decorator) => {
31+
if (decorator.expression && decorator.expression.arguments) {
32+
return decorator.expression.arguments.some((argument) => {
33+
return argument.name === 'graphql';
34+
});
35+
}
36+
return false;
3137
});
32-
});
3338

3439
// Verify that the method definition is using 'errors' not 'error
3540
if (graphQlDecorator !== undefined) {
@@ -38,12 +43,12 @@ module.exports = {
3843
(param) => param.type === 'ObjectPattern',
3944
);
4045
if (objectPatternNode !== undefined) {
41-
const incorrectErrorParameter = objectPatternNode.properties.find(
46+
const incorrectErrorParameter = objectPatternNode.properties.some(
4247
(property) => {
4348
return property.value.name === 'error';
4449
},
4550
);
46-
if (incorrectErrorParameter !== undefined) {
51+
if (incorrectErrorParameter) {
4752
context.report({
4853
node,
4954
message:

test/lib/rules/valid-graphql-wire-adapter-callback-parameters.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,12 @@ const ruleTester = new RuleTester(ESLINT_TEST_CONFIG);
1515

1616
ruleTester.run('valid-graphql-wire-adapter-callback-parameters', rule, {
1717
valid: [
18+
{
19+
code: `import { LightningElement, api } from 'lwc';
20+
export default class Foo extends LightningElement {
21+
@api bar_Foo() {}
22+
}`,
23+
},
1824
{
1925
code: `import { wire } from 'lwc';
2026
import getFoo from 'adapter';

0 commit comments

Comments
 (0)