index.d.ts 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. /**
  2. * Encode characters that need to be encoded on the path, search and hash
  3. * sections of the URL.
  4. *
  5. * @internal
  6. * @param text - string to encode
  7. * @returns encoded string
  8. */
  9. declare function encode(text: string | number): string;
  10. /**
  11. * Encode characters that need to be encoded on the hash section of the URL.
  12. *
  13. * @param text - string to encode
  14. * @returns encoded string
  15. */
  16. declare function encodeHash(text: string): string;
  17. /**
  18. * Encode characters that need to be encoded query values on the query
  19. * section of the URL.
  20. *
  21. * @param text - string to encode
  22. * @returns encoded string
  23. */
  24. declare function encodeQueryValue(text: string | number): string;
  25. /**
  26. * Like `encodeQueryValue` but also encodes the `=` character.
  27. *
  28. * @param text - string to encode
  29. */
  30. declare function encodeQueryKey(text: string | number): string;
  31. /**
  32. * Encode characters that need to be encoded on the path section of the URL.
  33. *
  34. * @param text - string to encode
  35. * @returns encoded string
  36. */
  37. declare function encodePath(text: string | number): string;
  38. /**
  39. * Encode characters that need to be encoded on the path section of the URL as a
  40. * param. This function encodes everything {@link encodePath} does plus the
  41. * slash (`/`) character.
  42. *
  43. * @param text - string to encode
  44. * @returns encoded string
  45. */
  46. declare function encodeParam(text: string | number): string;
  47. /**
  48. * Decode text using `decodeURIComponent`. Returns the original text if it
  49. * fails.
  50. *
  51. * @param text - string to decode
  52. * @returns decoded string
  53. */
  54. declare function decode(text?: string | number): string;
  55. /**
  56. * Decode path section of URL (consitant with encodePath for slash encoding).
  57. *
  58. * @param text - string to decode
  59. * @returns decoded string
  60. */
  61. declare function decodePath(text: string): string;
  62. /**
  63. * Decode query value (consitant with encodeQueryValue for plus encoding).
  64. *
  65. * @param text - string to decode
  66. * @returns decoded string
  67. */
  68. declare function decodeQueryValue(text: string): string;
  69. declare function encodeHost(name?: string): string;
  70. interface ParsedURL {
  71. protocol?: string;
  72. host?: string;
  73. auth?: string;
  74. pathname: string;
  75. hash: string;
  76. search: string;
  77. }
  78. interface ParsedAuth {
  79. username: string;
  80. password: string;
  81. }
  82. interface ParsedHost {
  83. hostname: string;
  84. port: string;
  85. }
  86. declare function parseURL(input?: string, defaultProto?: string): ParsedURL;
  87. declare function parsePath(input?: string): ParsedURL;
  88. declare function parseAuth(input?: string): ParsedAuth;
  89. declare function parseHost(input?: string): ParsedHost;
  90. declare function stringifyParsedURL(parsed: ParsedURL): string;
  91. declare type QueryValue = string | string[] | undefined;
  92. declare type QueryObject = Record<string, QueryValue>;
  93. declare function parseQuery(paramsStr?: string): QueryObject;
  94. declare function encodeQueryItem(key: string, val: QueryValue): string;
  95. declare function stringifyQuery(query: QueryObject): string;
  96. declare class $URL implements URL {
  97. protocol: string;
  98. host: string;
  99. auth: string;
  100. pathname: string;
  101. query: QueryObject;
  102. hash: string;
  103. constructor(input?: string);
  104. get hostname(): string;
  105. get port(): string;
  106. get username(): string;
  107. get password(): string;
  108. get hasProtocol(): number;
  109. get isAbsolute(): number | boolean;
  110. get search(): string;
  111. get searchParams(): URLSearchParams;
  112. get origin(): string;
  113. get fullpath(): string;
  114. get encodedAuth(): string;
  115. get href(): string;
  116. append(url: $URL): void;
  117. toJSON(): string;
  118. toString(): string;
  119. }
  120. declare function isRelative(inputStr: string): boolean;
  121. declare function hasProtocol(inputStr: string, acceptProtocolRelative?: boolean): boolean;
  122. declare function hasTrailingSlash(input?: string, queryParams?: boolean): boolean;
  123. declare function withoutTrailingSlash(input?: string, queryParams?: boolean): string;
  124. declare function withTrailingSlash(input?: string, queryParams?: boolean): string;
  125. declare function hasLeadingSlash(input?: string): boolean;
  126. declare function withoutLeadingSlash(input?: string): string;
  127. declare function withLeadingSlash(input?: string): string;
  128. declare function cleanDoubleSlashes(input?: string): string;
  129. declare function withBase(input: string, base: string): string;
  130. declare function withoutBase(input: string, base: string): string;
  131. declare function withQuery(input: string, query: QueryObject): string;
  132. declare function getQuery(input: string): QueryObject;
  133. declare function isEmptyURL(url: string): boolean;
  134. declare function isNonEmptyURL(url: string): boolean;
  135. declare function joinURL(base: string, ...input: string[]): string;
  136. declare function createURL(input: string): $URL;
  137. declare function normalizeURL(input: string): string;
  138. declare function resolveURL(base: string, ...input: string[]): string;
  139. declare function isSamePath(p1: string, p2: string): boolean;
  140. export { $URL, ParsedAuth, ParsedHost, ParsedURL, QueryObject, QueryValue, cleanDoubleSlashes, createURL, decode, decodePath, decodeQueryValue, encode, encodeHash, encodeHost, encodeParam, encodePath, encodeQueryItem, encodeQueryKey, encodeQueryValue, getQuery, hasLeadingSlash, hasProtocol, hasTrailingSlash, isEmptyURL, isNonEmptyURL, isRelative, isSamePath, joinURL, normalizeURL, parseAuth, parseHost, parsePath, parseQuery, parseURL, resolveURL, stringifyParsedURL, stringifyQuery, withBase, withLeadingSlash, withQuery, withTrailingSlash, withoutBase, withoutLeadingSlash, withoutTrailingSlash };