1.3.4 • Published 8 months ago

heyapi-client-generator v1.3.4

Weekly downloads
-
License
ISC
Repository
-
Last release
8 months ago

HeyAPI Client Generator

A utility to generate TypeScript clients for APIs using HeyAPI, enhanced with prefix configuration and React Query integration.


Features

  • 🚀 Manage multiple services effortlessly.
  • 🌟 Save time with automated prefix handling.
  • 🔧 Enjoy a more streamlined API development experience.

Dependencies

pnpm add -D @hey-api/openapi-ts

Installation

pnpm add -D heyapi-client-generator

Usage

To use this package, follow these steps:

  1. Create a generate-clients.ts File In your project's root directory, create a generate-clients.ts file and add the following code:
import { generateClients, ServiceConfig } from "heyapi-client-generator";

const services: ServiceConfig[] = [
    {
        client: "@hey-api/client-axios/example",
        prefix: "/api/v1/pre-example",
        input: "./openapi.json",
        output: "src/client/pre-example",
        plugins: ["example-plugin"],
    },
    {
        client: "@hey-api/client-axios/example2",
        prefix: "/api/v1/pre-example2",
        input: "./openapi.json",
        output: "src/client/pre-example2",
        plugins: ["example-plugin"],
    },
];

generateClients(services)
    .then(() => console.log("Clients successfully generated!"))
    .catch((err: any) => console.error("Error generating clients:", err));
  1. Add a Script to Your package.json Update your package.json file to include the following script:

Make sure tsx is installed in your project:

pnpm add tsx typescript -D
"scripts": {
  "generate-client": "tsx generate-clients.ts"
}
  1. Run the Script Generate the clients by running the following command in your terminal:
pnpm run generate-client

How It Works

Client Generation: The generate-clients script reads the ServiceConfig array, processes each service configuration, and generates TypeScript clients using the HeyAPI OpenAPI client generator.

Custom Prefix Handling: After generating the client, the script modifies the client file to prepend the specified prefix to all API endpoint URLs.

React Query Integration: The generated clients include React Query hooks for managing API state seamlessly in your application.

ServiceConfig Interface

interface ServiceConfig {
  client: string;
  prefix: string;
  input: string;
  output: string;
  plugins?: string[];
}
PropertyTypeDescription
prefixstringThe prefix to prepend to the API URLs
inputstringPath to the OpenAPI specification file
outputstringDirectory where the generated client files will reside
pluginsstring[]Plugins to use for the client generation
clientstringThe client to use for the generation

GitHub Repository For more details, check out the GitHub repository: heyapi-client-generator

Contributing We welcome contributions! Follow these steps to contribute:

  • Fork the repository.
  • Clone it to your machine:
git clone https://github.com/aknslc/heyapi-client-generator.git

Create a new branch for your changes.

  • Make your changes and test them.
  • Submit a pull request.
1.3.4

8 months ago

1.3.3

8 months ago

1.3.2

8 months ago

1.3.1

8 months ago

1.3.0

8 months ago

1.2.9

8 months ago

1.2.8

8 months ago

1.2.7

8 months ago

1.2.6

8 months ago

1.2.5

8 months ago

1.2.4

8 months ago

1.2.3

8 months ago

1.2.2

8 months ago

1.2.1

8 months ago

1.2.0

8 months ago

1.1.0

8 months ago

1.0.1

8 months ago

1.0.0

8 months ago