# G1 API Generator A command-line tool for generating TypeScript API clients from OpenAPI schemas. ## Features - Downloads OpenAPI schema from a specified URL - Generates TypeScript interfaces and API client code - Post-processes generated code to fix common issues - Supports HTTPS with option to skip TLS verification - Detects and warns about duplicate DTOs in the schema ## Installation ```bash # Install from G1 package registry npm install @g1/api-generator --save-dev # Or with pnpm pnpm add @g1/api-generator -D ``` ## Usage ### Command Line ```bash # Basic usage g1-api-generator https://your-api-server/openapi/schema.json ./src/lib/api # Skip TLS verification (useful for local development with self-signed certificates) g1-api-generator https://localhost:7205/openapi/schema.json ./src/lib/api --skip-tls-verify ``` ### In package.json scripts ```json { "scripts": { "api:generate": "g1-api-generator https://localhost:7205/openapi/schema.json src/lib/api" } } ``` ### Programmatic Usage ```typescript import { generateApiClient } from '@g1/api-generator'; async function generateApi() { await generateApiClient({ schemaUrl: 'https://your-api-server/openapi/schema.json', outputDir: './src/lib/api', skipTlsVerify: true, // Optional, default: false runPostProcessing: true // Optional, default: true }); } generateApi().catch(console.error); ``` ## Generated Code Structure The generated code is organized as follows: - `models/` - TypeScript interfaces for API models - `services/` - API client services for making requests - `core/` - Core functionality for the API client - `open-api.json` - The downloaded and processed OpenAPI schema ## Post-Processing The tool automatically applies the following post-processing to the generated code: 1. Removes import statements for `void` type 2. Replaces usages of `void` as a type with `any` 3. Detects and replaces self-referencing DTOs with `any` 4. Adds auto-generated comments to files ## License UNLICENSED - Private package for Generation One use only.