Skip to content

Enhancement: [no-floating-promises] need a configuration that would allow to exclude an object from this rule #5844

Closed as not planned
@budarin

Description

@budarin

Before You File a Proposal Please Confirm You Have Done The Following...

My proposal is suitable for this project

  • I believe my proposal would be useful to the broader TypeScript community (meaning it is not a niche proposal).

Link to the rule's documentation

https://typescript-eslint.io/rules/no-floating-promises/

Description

Fastify.reply object has then method, but reply is not a Promise and its methods are not asynchronous

typescript-eslint marks each method of the reply object as asynchronous and requires it to be preceded by an await call

Fail

import { FastifyReply, FastifyRequest } from 'fastify';

function setNotFound(req: FastifyRequest, res: FastifyReply, done: HookHandlerDoneFunction): void {
    res.status(404);
    res.send('Not found');

    done();
}

image

Pass

import { FastifyReply, FastifyRequest } from 'fastify';

function setNotFound(req: FastifyRequest, res: FastifyReply, done: HookHandlerDoneFunction): void {
    void res.status(404);
    void res.send('Not found');

    done();
}

Additional Info

The plugin should look at what the object's method returns, and not just whether the object has a then method.

Or it is necessary to configure the rule to be able to exclude this object/methods from consideration by this rule

Metadata

Metadata

Assignees

No one assigned

    Labels

    duplicateThis issue or pull request already existspackage: eslint-pluginIssues related to @typescript-eslint/eslint-plugin

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions