Core package for the Nx Plugin OpenAPI ecosystem. This package provides the plugin infrastructure, executor, and generators for code generation from OpenAPI specifications.
npm install --save-dev @nx-plugin-openapi/coreYou'll also need to install a generator plugin:
# For OpenAPI Generator
npm install --save-dev @nx-plugin-openapi/plugin-openapi @openapitools/openapi-generator-cli
# For hey-api
npm install --save-dev @nx-plugin-openapi/plugin-hey-api @hey-api/openapi-ts- Plugin Architecture: Extensible system supporting multiple code generators
- Auto-Installation: Plugins are automatically installed when needed
- Multiple Specs: Generate code from multiple OpenAPI specifications in a single target
- Nx Integration: Full support for caching, affected commands, and dependency graph
Generate API client code using a selected generator plugin.
{
"targets": {
"generate-api": {
"executor": "@nx-plugin-openapi/core:generate-api",
"options": {
"generator": "openapi-tools",
"inputSpec": "apps/my-app/swagger.json",
"outputPath": "libs/api-client/src"
}
}
}
}| Option | Type | Default | Description |
|---|---|---|---|
generator |
string | "openapi-tools" |
Generator plugin to use ("openapi-tools" or "hey-api") |
inputSpec |
string | object | required | Path to OpenAPI spec(s) |
outputPath |
string | required | Output directory |
generatorOptions |
object | {} |
Plugin-specific options |
Add a generate-api target to an existing project.
nx generate @nx-plugin-openapi/core:add-generate-api-target --project=my-appInitialize core plugin defaults in the workspace.
nx generate @nx-plugin-openapi/core:init| Plugin | Package | Generator Name |
|---|---|---|
| OpenAPI Generator | @nx-plugin-openapi/plugin-openapi |
openapi-tools |
| hey-api | @nx-plugin-openapi/plugin-hey-api |
hey-api |
The core package exports interfaces for building custom generator plugins:
import { GeneratorPlugin, GenerateOptionsBase, GeneratorContext } from '@nx-plugin-openapi/core';
export class MyGenerator implements GeneratorPlugin {
readonly name = 'my-generator';
async generate(options: GenerateOptionsBase, ctx: GeneratorContext): Promise<void> {
// Implementation
}
}For comprehensive documentation, visit our documentation site.
MIT