stenciljs/eslint-plugin

@stencil/async-methods is not working properly

Open

#15 aperta il 11 set 2020

Vedi su GitHub
 (15 commenti) (11 reazioni) (0 assegnatari)TypeScript (37 fork)auto 404
Bug: ValidatedHelp WantedReply Received

Metriche repository

Star
 (71 star)
Metriche merge PR
 (Metriche PR in attesa)

Descrizione

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.

Guida contributor