aboutsummaryrefslogtreecommitdiffstats
path: root/node_modules/rxjs/src/internal/ajax/getXHRResponse.ts
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/rxjs/src/internal/ajax/getXHRResponse.ts')
-rw-r--r--node_modules/rxjs/src/internal/ajax/getXHRResponse.ts37
1 files changed, 37 insertions, 0 deletions
diff --git a/node_modules/rxjs/src/internal/ajax/getXHRResponse.ts b/node_modules/rxjs/src/internal/ajax/getXHRResponse.ts
new file mode 100644
index 0000000..34d7031
--- /dev/null
+++ b/node_modules/rxjs/src/internal/ajax/getXHRResponse.ts
@@ -0,0 +1,37 @@
+/**
+ * Gets what should be in the `response` property of the XHR. However,
+ * since we still support the final versions of IE, we need to do a little
+ * checking here to make sure that we get the right thing back. Consequently,
+ * we need to do a JSON.parse() in here, which *could* throw if the response
+ * isn't valid JSON.
+ *
+ * This is used both in creating an AjaxResponse, and in creating certain errors
+ * that we throw, so we can give the user whatever was in the response property.
+ *
+ * @param xhr The XHR to examine the response of
+ */
+export function getXHRResponse(xhr: XMLHttpRequest) {
+ switch (xhr.responseType) {
+ case 'json': {
+ if ('response' in xhr) {
+ return xhr.response;
+ } else {
+ // IE
+ const ieXHR: any = xhr;
+ return JSON.parse(ieXHR.responseText);
+ }
+ }
+ case 'document':
+ return xhr.responseXML;
+ case 'text':
+ default: {
+ if ('response' in xhr) {
+ return xhr.response;
+ } else {
+ // IE
+ const ieXHR: any = xhr;
+ return ieXHR.responseText;
+ }
+ }
+ }
+}
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage