stenciljs/eslint-plugin

`expression.callee` is undefined when evaluating custom decorators

Open

#121 aberto em 24 de out. de 2024

Ver no GitHub
 (0 comments) (0 reactions) (0 assignees)TypeScript (37 forks)auto 404
Help Wanted

Métricas do repositório

Stars
 (71 stars)
Métricas de merge de PR
 (Métricas PR pendentes)

Description

Hello, when using the linter, I have an error exactly here: https://github.com/stencil-community/stencil-eslint/blob/506dba7a5e430da4cfabe96b8e1b1cb31fe07699/src/utils.ts#L50

When debugging the linter run, I have found that dec.expression.callee is undefined. The name of the decorator is situated directly on dec.expression. This issue is happening when using the decorator in this way:

@BindToInstance
  async onApply(
  ... 

instead of

@BindToInstance()
  async onApply(
  ... 

Do you agree to change it to:

function decoratorName(dec) {
  if (!dec.expression) return undefined;
  const { callee, name } = dec.expression;
  return callee ? callee.name : name;
}

Guia do colaborador