Skip to content

tevariou/rtk-query-codegen

 
 

Repository files navigation

Code Generator

Discord server

Introduction

This is a utility library meant to be used with RTK Query that will generate a typed API client from an OpenAPI schema.

Usage

By default, running the CLI will only log the output to the terminal. You can either pipe this output to a new file, or you can specify an output file via CLI args.

Piping to a file (including react hooks generation)

npx @rtk-incubator/rtk-query-codegen-openapi --hooks https://petstore3.swagger.io/api/v3/openapi.json > petstore-api.generated.ts

Specifying an output file (including react hooks generation)

npx @rtk-incubator/rtk-query-codegen-openapi --file petstore-api.generated.ts --hooks https://petstore3.swagger.io/api/v3/openapi.json

Using a custom baseQuery

npx @rtk-incubator/rtk-query-codegen-openapi --file generated.api.ts --baseQuery ./customBaseQuery.ts:namedBaseQueryFn --hooks https://petstore3.swagger.io/api/v3/openapi.json

CLI Options

  • --exportName <name> - change the name of the exported api (default: api)
  • --reducerPath <path> - change the name of the reducerPath (default: api)
  • --baseQuery <file> - specify a file with a custom baseQuery function. Optionally takes a named function in that file. (default: fetchBaseQuery - ex: ./customBaseQuery.ts:myCustomBaseQueryFn)
  • --argSuffix <name> - change the suffix of the arg type (default: ApiArg - ex: AddPetApiArg)
  • --responseSuffix <name> - change the suffix of the response type (default: ApiResponse - ex: AddPetApiResponse)
  • --baseUrl <url> - set the baseUrl when using fetchBaseQuery (will be ignored if you pass --baseQuery)
  • --hooks - include React Hooks in the output (ex: export const { useGetModelQuery, useUpdateModelMutation } = api)
  • --file <filename> - specify a filename to output to (ex: ./generated.api.ts)

Documentation

View the RTK Query Code Generation docs

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 93.8%
  • JavaScript 6.2%