@wroud/navigation
Version:
A flexible, pattern-matching navigation system for JavaScript applications with built-in routing, browser integration, and navigation state management
55 lines • 1.78 kB
TypeScript
/**
* Path utilities for URL pattern matching
*/
/**
* Splits a string (URL or pattern) into its path part and query part.
*/
export declare function splitPathAndQuery(value: string): {
path: string;
query: string;
};
/**
* Parsed query parameter definition from a pattern.
*/
export interface QueryParamDef {
/** The URL query key (e.g. "tab") */
key: string;
/** The parameter name (e.g. "tab") */
paramName: string;
/** The declared type (e.g. "number") */
paramType: string;
/** Whether this query parameter is required (marked with !) */
required: boolean;
}
/**
* Parse query parameter definitions from a pattern's query string.
* Format: "key=:param<type>&key2=:param2"
*/
export declare function parseQueryPatternDefs(queryPattern: string): QueryParamDef[];
/**
* Parse a URL query string into a key-value map.
* Handles repeated keys by keeping the last value.
*/
export declare function parseQueryString(query: string): Record<string, string>;
/**
* Splits a URL or pattern string into segments
*/
export declare function splitPath(path: string): string[];
/**
* Checks if a segment is a parameter (starts with ":")
*/
export declare function isParameterSegment(segment: string): boolean;
/**
* Checks if a segment is a wildcard parameter (starts with ":" and ends with "*")
*/
export declare function isWildcardSegment(segment: string): boolean;
/**
* Extracts parameter name from a parameter segment
*/
export declare function extractParamName(segment: string): string;
export declare function extractParamType(segment: string): string;
/**
* Joins segments into a URL path with caching for common paths
*/
export declare function joinPath(segments: string[]): string;
//# sourceMappingURL=path-utils.d.ts.map