chore: heygermany customer project
Some checks failed
Main / Setup and Test (push) Has been cancelled
Main / Build Website (push) Has been cancelled

This commit is contained in:
e2e
2026-07-11 09:21:21 +02:00
commit 59b4a7a404
398 changed files with 38340 additions and 0 deletions

View File

@@ -0,0 +1,39 @@
import { PikkuFetch } from '@heygermany/sdk/pikku/pikku-fetch.gen.js'
const viteEnv = (import.meta as ImportMeta & {
env?: Record<string, string | undefined>
}).env
const getBrowserApiBaseUrl = () => {
if (typeof window === 'undefined') {
return ''
}
const { hostname, origin } = window.location
if (hostname === 'localhost' || hostname === '127.0.0.1') {
return 'http://localhost:3000'
}
return origin
}
const getApiBaseUrl = () =>
viteEnv?.VITE_API_BASE_URL ||
process.env.VITE_API_BASE_URL ||
process.env.API_URL ||
getBrowserApiBaseUrl()
let client: PikkuFetch | null = null
const pikku = (): PikkuFetch => {
if (!client) {
client = new PikkuFetch({
serverUrl: getApiBaseUrl(),
credentials: 'include',
})
}
return client
}
export { pikku }

24
apps/website/pikku/rpc.ts Normal file
View File

@@ -0,0 +1,24 @@
export async function invokeRPC<TOutput = unknown>(
rpcName: string,
data?: Record<string, unknown>
): Promise<TOutput> {
const response = await fetch(`/remote/rpc/${encodeURIComponent(rpcName)}`, {
method: 'POST',
credentials: 'include',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({ data }),
})
if (!response.ok) {
throw new Error((await response.text()) || `RPC ${rpcName} failed`)
}
if (response.status === 204) {
return undefined as TOutput
}
const text = await response.text()
return text ? JSON.parse(text) as TOutput : undefined as TOutput
}