stenciljs/eslint-plugin

`expression.callee` is undefined when evaluating custom decorators

Open

#121 建立於 2024年10月24日

在 GitHub 查看
 (0 留言) (0 反應) (0 負責人)TypeScript (37 fork)auto 404
Help Wanted

倉庫指標

Star
 (71 star)
PR 合併指標
 (PR 指標待抓取)

描述

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

貢獻者指南