@barchart/common-js
Version:
Library of common JavaScript utilities
162 lines (161 loc) • 5.06 kB
TypeScript
/**
* Fluent interface for building a {@link Endpoint}.
*
* @public
*/
export default class EndpointBuilder {
/**
* Factory function for creating an {@link EndpointBuilder} instance.
*
* @public
* @static
* @param {string} name
* @param {string=} description
* @returns {EndpointBuilder}
*/
public static for(name: string, description?: string | undefined): EndpointBuilder;
/**
* @param {string} name
* @param {string=} description
*/
constructor(name: string, description?: string | undefined);
/**
* The {@link Endpoint}, given all the information provided thus far.
*
* @public
* @returns {Endpoint}
*/
public get endpoint(): Endpoint;
/**
* Sets the verb.
*
* @public
* @param {VerbType} verb
* @returns {EndpointBuilder}
*/
public withVerb(verb: VerbType): EndpointBuilder;
/**
* Sets the host.
*
* @public
* @param {ProtocolType} protocol
* @returns {EndpointBuilder}
*/
public withProtocol(protocol: ProtocolType): EndpointBuilder;
/**
* Sets the host.
*
* @public
* @param {string} host
* @returns {EndpointBuilder}
*/
public withHost(host: string): EndpointBuilder;
/**
* Sets the port.
*
* @public
* @param {number} port
* @returns {EndpointBuilder}
*/
public withPort(port: number): EndpointBuilder;
/**
* Adds a {@link Parameters} collection, describing the request headers, using a callback.
*
* @public
* @param {parametersBuilderCallback} callback
* @returns {EndpointBuilder}
*/
public withHeadersBuilder(callback: parametersBuilderCallback): EndpointBuilder;
/**
* Adds a {@link Parameters} collection, describing the request path, using a callback.
*
* @public
* @param {parametersBuilderCallback} callback
* @returns {EndpointBuilder}
*/
public withPathBuilder(callback: parametersBuilderCallback): EndpointBuilder;
/**
* Adds a {@link Parameters} collection, describing the request querystring, using a callback.
*
* @public
* @param {parametersBuilderCallback} callback
* @returns {EndpointBuilder}
*/
public withQueryBuilder(callback: parametersBuilderCallback): EndpointBuilder;
/**
* Adds a {@link Parameters} collection, describing the request body, using a callback.
*
* @public
* @param {parametersBuilderCallback} callback
* @returns {EndpointBuilder}
*/
public withBodyBuilder(callback: parametersBuilderCallback): EndpointBuilder;
/**
* Adds a body to the request.
*
* @public
* @param {string=} description - The human-readable description of the request body.
* @returns {EndpointBuilder}
*/
public withBody(description?: string | undefined): EndpointBuilder;
/**
* Adds basic authentication to the request.
*
* @public
* @param {string} username
* @param {string} password
* @returns {EndpointBuilder}
*/
public withBasicAuthentication(username: string, password: string): EndpointBuilder;
/**
* Adds basic authentication to the request, using a callback.
*
* @public
* @param {Function} callback
* @returns {EndpointBuilder}
*/
public withBasicAuthenticationBuilder(callback: Function): EndpointBuilder;
/**
* Adds a {@link RequestInterceptor}.
*
* @public
* @param {RequestInterceptor} requestInterceptor
* @returns {EndpointBuilder}
*/
public withRequestInterceptor(requestInterceptor: RequestInterceptor): EndpointBuilder;
/**
* Adds a {@link ResponseInterceptor} for successful web service responses.
*
* @public
* @param {ResponseInterceptor} responseInterceptor
* @returns {EndpointBuilder}
*/
public withResponseInterceptor(responseInterceptor: ResponseInterceptor): EndpointBuilder;
/**
* Adds a {@link ErrorInterceptor} for handling remote web service errors.
*
* @public
* @param {ErrorInterceptor} errorInterceptor
* @returns {EndpointBuilder}
*/
public withErrorInterceptor(errorInterceptor: ErrorInterceptor): EndpointBuilder;
/**
* Returns a string representation.
*
* @public
* @returns {string}
*/
public toString(): string;
#private;
}
/**
* A function that returns a {@link ParametersBuilder}.
*/
export type parametersBuilderCallback = (parameterBuilder: ParametersBuilder) => void;
import Endpoint from './../definitions/Endpoint.js';
import VerbType from './../definitions/VerbType.js';
import ProtocolType from './../definitions/ProtocolType.js';
import RequestInterceptor from './../interceptors/RequestInterceptor.js';
import ResponseInterceptor from './../interceptors/ResponseInterceptor.js';
import ErrorInterceptor from './../interceptors/ErrorInterceptor.js';
import ParametersBuilder from './ParametersBuilder.js';