stenciljs/eslint-plugin

@stencil/async-methods is not working properly

Open

#15 创建于 2020年9月11日

在 GitHub 查看
 (15 评论) (11 反应) (0 负责人)TypeScript (37 fork)auto 404
Bug: ValidatedHelp WantedReply Received

仓库指标

Star
 (71 star)
PR 合并指标
 (PR 指标待抓取)

描述

Working with the latest version of this plugin: "@stencil/eslint-plugin": "^0.3.1", We discover is not behaving as expected, when we run eslint is throwing the following error:

error External @Method() expandPopover() must return a Promise. Consider prefixing the method with async, such as @Method() async expandPopover() @stencil/async-methods

But we have the async decorator in the method:

    /**
     * some comment
     */
    @Method()
    async expandPopover(): Promise<void> {
        if(this.trigger === PopoverTooltipTrigger.Conditional){
            this.openPopover();
        }
    }

What is worse is that if you run the eslint --fix command, it will generate this code:

    /**
     * some comment
     */


    /**
     * some comment
     */
    

    /**
     * some comment
     */
    

    /**
     * some comment
     */
    @Method()
    asyncasync    async expandPopover(): Promise<void> {
        if(this.trigger === PopoverTooltipTrigger.Conditional){
            this.openPopover();
        }
    }

Is multiplying the comment by 4 and is adding multiple async words before the method declaration.

We couldn't figure it out how to fix this, can you help? Thanks.

贡献者指南