Initial commit
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
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)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user