28 lines
993 B
TypeScript
28 lines
993 B
TypeScript
import { PikkuFetch } from '@heygermany/sdk/pikku/pikku-fetch.gen.js'
|
|
|
|
// serverUrl resolution mirrors the green apps (germantax/perauset): the E2E
|
|
// runtime override, then the build-time var, then a bare '/api' — the fabric
|
|
// dispatcher routes every /api/* path to the API on the same host, so '/api' is
|
|
// always correct on deploy without knowing the domain at build time. Never a
|
|
// hardcoded localhost origin.
|
|
const serverUrl = (): string => {
|
|
if (typeof window !== 'undefined' && (window as Window & { __E2E_API_URL?: string }).__E2E_API_URL) {
|
|
return (window as Window & { __E2E_API_URL?: string }).__E2E_API_URL as string
|
|
}
|
|
return import.meta.env.VITE_API_URL ?? import.meta.env.VITE_API_BASE_URL ?? '/api'
|
|
}
|
|
|
|
let client: PikkuFetch | null = null
|
|
|
|
const pikku = (): PikkuFetch => {
|
|
if (!client) {
|
|
client = new PikkuFetch({
|
|
serverUrl: serverUrl(),
|
|
credentials: 'include',
|
|
})
|
|
}
|
|
return client
|
|
}
|
|
|
|
export { pikku }
|