UNPKG

@barchart/common-js

Version:
162 lines (161 loc) 5.06 kB
/** * 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';