aboutsummaryrefslogtreecommitdiffstats
path: root/node_modules/rxjs/src/internal/ajax/errors.ts
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/rxjs/src/internal/ajax/errors.ts')
-rw-r--r--node_modules/rxjs/src/internal/ajax/errors.ts102
1 files changed, 102 insertions, 0 deletions
diff --git a/node_modules/rxjs/src/internal/ajax/errors.ts b/node_modules/rxjs/src/internal/ajax/errors.ts
new file mode 100644
index 0000000..36b6dc7
--- /dev/null
+++ b/node_modules/rxjs/src/internal/ajax/errors.ts
@@ -0,0 +1,102 @@
+import { AjaxRequest } from './types';
+import { getXHRResponse } from './getXHRResponse';
+import { createErrorClass } from '../util/createErrorClass';
+
+/**
+ * A normalized AJAX error.
+ *
+ * @see {@link ajax}
+ */
+export interface AjaxError extends Error {
+ /**
+ * The XHR instance associated with the error.
+ */
+ xhr: XMLHttpRequest;
+
+ /**
+ * The AjaxRequest associated with the error.
+ */
+ request: AjaxRequest;
+
+ /**
+ * The HTTP status code, if the request has completed. If not,
+ * it is set to `0`.
+ */
+ status: number;
+
+ /**
+ * The responseType (e.g. 'json', 'arraybuffer', or 'xml').
+ */
+ responseType: XMLHttpRequestResponseType;
+
+ /**
+ * The response data.
+ */
+ response: any;
+}
+
+export interface AjaxErrorCtor {
+ /**
+ * @deprecated Internal implementation detail. Do not construct error instances.
+ * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269
+ */
+ new (message: string, xhr: XMLHttpRequest, request: AjaxRequest): AjaxError;
+}
+
+/**
+ * Thrown when an error occurs during an AJAX request.
+ * This is only exported because it is useful for checking to see if an error
+ * is an `instanceof AjaxError`. DO NOT create new instances of `AjaxError` with
+ * the constructor.
+ *
+ * @see {@link ajax}
+ */
+export const AjaxError: AjaxErrorCtor = createErrorClass(
+ (_super) =>
+ function AjaxErrorImpl(this: any, message: string, xhr: XMLHttpRequest, request: AjaxRequest) {
+ this.message = message;
+ this.name = 'AjaxError';
+ this.xhr = xhr;
+ this.request = request;
+ this.status = xhr.status;
+ this.responseType = xhr.responseType;
+ let response: any;
+ try {
+ // This can throw in IE, because we have to do a JSON.parse of
+ // the response in some cases to get the expected response property.
+ response = getXHRResponse(xhr);
+ } catch (err) {
+ response = xhr.responseText;
+ }
+ this.response = response;
+ }
+);
+
+export interface AjaxTimeoutError extends AjaxError {}
+
+export interface AjaxTimeoutErrorCtor {
+ /**
+ * @deprecated Internal implementation detail. Do not construct error instances.
+ * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269
+ */
+ new (xhr: XMLHttpRequest, request: AjaxRequest): AjaxTimeoutError;
+}
+
+/**
+ * Thrown when an AJAX request times out. Not to be confused with {@link TimeoutError}.
+ *
+ * This is exported only because it is useful for checking to see if errors are an
+ * `instanceof AjaxTimeoutError`. DO NOT use the constructor to create an instance of
+ * this type.
+ *
+ * @see {@link ajax}
+ */
+export const AjaxTimeoutError: AjaxTimeoutErrorCtor = (() => {
+ function AjaxTimeoutErrorImpl(this: any, xhr: XMLHttpRequest, request: AjaxRequest) {
+ AjaxError.call(this, 'ajax timeout', xhr, request);
+ this.name = 'AjaxTimeoutError';
+ return this;
+ }
+ AjaxTimeoutErrorImpl.prototype = Object.create(AjaxError.prototype);
+ return AjaxTimeoutErrorImpl;
+})() as any;
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage