fix(js-sdk): Preserve path in baseUrl (#10222)
**What** - Currently the `js-sdk` will discard the path in the `baseUrl` and only use the `origin`. As an example passing a `baseUrl` of `"http://localhost:9000/custom/path"`, will result in only `"http://localhost:9000"` being used. - This PR preserves the path, so using `sdk.admin.products()` will make a request to `"http://localhost:9000/custom/path/admin/products`. For an explanation of when this might be useful see this issue: https://github.com/medusajs/medusa/issues/10190#issuecomment-2492974845 Resolves CMRC-740
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import qs from "qs"
|
||||
import { events } from "fetch-event-stream"
|
||||
import qs from "qs"
|
||||
import {
|
||||
ClientFetch,
|
||||
Config,
|
||||
@@ -224,7 +224,9 @@ export class Client {
|
||||
|
||||
let normalizedInput: RequestInfo | URL = input
|
||||
if (input instanceof URL || typeof input === "string") {
|
||||
normalizedInput = new URL(input, this.config.baseUrl)
|
||||
const baseUrl = new URL(this.config.baseUrl)
|
||||
const fullPath = `${baseUrl.pathname.replace(/\/$/, '')}/${input.toString().replace(/^\//, '')}`
|
||||
normalizedInput = new URL(fullPath, baseUrl.origin)
|
||||
if (init?.query) {
|
||||
const params = Object.fromEntries(
|
||||
normalizedInput.searchParams.entries()
|
||||
|
||||
Reference in New Issue
Block a user