Skip to content

akparhi/queryframe

Repository files navigation

NPM Contributors Forks Stargazers Issues MIT License

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:

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)
}

About

Typesafe SDK generator for REST APIs

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published