JSPM

  • Created
  • Published
  • Downloads 481
  • Score
    100M100P100Q91588F
  • License MIT

An auto ts/js code generate from swagger/openApi

Package Exports

  • swagger-typescript

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (swagger-typescript) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

NPM

install size dependencies

⭐⭐⭐ If you would like to contribute, please refer to To do list and a list of open tasks.⭐⭐⭐

Swagger-Typescript: Generate ts/js code from swagger/openApi JSON

Support OpenApi v3 and swagger v2

An auto typescript/javascript code generator from swagger. Each endpoint will be created as a function, full type base. Supported

  • SignalR hub.
  • React hooks.
  • Generate mock data.

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 swagger-typescript

get start

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

swagger.config.json

{
  "url": "http://example.com/api/swagger.json",
  "dir": "./services",
  "prefix": "/api"
}

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": "http://example.com/api/swagger.json",
  "dir": "./services",
  "prettierPath": ".prettierrc",
  "language": "typescript"
}
[Key] [default] Comment
url Required Address of swagger.json
dir Required Address of output
language typescript export to "javascript" or "typescript"
methodName {method}{path} Supported mixed of "{method}{path}{operationId}". for Example: 'service{method}{path}'
prefix Optional prefix value will be removed from method name For example your endpoints is like "/api/v2/users", If you don't want add "/api/v2" to method name, add it to prefix
ignore Optional Ignore headers from type for Example: "ignore": { "headerParams": ["terminalId"]}
methodParamsByTag false add add a tag insteadOf params name to generated method name (example: getUserP1P2 insteadOf getUserConnectionIdAccountId)
mock false For generate response mocks
reactHooks false For generate react hooks of all get apis

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.

run by node

const { generate } = require("swagger-typescript");

generate(config);
// or
generate(); // will be use ./swagger.config.json

Stories

why-you-should-use-swagger-typescript-for-generate-apis-code