Files
nuxt4/api/wrappers/example.ts
T
2026-05-03 07:26:12 +00:00

31 lines
828 B
TypeScript

import type {
ApiRequestOptions,
ExampleApi,
ExampleHealthResponse,
ExampleWelcomeResponse
} from '~/types/api'
interface CreateExampleApiOptions {
baseURL: string
timeoutMs: number
}
export function createExampleApi(options: CreateExampleApiOptions): ExampleApi {
const request = async <T>(path: string, requestOptions?: ApiRequestOptions) => {
return await $fetch<T>(path, {
baseURL: options.baseURL,
signal: requestOptions?.signal,
timeout: options.timeoutMs
})
}
return {
getHealth(options?: ApiRequestOptions): Promise<ExampleHealthResponse> {
return request<ExampleHealthResponse>('/health', options)
},
getWelcome(options?: ApiRequestOptions): Promise<ExampleWelcomeResponse> {
return request<ExampleWelcomeResponse>('/welcome', options)
}
}
}