-
Notifications
You must be signed in to change notification settings - Fork 576
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
Fetch statusText
polyfill
#5530
Conversation
The React Native fetch polyfill fails to provide this. See react-native-community/fetch#14
statusText
polyfill
private static createTimeoutSignal(timeoutMs: number | undefined) { | ||
if (typeof timeoutMs === "number") { | ||
const controller = new DefaultNetworkTransport.AbortController(); | ||
// Call abort after a specific number of milliseconds | ||
const timeout = setTimeout(() => { | ||
controller.abort(); | ||
}, timeoutMs); | ||
return { | ||
signal: controller.signal, | ||
cancelTimeout: () => { | ||
clearTimeout(timeout); | ||
}, | ||
}; | ||
} else { | ||
return { | ||
signal: undefined, | ||
cancelTimeout: () => { | ||
/* No-op */ | ||
}, | ||
}; | ||
} | ||
} | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I just moved this up to be a static
member, since it didn't need access to the instance.
100: "Continue", | ||
101: "Switching Protocols", | ||
102: "Processing", | ||
200: "OK", | ||
201: "Created", | ||
202: "Accepted", | ||
203: "Non-Authoritative Information", | ||
204: "No Content", | ||
205: "Reset Content", | ||
206: "Partial Content", | ||
300: "Multiple Choices", | ||
301: "Moved Permanently", | ||
302: "Found", | ||
303: "See Other", | ||
304: "Not Modified", | ||
307: "Temporary Redirect", | ||
308: "Permanent Redirect", | ||
400: "Bad Request", | ||
401: "Unauthorized", | ||
402: "Payment Required", | ||
403: "Forbidden", | ||
404: "Not Found", | ||
405: "Method Not Allowed", | ||
406: "Not Acceptable", | ||
407: "Proxy Authentication Required", | ||
408: "Request Timeout", | ||
409: "Conflict", | ||
410: "Gone", | ||
411: "Length Required", | ||
412: "Precondition Failed", | ||
413: "Payload Too Large", | ||
414: "URI Too Long", | ||
415: "Unsupported Media Type", | ||
416: "Range Not Satisfiable", | ||
417: "Expectation Failed", | ||
418: "I'm a teapot", | ||
422: "Unprocessable Entity", | ||
425: "Too Early", | ||
426: "Upgrade Required", | ||
429: "Too Many Requests", | ||
431: "Request Header Fields Too Large", | ||
451: "Unavailable For Legal Reasons", | ||
500: "Internal Server Error", | ||
501: "Not Implemented", | ||
502: "Bad Gateway", | ||
503: "Service Unavailable", | ||
504: "Gateway Timeout", | ||
505: "HTTP Version Not Supported", | ||
506: "Variant Also Negotiates", | ||
507: "Insufficient Storage", | ||
508: "Loop Detected", | ||
510: "Not Extended", | ||
511: "Network Authentication Required", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you add that as a comment in the code?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done 👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice find! LGTM
100: "Continue", | ||
101: "Switching Protocols", | ||
102: "Processing", | ||
200: "OK", | ||
201: "Created", | ||
202: "Accepted", | ||
203: "Non-Authoritative Information", | ||
204: "No Content", | ||
205: "Reset Content", | ||
206: "Partial Content", | ||
300: "Multiple Choices", | ||
301: "Moved Permanently", | ||
302: "Found", | ||
303: "See Other", | ||
304: "Not Modified", | ||
307: "Temporary Redirect", | ||
308: "Permanent Redirect", | ||
400: "Bad Request", | ||
401: "Unauthorized", | ||
402: "Payment Required", | ||
403: "Forbidden", | ||
404: "Not Found", | ||
405: "Method Not Allowed", | ||
406: "Not Acceptable", | ||
407: "Proxy Authentication Required", | ||
408: "Request Timeout", | ||
409: "Conflict", | ||
410: "Gone", | ||
411: "Length Required", | ||
412: "Precondition Failed", | ||
413: "Payload Too Large", | ||
414: "URI Too Long", | ||
415: "Unsupported Media Type", | ||
416: "Range Not Satisfiable", | ||
417: "Expectation Failed", | ||
418: "I'm a teapot", | ||
422: "Unprocessable Entity", | ||
425: "Too Early", | ||
426: "Upgrade Required", | ||
429: "Too Many Requests", | ||
431: "Request Header Fields Too Large", | ||
451: "Unavailable For Legal Reasons", | ||
500: "Internal Server Error", | ||
501: "Not Implemented", | ||
502: "Bad Gateway", | ||
503: "Service Unavailable", | ||
504: "Gateway Timeout", | ||
505: "HTTP Version Not Supported", | ||
506: "Variant Also Negotiates", | ||
507: "Insufficient Storage", | ||
508: "Loop Detected", | ||
510: "Not Extended", | ||
511: "Network Authentication Required", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you add that as a comment in the code?
415: "Unsupported Media Type", | ||
416: "Range Not Satisfiable", | ||
417: "Expectation Failed", | ||
418: "I'm a teapot", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🫖
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The HTTP 418 I'm a teapot client error response code indicates that the server refuses to brew coffee because it is, permanently, a teapot. A combined coffee/tea pot that is temporarily out of coffee should instead return 503.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
415: "Unsupported Media Type", | ||
416: "Range Not Satisfiable", | ||
417: "Expectation Failed", | ||
418: "I'm a teapot", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The HTTP 418 I'm a teapot client error response code indicates that the server refuses to brew coffee because it is, permanently, a teapot. A combined coffee/tea pot that is temporarily out of coffee should instead return 503.
* This provides a polyfill for the statusText The React Native fetch polyfill fails to provide this. See react-native-community/fetch#14 * Update status-text.ts
What, How & Why?
This provides a polyfill for the
statusText
on aResponse
returned byfetch
.The React Native fetch polyfill fails to provide this.
See react-native-community/fetch#14.