Skip to content

Commit dce3399

Browse files
committed
refactor: array handling
1 parent 0c7b464 commit dce3399

File tree

1 file changed

+16
-12
lines changed

1 file changed

+16
-12
lines changed

src/lib/medusa-fetch/index.ts

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
const MEDUSA_API_KEY = process.env.NEXT_PUBLIC_MEDUSA_API_KEY || ""
2-
const REVALIDATE_WINDOW = process.env.REVALIDATE_WINDOW || "60*1000*10" // 10 minutes
2+
const REVALIDATE_WINDOW = process.env.REVALIDATE_WINDOW || "1000 * 60 * 60" // 10 minutes
33
const ENDPOINT =
44
process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL || "http://localhost:9000"
55

@@ -22,8 +22,8 @@ export default async function medusaRequest(
2222
options.body = JSON.stringify(payload.body)
2323
}
2424
if ("query" in payload) {
25-
const queries = parseArrays(payload.query)
26-
path = `${path}?${new URLSearchParams(queries).toString()}`
25+
const params = objectToURLSearchParams(payload.query).toString()
26+
path = `${path}?${params}`
2727
}
2828
}
2929

@@ -46,14 +46,18 @@ export default async function medusaRequest(
4646
}
4747
}
4848

49-
const parseArrays = (obj: Record<string, any>) => {
50-
const result = {} as Record<string, any>
51-
Object.entries(obj).forEach(([key, value]) => {
52-
if (Array.isArray(value)) {
53-
result[`${key}[]`] = value.join(",")
54-
return
49+
function objectToURLSearchParams(obj: Record<string, any>): URLSearchParams {
50+
const params = new URLSearchParams()
51+
52+
for (const key in obj) {
53+
if (Array.isArray(obj[key])) {
54+
obj[key].forEach((value: any) => {
55+
params.append(`${key}[]`, value)
56+
})
57+
} else {
58+
params.append(key, obj[key])
5559
}
56-
result[key] = value
57-
})
58-
return result
60+
}
61+
62+
return params
5963
}

0 commit comments

Comments
 (0)