TSwagger
TS-Swagger plugin generator CLI
Installation
npm i -D tswagger
Basic Usage
in project directory
npx tswagger https://api.server.foo/swagger.json
in script code
import { setAxios, api } from './api'
import axios from 'axios'
setInstance(axios.create({ baseURL: 'http://localhost:8080', timeout: 100 })) // optional
const foo = await api().bar.get()
Path param mode
see form
option
/* default (1.1.0+) */
api().foo.bar(1).get(2)
api().foo.bar.get()
/* underscore */
api().foo._bar.get(1, 2)
api().foo.bar.get()
Options
options priority : command line > tswagger.config
> package.json
tswagger argument1 --option1 value1 --option2 value2
option | description | default | example |
---|---|---|---|
(first argument) | Swagger schema JSON path | (required) |
http://.. or ./foo/swagger.json
|
src |
same as first argument | first argument | same as above |
plugins-dir |
Directory | lib |
|
plugin-name |
Name for generated flile | api |
|
export-name |
Export name | {plugin-name} |
'' (export default) |
type-path |
Path for scheme type file | {plugins-dir}/{plugin-name}/{types.ts} |
./types/models.ts |
base-path |
base path | /v1 |
/v2 |
skip-header |
Ignore parameter in header | false |
true |
form |
Path param interface mode | (undefined) | underscore |
tswagger.config
Set options using import { TSwaggerOptions } from 'tswagger'
const option: Partial<TSwaggerOptions> = {
pluginName: 'foo'
}
export default option
package.json
Set options using {
"tswagger": {
"pluginsDir": "api"
}
}
tsconfig.json
{
"compilerOptions": {
"types": ["tswagger/types"]
}
}
and npm run swagger
or npx tswagger
License
ISC License Copyright (c) 2023, Elevista