(
path: string,
query: Record<string, unknown> | null | undefined,
defaultBaseURL?: string | undefined,
)
| 664 | } |
| 665 | |
| 666 | buildURL( |
| 667 | path: string, |
| 668 | query: Record<string, unknown> | null | undefined, |
| 669 | defaultBaseURL?: string | undefined, |
| 670 | ): string { |
| 671 | const baseURL = (!this.#baseURLOverridden() && defaultBaseURL) || this.baseURL; |
| 672 | const url = |
| 673 | isAbsoluteURL(path) ? |
| 674 | new URL(path) |
| 675 | : new URL(baseURL + (baseURL.endsWith('/') && path.startsWith('/') ? path.slice(1) : path)); |
| 676 | |
| 677 | const defaultQuery = this.defaultQuery(); |
| 678 | const pathQuery = Object.fromEntries(url.searchParams); |
| 679 | if (!isEmptyObj(defaultQuery) || !isEmptyObj(pathQuery)) { |
| 680 | query = { ...pathQuery, ...defaultQuery, ...query }; |
| 681 | } |
| 682 | |
| 683 | if (typeof query === 'object' && query && !Array.isArray(query)) { |
| 684 | url.search = this.stringifyQuery(query); |
| 685 | } |
| 686 | |
| 687 | return url.toString(); |
| 688 | } |
| 689 | |
| 690 | /** |
| 691 | * Used as a callback for mutating the given `FinalRequestOptions` object. |
no test coverage detected