url.d.ts 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. /**
  2. * A class that handles the query portion of a URLBuilder.
  3. */
  4. export declare class URLQuery {
  5. private readonly _rawQuery;
  6. /**
  7. * Get whether or not there any query parameters in this URLQuery.
  8. */
  9. any(): boolean;
  10. /**
  11. * Set a query parameter with the provided name and value. If the parameterValue is undefined or
  12. * empty, then this will attempt to remove an existing query parameter with the provided
  13. * parameterName.
  14. */
  15. set(parameterName: string, parameterValue: any): void;
  16. /**
  17. * Get the value of the query parameter with the provided name. If no parameter exists with the
  18. * provided parameter name, then undefined will be returned.
  19. */
  20. get(parameterName: string): string | string[] | undefined;
  21. /**
  22. * Get the string representation of this query. The return value will not start with a "?".
  23. */
  24. toString(): string;
  25. /**
  26. * Parse a URLQuery from the provided text.
  27. */
  28. static parse(text: string): URLQuery;
  29. }
  30. /**
  31. * A class that handles creating, modifying, and parsing URLs.
  32. */
  33. export declare class URLBuilder {
  34. private _scheme;
  35. private _host;
  36. private _port;
  37. private _path;
  38. private _query;
  39. /**
  40. * Set the scheme/protocol for this URL. If the provided scheme contains other parts of a URL
  41. * (such as a host, port, path, or query), those parts will be added to this URL as well.
  42. */
  43. setScheme(scheme: string | undefined): void;
  44. /**
  45. * Get the scheme that has been set in this URL.
  46. */
  47. getScheme(): string | undefined;
  48. /**
  49. * Set the host for this URL. If the provided host contains other parts of a URL (such as a
  50. * port, path, or query), those parts will be added to this URL as well.
  51. */
  52. setHost(host: string | undefined): void;
  53. /**
  54. * Get the host that has been set in this URL.
  55. */
  56. getHost(): string | undefined;
  57. /**
  58. * Set the port for this URL. If the provided port contains other parts of a URL (such as a
  59. * path or query), those parts will be added to this URL as well.
  60. */
  61. setPort(port: number | string | undefined): void;
  62. /**
  63. * Get the port that has been set in this URL.
  64. */
  65. getPort(): string | undefined;
  66. /**
  67. * Set the path for this URL. If the provided path contains a query, then it will be added to
  68. * this URL as well.
  69. */
  70. setPath(path: string | undefined): void;
  71. /**
  72. * Append the provided path to this URL's existing path. If the provided path contains a query,
  73. * then it will be added to this URL as well.
  74. */
  75. appendPath(path: string | undefined): void;
  76. /**
  77. * Get the path that has been set in this URL.
  78. */
  79. getPath(): string | undefined;
  80. /**
  81. * Set the query in this URL.
  82. */
  83. setQuery(query: string | undefined): void;
  84. /**
  85. * Set a query parameter with the provided name and value in this URL's query. If the provided
  86. * query parameter value is undefined or empty, then the query parameter will be removed if it
  87. * existed.
  88. */
  89. setQueryParameter(queryParameterName: string, queryParameterValue: any): void;
  90. /**
  91. * Get the value of the query parameter with the provided query parameter name. If no query
  92. * parameter exists with the provided name, then undefined will be returned.
  93. */
  94. getQueryParameterValue(queryParameterName: string): string | string[] | undefined;
  95. /**
  96. * Get the query in this URL.
  97. */
  98. getQuery(): string | undefined;
  99. /**
  100. * Set the parts of this URL by parsing the provided text using the provided startState.
  101. */
  102. private set;
  103. toString(): string;
  104. /**
  105. * If the provided searchValue is found in this URLBuilder, then replace it with the provided
  106. * replaceValue.
  107. */
  108. replaceAll(searchValue: string, replaceValue: string): void;
  109. static parse(text: string): URLBuilder;
  110. }
  111. declare type URLTokenizerState = "SCHEME" | "SCHEME_OR_HOST" | "HOST" | "PORT" | "PATH" | "QUERY" | "DONE";
  112. declare type URLTokenType = "SCHEME" | "HOST" | "PORT" | "PATH" | "QUERY";
  113. export declare class URLToken {
  114. readonly text: string;
  115. readonly type: URLTokenType;
  116. constructor(text: string, type: URLTokenType);
  117. static scheme(text: string): URLToken;
  118. static host(text: string): URLToken;
  119. static port(text: string): URLToken;
  120. static path(text: string): URLToken;
  121. static query(text: string): URLToken;
  122. }
  123. /**
  124. * Get whether or not the provided character (single character string) is an alphanumeric (letter or
  125. * digit) character.
  126. */
  127. export declare function isAlphaNumericCharacter(character: string): boolean;
  128. /**
  129. * A class that tokenizes URL strings.
  130. */
  131. export declare class URLTokenizer {
  132. readonly _text: string;
  133. readonly _textLength: number;
  134. _currentState: URLTokenizerState;
  135. _currentIndex: number;
  136. _currentToken: URLToken | undefined;
  137. constructor(_text: string, state?: URLTokenizerState);
  138. /**
  139. * Get the current URLToken this URLTokenizer is pointing at, or undefined if the URLTokenizer
  140. * hasn't started or has finished tokenizing.
  141. */
  142. current(): URLToken | undefined;
  143. /**
  144. * Advance to the next URLToken and return whether or not a URLToken was found.
  145. */
  146. next(): boolean;
  147. }
  148. export {};
  149. //# sourceMappingURL=url.d.ts.map