4.0.9 • Published 3 years ago

@zoff-tech/swagger-typescript v4.0.9

Weekly downloads
47
License
MIT
Repository
github
Last release
3 years ago

This is a Fork of https://github.com/hosseinmd/swagger-typescript

For Example: Get method of '/Account' path will be this code in services.ts

import { getAccount } from "./services";

const response = await getAccount({ id: 1234 });

install

$ yarn add @zoff-tech/swagger-typescript

get start

Before running, add your config to swagger.config.json

swagger.config.json

{
  "url": "http://example.com/api/swagger.json",
  "dir": "./test"
}
{
  "file": "./api.yaml",
  "dir": "./test"
}
{
  "file": "./api.json",
  "dir": "./test"
}

run

yarn swag-ts

config.ts

This file automatically will be create after first run. You could change this file for customization. Don't change other files, if you want another config create Issue or PR.

baseConfig

const baseConfig: AxiosRequestConfig = {
  baseURL: "", // <--- Add your base url
  //other static configs
};

Now you can use APIs, So for advanced config read below.

swagger.config.json

For Example:

{
    "url": "https://generator3.swagger.io/openapi.json",
    "dir": "./test",
    "language": "typescript",
    "modelNaming":"camel",
    "modelPropertyNaming":"original",
    "enumPropertyNaming":"pascal",
    "serviceNaming":"canel",
    "tagNaming":"snake-upper",
    "ignore": {
        "headerParams": [
            "terminalId"
        ]
    }
}
KeydefaultComment
urlOptionalAddress of swagger.json
fileOptionalPath of file swagger.json or swagger.yaml
dirRequiredAddress of output
languagetypescriptexport to "javascript" or "typescript"
methodName{method}{path}Supported mixed of "{method}{path}{operationId}". for Example: 'service{method}{path}'
modelNamingoriginalcamel or pascal or snake or snake-upper or original
modelPropertyNamingoriginalcamel or pascal or snake or snake-upper or original
enumPropertyNamingoriginalcamel or pascal or snake or snake-upper or original
serviceNamingoriginalcamel or pascal or snake or snake-upper or original
tagNamingoriginalcamel or pascal or snake or snake-upper or original
ignoreOptionalIgnore headers from type for Example: "ignore": { "headerParams": ["terminalId"]}

config.ts

This file automatically will be created after first run. You could change this file for customization. Don't change other files, if you want another config create Issue or PR.

getAxiosInstance

getAxiosInstance used for create an instance of axios request you can customize that for what you needed

baseConfig

baseConfig used for get static configs and headers. if you need some dynamic configs like add authentication to headers use requestConfig.headers.authorization into of axiosInstance.interceptors.request.use function.

Typescript / Factories

Operations grouped by tags like Swagger UI.

import { getApi, getService } from "../apis-generated/serviceFactory";

// Api factory
const apiUsuario = getApi("Usuario");

// Service factory
let response = await getService("Usuario","getUsuario")({ id: this.controller.IdUsuario });