@optimizely/optimizely-sdk
Version:
JavaScript SDK for Optimizely Feature Experimentation, Optimizely Full Stack (legacy), and Optimizely Rollouts
46 lines (45 loc) • 1.81 kB
TypeScript
import { AbortableRequest, Headers, RequestHandler } from './http';
import { LoggerFacade } from '../../logging/logger';
import { Platform } from '../../platform_support';
/**
* Handles sending requests and receiving responses over HTTP via NodeJS http module
*/
export declare class NodeRequestHandler implements RequestHandler {
private readonly logger?;
private readonly timeout;
constructor(opt?: {
logger?: LoggerFacade;
timeout?: number;
});
/**
* Builds an XMLHttpRequest
* @param requestUrl Fully-qualified URL to which to send the request
* @param headers List of headers to include in the request
* @param method HTTP method to use
* @param data? stringified version of data to POST, PUT, etc
* @returns AbortableRequest contains both the response Promise and capability to abort()
*/
makeRequest(requestUrl: string, headers: Headers, method: string, data?: string): AbortableRequest;
/**
* Parses a URL into its constituent parts
* @param url URL object to parse
* @private
* @returns http.RequestOptions Standard request options dictionary compatible with both http and https
*/
private getRequestOptionsFromUrl;
/**
* Parses headers from an http response
* @param incomingMessage Incoming response message to parse
* @private
* @returns Headers Dictionary of headers without duplicates
*/
private createHeadersFromNodeIncomingMessage;
/**
* Sends a built request handling response, errors, and events around the transmission
* @param request Request to send
* @private
* @returns AbortableRequest with simplified response promise
*/
private getAbortableRequestFromRequest;
}
export declare const __platforms: Platform[];