openapiv3-sync
v1.0.5
Published
A developer-friendly tool designed to keep your API up-to-date by leveraging OpenAPI schemas. It automates the generation of endpoint URIs and type definitions, including shared types, directly from your OpenAPI specification.
Maintainers
Readme
Openapi-sync
Openapi-sync is a powerful developer tool that automates the synchronization of your API documentation with your codebase using OpenAPI (formerly Swagger) specifications. It generates TypeScript types and endpoint definitions from your OpenAPI schema, ensuring your API documentation stays up-to-date with your code.
Features
- 🔄 Real-time API Synchronization
- 📝 Automatic Type Generation
- 🔄 Periodic API Refetching
- 📁 Configurable Output Directory
- 🔄 Customizable Naming Conventions
- 🔄 Endpoint URL Transformation
- 🔄 Schema Validation
- 🔄 CLI Integration
- 🔄 TypeScript Support
- 🔄 YAML and JSON Support
Installation
Install the package using npm:
npm install openapi-syncOr use it directly via npx:
npx openapi-syncConfiguration
Create a openapi.sync.json file in your project root with the following structure:
{
"refetchInterval": 5000, // milliseconds between API refetches
"folder": "/path/to/output", // output directory for generated files
"api": {
"example1": "https://api.example.com/openapi.json",
"example2": "https://api.example.com/openapi.yaml"
},
"naming": {
"replaceWords": [
{
"replace": "Api",
"with": "",
"type": "endpoint"
}
]
},
"endpoints": {
"value": {
"replaceWords": [
{
"replace": "/api/v\\d/",
"with": ""
}
]
}
}
}Usage
CLI Commands
# Basic usage
npx openapi-sync
# With custom refetch interval
npx openapi-sync --refreshinterval 30000Programmatic Usage
import { Init } from "openapi-sync";
// Initialize with custom options
await Init({
refetchInterval: 30000, // optional, defaults to config value
});Output Generation
The tool generates:
- TypeScript interfaces for API endpoints
- Type definitions for request/response bodies
- Shared component types
- Endpoint URL constants
Type Generation
The tool supports:
- Primitive types (string, number, boolean, etc.)
- Complex types (objects, arrays)
- Enums
- Nullable types
- Any types
- Shared components
- Request/response bodies
Error Handling
The tool includes:
- Network error retries
- Schema validation
- Type generation error handling
- State persistence
API Documentation
For detailed API documentation, please refer to the OpenAPI specification.
License
This project is licensed under the ISC License - see the LICENSE file for details.
Support
For support, please open an issue in the GitHub repository.
Acknowledgments
- Thanks to the OpenAPI Initiative for the OpenAPI specification
- Thanks to all contributors and users of this package
- Flexible CLI Commands: Sync your API at any point in the development process on app start, pre-commit, or via manual triggers.
