Spaces:
Build error
Build error
| import { getClientConfig } from "../config/client"; | |
| import { ApiPath, DEFAULT_CORS_HOST } from "../constant"; | |
| export function corsPath(path: string) { | |
| const baseUrl = getClientConfig()?.isApp ? `${DEFAULT_CORS_HOST}` : ""; | |
| if (!path.startsWith("/")) { | |
| path = "/" + path; | |
| } | |
| if (!path.endsWith("/")) { | |
| path += "/"; | |
| } | |
| return `${baseUrl}${path}`; | |
| } | |
| export function corsFetch( | |
| url: string, | |
| options: RequestInit & { | |
| proxyUrl?: string; | |
| }, | |
| ) { | |
| if (!url.startsWith("http")) { | |
| throw Error("[CORS Fetch] url must starts with http/https"); | |
| } | |
| let proxyUrl = options.proxyUrl ?? corsPath(ApiPath.Cors); | |
| if (!proxyUrl.endsWith("/")) { | |
| proxyUrl += "/"; | |
| } | |
| url = url.replace("://", "/"); | |
| const corsOptions = { | |
| ...options, | |
| method: "POST", | |
| headers: options.method | |
| ? { | |
| ...options.headers, | |
| method: options.method, | |
| } | |
| : options.headers, | |
| }; | |
| const corsUrl = proxyUrl + url; | |
| console.info("[CORS] target = ", corsUrl); | |
| return fetch(corsUrl, corsOptions); | |
| } | |