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

贡献者指南