UNPKG

@osaedasia/oresume

Version:

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

46 lines (45 loc) 3.25 kB
import { QueryParamTypeMap } from "../../domain/definitions/types/QueryParam"; import { InternalPageDefinition, PublicPageDefinition } from "./types/PageDefinition"; import { IPageConfig } from "./interfaces/IPageConfig"; /** * Manages the relationship between public and internal page definitions. * Provides functionality for storing, retrieving, and creating page definitions. */ export declare class PageDefinitionManager { /** * Maps public page definitions to their internal counterparts. */ private static readonly _internalToPublicMap; /** * Associates a public page definition with its internal representation. * @template RelativeUrl The relative URL path type. * @template TParamTypeMap The query parameter type mapping. * @param {PublicPageDefinition<RelativeUrl, TParamTypeMap>} publicDef The public page definition. * @param {InternalPageDefinition<RelativeUrl, TParamTypeMap>} internalDef The internal page definition. */ static storeInternalDefinition<RelativeUrl extends string, TParamTypeMap extends QueryParamTypeMap>(publicDef: PublicPageDefinition<RelativeUrl, TParamTypeMap>, internalDef: InternalPageDefinition<RelativeUrl, TParamTypeMap>): void; /** * Retrieves the internal page definition associated with a public definition. * @template RelativeUrl The relative URL path type. * @template TParamTypeMap The query parameter type mapping. * @param {PublicPageDefinition<RelativeUrl, TParamTypeMap>} publicDef The public page definition. * @returns {InternalPageDefinition<RelativeUrl, TParamTypeMap> | undefined} The corresponding internal page definition, if it exists. */ static getInternalDefinition<RelativeUrl extends string, TParamTypeMap extends QueryParamTypeMap>(publicDef: PublicPageDefinition<RelativeUrl, TParamTypeMap>): InternalPageDefinition<RelativeUrl, TParamTypeMap> | undefined; /** * Creates a new internal page definition from the provided configuration. * @template RelativeUrl The relative URL path type. * @template TParamTypeMap The query parameter type mapping. * @param {IPageConfig<RelativeUrl, TParamTypeMap>} config The page configuration. * @returns {InternalPageDefinition<RelativeUrl, TParamTypeMap>} A new internal page definition. */ static createInternalDefinition<RelativeUrl extends string, TParamTypeMap extends QueryParamTypeMap = never>(config: IPageConfig<RelativeUrl, TParamTypeMap>): InternalPageDefinition<RelativeUrl, TParamTypeMap>; /** * Creates a public interface for a page definition from its internal representation. * @template RelativeUrl The relative URL path type. * @template TParamTypeMap The query parameter type mapping. * @param {InternalPageDefinition<RelativeUrl, TParamTypeMap>} internalPageDef The internal page definition to wrap. * @returns {PublicPageDefinition<RelativeUrl, TParamTypeMap>} A public interface for interacting with the page definition. */ static createPublicDefinition<RelativeUrl extends string, TParamTypeMap extends QueryParamTypeMap = never>(internalPageDef: InternalPageDefinition<RelativeUrl, TParamTypeMap>): PublicPageDefinition<RelativeUrl, TParamTypeMap>; }