Add a openapi-codegen.config.ts at the root of your project or run npx @openapi-codegen/cli init
// openapi-codegen.config.ts
import { defineConfig } from "@openapi-codegen/cli" ;
import {
generateSchemaTypes ,
generateReactQueryComponents ,
} from "@openapi-codegen/typescript" ;
export default defineConfig ( {
example : {
from : {
source : "github" ,
owner : "fabien0102" ,
repository : "openapi-codegen" ,
ref : "main" ,
specPath : "examples/spec.yaml" ,
} ,
// can be overridden from cli
outputDir : "src/queries" ,
to : async ( context ) => {
const filenamePrefix = "example" ;
// Generate all the schemas types (components & responses)
const { schemasFiles } = await generateSchemaTypes ( context , {
filenamePrefix,
} ) ;
// Generate all react-query components
await generateReactQueryComponents ( context , {
filenamePrefix,
schemasFiles,
} ) ;
} ,
} ,
} ) ;
Expose openapi-codegen in your package.json
--- a/package.json
+++ b/package.json
"scripts": {
+ "gen": "openapi-codegen",
}
Run the generator (example is the config key defined in the step 1)
Start playing! 🥳
How to test the cli locally
Build the CLI (watch mode)
Start working working (new terminal)
./lib/cli.js init --dry-run