stenciljs/eslint-plugin

`expression.callee` is undefined when evaluating custom decorators

Open

#121 ouverte le 24 oct. 2024

Voir sur GitHub
 (0 commentaires) (0 réactions) (0 assignés)TypeScript (37 forks)auto 404
Help Wanted

Métriques du dépôt

Stars
 (71 stars)
Métriques de merge PR
 (Métriques PR en attente)

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;
}

Guide contributeur