8000 Enhancement: [prefer-promise-reject-errors] Extend to AbortSignals · Issue #10717 · typescript-eslint/typescript-eslint · GitHub
[go: up one dir, main page]

Skip to content
Enhancement: [prefer-promise-reject-errors] Extend to AbortSignals #10717
Open
@vikingair

Description

@vikingair

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/prefer-promise-reject-errors/

Description

Currently, a user can call AbortSignal.abort("foo") or new AbortController().abort("foo") with anything. But doing so within a fetch request will throw the provided argument. In contrary a AbortSignal.timeout(1234) and new AbortController().abort() will throw a DOMException.

I'd like to ensure that the arguments should be enforced to be instances of Error as well.


It could make sense to extend rather this rule: https://typescript-eslint.io/rules/only-throw-error

Fail

new AbortController().abort("foo");

AbortSignal.abort("foo");

Pass

new AbortController().abort(new Error("foo"));

AbortSignal.abort(new DOMException("foo"));

Additional Info

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancement: plugin rule optionNew rule option for an existing eslint-plugin ruleevaluating community engagementwe're looking for community engagement on this issue to show that this problem is widely importantpackage: 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

      0