-
-
Notifications
You must be signed in to change notification settings - Fork 11k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: add isCancel type assert #4293
Conversation
Closing as bool is the correct type in this case |
By isCancel type assert, when the function result is true, the next context typescript will treat the value is Cancel type. It will help developer to write code with code lint @jasonsaayman |
* Fixing proxy beforeRedirect regression (#4708) * Adding Canceler parameters config and request (#4711) Co-authored-by: Jay <[email protected]> * Fixed `toFormData` regression bug (unreleased) with Array-like objects serialization; (#4714) Added `toURLEncodedForm` helper; Added automatic payload serialization to `application/x-www-form-urlencoded` to have parity with `multipart/form-data`; Added test of handling `application/x-www-form-urlencoded` body by express.js; Updated README.md; Added missed param in JSDoc; Fixed hrefs in README.md; Co-authored-by: Jay <[email protected]> * Allow webpack users to overwrite buildins (#4715) Co-authored-by: Jay <[email protected]> * Fixed `AxiosError` status code type; (#4717) Co-authored-by: Jay <[email protected]> * Fixed `AxiosError` stack capturing; (#4718) Co-authored-by: Jay <[email protected]> * allow type definition for axios instance methods (#4224) Co-authored-by: Jay <[email protected]> * add `string[]` to `AxiosRequestHeaders` type (#4322) Co-authored-by: Jay <[email protected]> * Fixing AxiosRequestHeaders typings (#4334) Co-authored-by: Shakirov Kirill <[email protected]> Co-authored-by: Jay <[email protected]> * Added the ability for the `url-encoded-form` serializer to respect the `formSerializer` config; (#4721) Added test for `formSerializer` config in context of `url-encoded-form` serializer; * Updated eslint config; (#4722) Co-authored-by: Jay <[email protected]> * fix: add isCancel type assert (#4293) Co-authored-by: Jay <[email protected]> * Added data URL support for node.js; (#4725) * Added data URL support for node.js; Added missed data URL protocol for the browser environment; Optimized JSON parsing in the default response transformer; Refactored project structure; Added `cause` prop for AxiosError instance that refers to the original error if it was wrapped with `AxiosError.from` method; Added fromDataURI helper; Added test for handling data:url as an `arraybuffer|text|stream`; * Added throwing of 405 HTTP error if the method is not GET; * Fix/4263/maxbodylength defaults (#4731) * test(http): add test case for default body length in follow-redirects * fix(http): provide proper default body length to follow-redirects Co-authored-by: Jay <[email protected]> * Adding types for progress event callbacks (#4675) Co-authored-by: Jay <[email protected]> * Fixed bug #4727 : toFormData Blob issue on node>v17; (#4728) * Fixed bug #4727; Added node 18.x to the CI; Added hotfix for `ERR_OSSL_EVP_UNSUPPORTED` issue with karma running on node >=17.x; Added `cross-env` to allow running build and test scripts on Windows platforms; * Added conditional setting of `--openssl-legacy-provider` option for node versions >=17.x; * Refactored ssl-hotfix & test script; * Fixed and refactored default max body length test due to ECONNRESET failure; * Added test for converting the data uri to a Blob; Fixed bug with parsing mime type for Blob; Co-authored-by: Jay <[email protected]> * URL params serializer; (#4734) * Refactored BuildURL helper to use URLSearchParams serializer; * Updated typings; Added TS test; * Added `axios.formToJSON` method; (#4735) * Draft * Added `formDataToJSON` helper; Added `axios.formToJSON` method; Added client tests; Co-authored-by: Jay <[email protected]> * Bump grunt from 1.5.2 to 1.5.3 (#4743) Bumps [grunt](https://github.com/gruntjs/grunt) from 1.5.2 to 1.5.3. - [Release notes](https://github.com/gruntjs/grunt/releases) - [Changelog](https://github.com/gruntjs/grunt/blob/main/CHANGELOG) - [Commits](gruntjs/grunt@v1.5.2...v1.5.3) --- updated-dependencies: - dependency-name: grunt dependency-type: direct:development ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Updated README.md; (#4742) Updated index.d.ts; Co-authored-by: Jay <[email protected]> * chore: removed Travis CI config file as we have moved to GitHub actions * chore: updated actions to run on new version based branches * Fix/4737/timeout error message for http (#4738) * Fixing timeoutErrorMessage in http calls When timeoutErrorMessage was set this did not change anything in the error message, with this change the error message will be the configured message * Testing timeoutErrorMessage in http calls When timeoutErrorMessage was set this did not change anything in the error message, with this change the error message will be the configured message Co-authored-by: Jay <[email protected]> * Fixing content-type header repeated (#4745) Co-authored-by: Jay <[email protected]> Co-authored-by: Maxime Bargiel <[email protected]> Co-authored-by: 毛呆 <[email protected]> Co-authored-by: Dmitriy Mozgovoy <[email protected]> Co-authored-by: Tom Ceuppens <[email protected]> Co-authored-by: Jelle Schutter <[email protected]> Co-authored-by: Rraji Abdelbari <[email protected]> Co-authored-by: Kirill Shakirov <[email protected]> Co-authored-by: Shakirov Kirill <[email protected]> Co-authored-by: chenjigeng <[email protected]> Co-authored-by: Dimitris Halatsis <[email protected]> Co-authored-by: Johann Cooper <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Victor Augusto <[email protected]> Co-authored-by: João Gabriel Quaresma <[email protected]>
* Fixing proxy beforeRedirect regression (#4708) * Adding Canceler parameters config and request (#4711) Co-authored-by: Jay <[email protected]> * Fixed `toFormData` regression bug (unreleased) with Array-like objects serialization; (#4714) Added `toURLEncodedForm` helper; Added automatic payload serialization to `application/x-www-form-urlencoded` to have parity with `multipart/form-data`; Added test of handling `application/x-www-form-urlencoded` body by express.js; Updated README.md; Added missed param in JSDoc; Fixed hrefs in README.md; Co-authored-by: Jay <[email protected]> * Allow webpack users to overwrite buildins (#4715) Co-authored-by: Jay <[email protected]> * Fixed `AxiosError` status code type; (#4717) Co-authored-by: Jay <[email protected]> * Fixed `AxiosError` stack capturing; (#4718) Co-authored-by: Jay <[email protected]> * allow type definition for axios instance methods (#4224) Co-authored-by: Jay <[email protected]> * add `string[]` to `AxiosRequestHeaders` type (#4322) Co-authored-by: Jay <[email protected]> * Fixing AxiosRequestHeaders typings (#4334) Co-authored-by: Shakirov Kirill <[email protected]> Co-authored-by: Jay <[email protected]> * Added the ability for the `url-encoded-form` serializer to respect the `formSerializer` config; (#4721) Added test for `formSerializer` config in context of `url-encoded-form` serializer; * Updated eslint config; (#4722) Co-authored-by: Jay <[email protected]> * fix: add isCancel type assert (#4293) Co-authored-by: Jay <[email protected]> * Added data URL support for node.js; (#4725) * Added data URL support for node.js; Added missed data URL protocol for the browser environment; Optimized JSON parsing in the default response transformer; Refactored project structure; Added `cause` prop for AxiosError instance that refers to the original error if it was wrapped with `AxiosError.from` method; Added fromDataURI helper; Added test for handling data:url as an `arraybuffer|text|stream`; * Added throwing of 405 HTTP error if the method is not GET; * Fix/4263/maxbodylength defaults (#4731) * test(http): add test case for default body length in follow-redirects * fix(http): provide proper default body length to follow-redirects Co-authored-by: Jay <[email protected]> * Adding types for progress event callbacks (#4675) Co-authored-by: Jay <[email protected]> * Fixed bug #4727 : toFormData Blob issue on node>v17; (#4728) * Fixed bug #4727; Added node 18.x to the CI; Added hotfix for `ERR_OSSL_EVP_UNSUPPORTED` issue with karma running on node >=17.x; Added `cross-env` to allow running build and test scripts on Windows platforms; * Added conditional setting of `--openssl-legacy-provider` option for node versions >=17.x; * Refactored ssl-hotfix & test script; * Fixed and refactored default max body length test due to ECONNRESET failure; * Added test for converting the data uri to a Blob; Fixed bug with parsing mime type for Blob; Co-authored-by: Jay <[email protected]> * URL params serializer; (#4734) * Refactored BuildURL helper to use URLSearchParams serializer; * Updated typings; Added TS test; * Added `axios.formToJSON` method; (#4735) * Draft * Added `formDataToJSON` helper; Added `axios.formToJSON` method; Added client tests; Co-authored-by: Jay <[email protected]> * Bump grunt from 1.5.2 to 1.5.3 (#4743) Bumps [grunt](https://github.com/gruntjs/grunt) from 1.5.2 to 1.5.3. - [Release notes](https://github.com/gruntjs/grunt/releases) - [Changelog](https://github.com/gruntjs/grunt/blob/main/CHANGELOG) - [Commits](gruntjs/grunt@v1.5.2...v1.5.3) --- updated-dependencies: - dependency-name: grunt dependency-type: direct:development ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Updated README.md; (#4742) Updated index.d.ts; Co-authored-by: Jay <[email protected]> * chore: removed Travis CI config file as we have moved to GitHub actions * chore: updated actions to run on new version based branches * Fix/4737/timeout error message for http (#4738) * Fixing timeoutErrorMessage in http calls When timeoutErrorMessage was set this did not change anything in the error message, with this change the error message will be the configured message * Testing timeoutErrorMessage in http calls When timeoutErrorMessage was set this did not change anything in the error message, with this change the error message will be the configured message Co-authored-by: Jay <[email protected]> * Fixing content-type header repeated (#4745) Co-authored-by: Jay <[email protected]> Co-authored-by: Maxime Bargiel <[email protected]> Co-authored-by: 毛呆 <[email protected]> Co-authored-by: Dmitriy Mozgovoy <[email protected]> Co-authored-by: Tom Ceuppens <[email protected]> Co-authored-by: Jelle Schutter <[email protected]> Co-authored-by: Rraji Abdelbari <[email protected]> Co-authored-by: Kirill Shakirov <[email protected]> Co-authored-by: Shakirov Kirill <[email protected]> Co-authored-by: chenjigeng <[email protected]> Co-authored-by: Dimitris Halatsis <[email protected]> Co-authored-by: Johann Cooper <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Victor Augusto <[email protected]> Co-authored-by: João Gabriel Quaresma <[email protected]>
The case when error has type function test(err: AxiosError | Cancel) {
if (axios.isCancel(err)) {
err // AxiosError | Cancel
} else {
err // never
}
} I believe this's a bug. |
My solution is remove Cancel interface and extend CanceledError export class CanceledError<T = any> extends AxiosError<T> {
+ private __CANCEL__: true;
}
- interface Cancel {
- message?: string;
- }
|
add isCancel type assert