@rtk-incubator/rtk-query-codegen-openapi

<p align="center"> <img src="https://raw.githubusercontent.com/rtk-incubator/rtk-query/main/logo.png" width="400" /> </p> <h2 align="center"> Code Generator </h2>

Usage no npm install needed!

<script type="module">
  import rtkIncubatorRtkQueryCodegenOpenapi from 'https://cdn.skypack.dev/@rtk-incubator/rtk-query-codegen-openapi';
</script>

README

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)
  • --createApiImportPath <path> - set the entry point to import createApi from. Currently only react is available. Defaults to react if --hooks is passed.
  • --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