stenciljs/eslint-plugin

`expression.callee` is undefined when evaluating custom decorators

Open

#121 opened on 2024年10月24日

GitHub で見る
 (0 comments) (0 reactions) (0 assignees)TypeScript (37 forks)auto 404
Help Wanted

Repository metrics

Stars
 (71 stars)
PR merge metrics
 (PR metrics pending)

説明

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

コントリビューターガイド