@lifaon/rx-js-light
Version:
Blazing fast Observables
92 lines (91 loc) • 4.37 kB
TypeScript
/** TYPES **/
export interface XHRResponseInit extends ResponseInit {
url?: string;
}
declare const XHRResponse_base: {
new (body?: BodyInit | null | undefined, init?: ResponseInit | undefined): Response;
prototype: Response;
error(): Response;
redirect(url: string | URL, status?: number | undefined): Response;
};
export declare class XHRResponse extends XHRResponse_base {
protected _url: string;
constructor(body?: BodyInit | null, init?: XHRResponseInit);
get url(): string;
}
/** TYPES **/
export declare type XHRResponseTypeExtended = XMLHttpRequestResponseType | 'binary-string';
export declare function areReadableStreamSupported(): boolean;
export declare function isReadableStream(value: any): value is ReadableStream;
/** INIT AND SEND XHR FROM REQUEST **/
/**
* Sets headers (type Headers) into xhr (type XMLHttpRequest)
*/
export declare function setHeadersIntoXHR(headers: Headers, xhr: XMLHttpRequest): void;
/**
* Returns a boolean to assign to xhr.withCredentials from the parameters extracted from request
*/
export declare function getXHRWithCredentialsValueFromRequest(request: Request): boolean;
/**
* Inits an XMLHttpRequest from a Request:
* - sets proper responseType, withCredentials, headers, etc...
* - aborts xhr if request.signal is aborted
*/
export declare function initXHRFromRequest(request: Request, xhr: XMLHttpRequest, responseType: XHRResponseTypeExtended): void;
/**
* Inits an XMLHttpRequest from a Request, and sends the body
*/
export declare function initAndSendXHRFromRequestAndBody(xhr: XMLHttpRequest, responseType: XHRResponseTypeExtended, request: Request, body: BodyInit | null): void;
/**
* Inits an XMLHttpRequest from a Request, and sends the body as a ReadableStream.
*/
export declare function initAndSendXHRFromRequestUsingReadableStream(xhr: XMLHttpRequest, responseType: XHRResponseTypeExtended, request: Request): void;
/**
* Inits an XMLHttpRequest from a Request, and sends the body as a Blob.
*/
export declare function initAndSendXHRFromRequestUsingBlob(xhr: XMLHttpRequest, responseType: XHRResponseTypeExtended, request: Request, signal?: AbortSignal): Promise<void>;
/**
* Inits and sends an XMLHttpRequest from a Request. Chooses best sending method.
*/
export declare function initAndSendXHRFromRequest(xhr: XMLHttpRequest, responseType: XHRResponseTypeExtended, request: Request, signal?: AbortSignal): Promise<void>;
/** CONVERTS FINISHED XHR INTO RESPONSE **/
/**
* Converts a binary string to an Uint8Array
*/
export declare function binaryStringToUint8Array(input: string): Uint8Array;
/**
* Converts an XHR.response (having different formats) into an Uint8Array
* INFO: Assumes xhr.readyState is xhr.DONE and response is not null
*/
export declare function XHRResponseToUint8Array(xhr: XMLHttpRequest, responseType?: XHRResponseTypeExtended): Uint8Array;
/**
* Converts an XHR.response (having different formats) into a Blob
* Assumes xhr.readyState is xhr.DONE and response is not null
*/
export declare function XHRResponseToBlob(xhr: XMLHttpRequest, responseType?: XHRResponseTypeExtended): Blob;
/**
* Converts an XHR.response (having different formats) into a ReadableStream
* Assumes xhr.readyState before or equals to xhr.HEADERS_RECEIVED
*/
export declare function XHRResponseToReadableStream(xhr: XMLHttpRequest, responseType?: XHRResponseTypeExtended): ReadableStream<Uint8Array>;
export declare type IHeaderTuple = [key: string, value: string];
/**
* Converts a raw headers' string to an array of tuple [key, value]
*/
export declare function parseRawHeaders(headers: string): IHeaderTuple[];
/**
* Creates a ResponseInit from an XHR.response
* Assumes xhr.readyState after or equals to xhr.HEADERS_RECEIVED
*/
export declare function XHRResponseToResponseInit(xhr: XMLHttpRequest): XHRResponseInit;
/**
* Creates a Response from an XMLHttpRequest.
* Assumes xhr.readyState is xhr.DONE and response is not null
*/
export declare function XHRResponseToResponse(xhr: XMLHttpRequest, responseType?: XHRResponseTypeExtended): Response;
/**
* Creates a Response from an XMLHttpRequest. Uses ReadableStream.
* Assumes xhr.readyState is after or equal to HEADERS_RECEIVED
*/
export declare function XHRResponseToResponseUsingReadableStream(xhr: XMLHttpRequest, responseType?: XHRResponseTypeExtended): Response;
export {};