UNPKG

2.67 kBTypeScriptView Raw
1import { IOptions } from 'search-params';
2import { URLParamsEncodingType } from './encoding';
3import { Token } from './tokeniser';
4export { URLParamsEncodingType };
5export interface PathOptions {
6 /**
7 * Query parameters buiding and matching options, see
8 * https://github.com/troch/search-params#options
9 */
10 queryParams?: IOptions;
11 /**
12 * Specifies the method used to encode URL parameters:
13 * - `'default': `encodeURIComponent` and `decodeURIComponent`
14 * are used but some characters to encode and decode URL parameters,
15 * but some characters are preserved when encoding
16 * (sub-delimiters: `+`, `:`, `'`, `!`, `,`, `;`, `'*'`).
17 * - `'uriComponent'`: use `encodeURIComponent` and `decodeURIComponent`
18 * for encoding and decoding URL parameters.
19 * - `'uri'`: use `encodeURI` and `decodeURI for encoding amd decoding
20 * URL parameters.
21 * - `'none'`: no encoding or decoding is performed
22 * - `'legacy'`: the approach for version 5.x and below (not recoomended)
23 */
24 urlParamsEncoding?: URLParamsEncodingType;
25}
26export interface InternalPathOptions {
27 queryParams?: IOptions;
28 urlParamsEncoding: URLParamsEncodingType;
29}
30export interface PathPartialTestOptions extends PathOptions {
31 caseSensitive?: boolean;
32 delimited?: boolean;
33}
34export interface PathTestOptions extends PathOptions {
35 caseSensitive?: boolean;
36 strictTrailingSlash?: boolean;
37}
38export interface PathBuildOptions extends PathOptions {
39 ignoreConstraints?: boolean;
40 ignoreSearch?: boolean;
41}
42export declare type TestMatch<T extends Record<string, any> = Record<string, any>> = T | null;
43export declare class Path<T extends Record<string, any> = Record<string, any>> {
44 static createPath<T extends Record<string, any> = Record<string, any>>(path: string, options?: PathOptions): Path<T>;
45 path: string;
46 tokens: Token[];
47 hasUrlParams: boolean;
48 hasSpatParam: boolean;
49 hasMatrixParams: boolean;
50 hasQueryParams: boolean;
51 options: InternalPathOptions;
52 spatParams: string[];
53 urlParams: string[];
54 queryParams: string[];
55 params: string[];
56 source: string;
57 constructor(path: string, options?: PathOptions);
58 isQueryParam(name: string): boolean;
59 isSpatParam(name: string): boolean;
60 test(path: string, opts?: PathTestOptions): TestMatch<T>;
61 partialTest(path: string, opts?: PathPartialTestOptions): TestMatch<T>;
62 build(params?: T, opts?: PathBuildOptions): string;
63 private getParams;
64 private urlTest;
65}
66export default Path;