@inkheart/queryframe
v0.1.7
Published
Typesafe SDK generator for REST APIs
Downloads
26
Maintainers
Readme
Documentation
This library implements a highly opinionated way of fetching and managing API data.
Queryframe is a typesafe API SDK generator for REST endpoints and exposes hooks from the amazing @tanstack/react-query.
Tech
Queryframe uses a number of open source projects under the hood:
- ReactQuery - v5!
- Zod - for schemas
- Zocker - 2kb library to generate mock data
- Redaxios - minimal fetch wrapper with axios interface
Installation
Install the dependencies and follow the guide below.
pnpm add @inkheart/queryframe
Example Usage
import { createQueryframeBuilder, z } from '@inkheart/queryframe'
const builder = createQueryframeBuilder({
baseURL: 'https://api.sampleapis.com',
})
const getAvatars = builder.createQuery({
endpoint: '/avatar/info',
output: z
.object({
synopsis: z.string(),
})
.array(),
})
const { queryframe } = builder.createQueryframe({
getAvatars,
})
export default queryframe
export const queryClient = builder.queryClient
export { QueryClientProvider } from '@inkheart/queryframe'
useQuery interface
import queryframe from '...'
const { data } = await queryframe.getExpenseCategories.useQuery(
{},
{
refetchInterval: data => 1000,
},
)
Handle interface
import queryframe from '...'
try {
const result = await queryframe.getExpenseCategories.handle({})
} catch (error) {
console.error(error)
}