@prass/botpress-native
Version:
A simple and powerful SDK for integrating Botpress Chat API with React Native,
50 lines (49 loc) • 1.93 kB
TypeScript
/**
* Utility class for constructing safe and consistent URLs.
* Ensures correct handling of leading/trailing slashes and prevents duplicate base URLs.
*/
export declare class PrepareUrl {
private baseUrl;
/**
* Constructs a PrepareUrl instance.
*
* @param initialParts - Array of URL segments to form the base URL.
* @throws {Error} If initialParts is not an array.
* @throws {Error} If initialParts contain invalid URL structure.
*/
constructor(initialParts?: string[]);
/**
* Cleans and joins URL parts by removing unnecessary slashes.
*
* @param parts - Array of URL segments.
* @returns A properly formatted URL string.
*/
private cleanAndJoin;
/**
* Validates that the base URL has a proper protocol (http or https).
*
* @throws {Error} If the base URL is invalid.
*/
private validateBaseUrl;
/**
* Generates a complete and safe URL with optional query parameters.
*
* If the base URL is not set, it initializes dynamically from the first `getUrl()` call.
* Prevents duplicate base URLs when segments include the base URL again.
*
* @param segments - Additional URL segments.
* @param queryParams - Optional query parameters object.
* @returns A well-formed URL string with query parameters (if provided).
* @throws {Error} If no base URL is set and segments do not form a valid URL.
*/
getUrl(segments?: (string | number)[], queryParams?: Record<string, any>): string;
/**
* Appends query parameters to a URL if provided.
* Supports array values by repeating keys in the query string.
*
* @param url - The base URL to append query parameters to.
* @param queryParams - An object of key-value pairs to convert to query parameters.
* @returns The URL with query parameters appended.
*/
private appendQueryParams;
}