swagger-transform
A tool to generate API clients from Swagger/OpenAPI specs.
Tips
- Only support the
json
and yaml
format of the Swagger/OpenAPI spec. - Partial content conversion may not be supported in some cases.
Installation
npm install swagger-transform
Usage
import { swaggerToType, swaggerToClass } from 'swagger-transform'
swaggerToType({
entry: 'path/to/swagger.json',
entry: 'path/to/openapi.yaml',
entry: 'https://example.com/swagger.json'
entry: ['path/to/swagger1.json', 'path/to/swagger2.json'],
})
swaggerToClass({
entry: 'path/to/swagger.json',
})
Options
entry
- Type:
string
| Array<string>
- Required:
true
The path to the Swagger/OpenAPI spec file or the URL to the Swagger/OpenAPI spec.
outDir
- Type:
string
- Default:
'types'
The output directory of the generated type files.
index
- Type:
boolean
- Default:
false
Whether to generate an index file that exports all type files.
description
Add a description at the top of each generated file.
typeMap
- Type:
object
- Default:
{ integer: 'number' }
The mapping of the Swagger/OpenAPI types to TypeScript types.
api
The configuration of the generated api file and type. If undefined
, the api file will not be generated. The configuration is as follows:
-
api.fileName
- Type:
string
- Default:
'apis'
The file name of the generated api file
-
api.exportName
- Type:
string
- Default:
'Apis'
The export name of the generated api file
-
api.outDir
- Type:
string
- Default: config.outDir
The output directory of the generated api file
-
api.typeFileName
- Type:
string
- Default:
'allApis'
The file name of the generated api type file
-
api.typeName
- Type:
string
- Default:
'AllApis'
The export name of the generated api type file
-
api.definitionType
- Type:
'type' | 'class'
- Default:
'type'
The type name of the generated api definition, When using the swaggerToClass
function, you can configure
-
api.function
- Type:
boolean
- Default:
false
Whether to generate the api function file, You need to improve the encapsulation of the request function yourself
-
api.functionFileName
- Type:
string
- Default:
'repository'
The file name of the generated api function file
-
api.functionImport
- Type:
string
- Default:
import request from \'./request\'
The import statement of the generated api function file
-
api.reFunctionTemplate
-Type: function
A function that replace the api function
reParametersName
A function that receives the parameter name and returns the new parameter name.
reDefinitionName
A function that receives the definition name and returns the new definition name.
reDefinitionFileName
A function that receives the definition name and returns the new definition file name.
reClassName
A function that receives the class name and returns the new class name.
beforeParse
A function that replace the content of the swagger file before parsing.