Open
Description
Before You File a Proposal Please Confirm You Have Done The Following...
- I have searched for related issues and found none that match my proposal.
- I have searched the current rule list and found no rules that match my proposal.
- I have read the FAQ and my problem is not listed.
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