@osaedasia/oresume
Version:
A user-friendly library for generating complete Single Page Applications (SPAs)
65 lines (64 loc) • 2.54 kB
TypeScript
import { QueryParametersRecord, QueryParamTypeMap } from "../definitions/types/QueryParam";
import { URLHashSearchParams } from "../../presentation/URLHashSearchParams";
/**
* Configuration interface for URL routing with optional search parameters.
* @template TOriginalUrl The type representing the original URL string.
* @template TParamTypeMap The type mapping for query parameters.
*/
export interface UrlRouteConfig<TOriginalUrl extends string, TParamTypeMap extends QueryParamTypeMap> {
/**
* The original URL string to be processed.
*/
url: TOriginalUrl;
/**
* Optional search parameters configuration for the URL.
*/
searchParams?: QueryParametersRecord<TParamTypeMap>;
}
export interface IUrlRoute<TOriginalUrl extends string, TParamTypeMap extends QueryParamTypeMap = never> {
/**
* The unmodified URL as provided in the configuration.
*/
readonly originalUrl: TOriginalUrl;
/**
* The processed URL in a standardized format.
*/
readonly normalizedUrl: string;
/**
* Handler for URL hash-based search parameters.
*/
readonly search: URLHashSearchParams<TParamTypeMap>;
/**
* Record containing the search parameters configuration.
*/
readonly searchParamsRecord: QueryParametersRecord<TParamTypeMap>;
}
/**
* Processes and manages URL routing with optional search parameters.
* @template TOriginalUrl The type representing the original URL string.
* @template TParamTypeMap The type mapping for query parameters.
*/
export declare class UrlRoute<TOriginalUrl extends string, TParamTypeMap extends QueryParamTypeMap = never> implements IUrlRoute<TOriginalUrl, TParamTypeMap> {
/**
* The unmodified URL as provided in the configuration.
*/
readonly originalUrl: TOriginalUrl;
/**
* The processed URL in a standardized format.
*/
readonly normalizedUrl: string;
/**
* Handler for URL hash-based search parameters.
*/
readonly search: URLHashSearchParams<TParamTypeMap>;
/**
* Record containing the search parameters configuration.
*/
readonly searchParamsRecord: QueryParametersRecord<TParamTypeMap>;
/**
* Creates a new URL route instance.
* @param {UrlRouteConfig<TOriginalUrl, TParamTypeMap>} config The configuration for the URL route.
* @param {boolean} urlBasedRouting Determines if URL-based routing should be enabled.
*/
constructor(config: UrlRouteConfig<TOriginalUrl, TParamTypeMap>, urlBasedRouting?: boolean);
}