UNPKG

@osaedasia/oresume

Version:

A user-friendly library for generating complete Single Page Applications (SPAs)

65 lines (64 loc) 2.54 kB
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); }