@quicker-js/swagger-generator
TypeScript icon, indicating that this package has built-in type declarations

1.1.0 • Public • Published

swagger-generator

swagger-generator is used to convert a swagger api to a class instance. support url or json file.

Installing

npm i @quicker-js/swagger-generator
#or
yarn add @quicker-js/swagger-generator

UseAge

Create swagger-generator.config.js in the root directory of the project.

module.exports = {
  namespaces: {},
  output: path.resolve('src', 'api'),
  globalFiles: [],
  replaces: [],
  excludes: [],
}

namespaces

This option is added in the form of keyValue, which can be a URL or a local file

const path = require('path')
// "system.json" in project the root directory.
// "system.json" should a "swagger" json file.
// fetch the "https://app.com/test/v2/api-docs" url should response a "swagger" json file.
module.exports = {
  namespaces: {
    system: path.resolve('system.json'),
    test: 'https://app.com/test/v2/api-docs'
  },
}

output

This option specifies the directory where the model file is generated.

const path = require('path')
module.exports = {
  output: path.resolve('src', 'api'),
}

globalFiles

This option is used to specify some generic class models, which are generally shared by the whole project.

module.exports = {
  globalFiles: ['ResponseList', 'PageList'],
}

replaces

This option is used to replace the path path or model name in the model.

module.exports = {
  replaces: [
    {
      // Replace version number in path
      // For example, from:
      // @ApiRequest({
      //   url: '/order-v100001/info/{id}',
      // })
      // to:
      // @ApiRequest({
      //   url: '/order/info/{id}',
      // })
      test: /-v100001/,
      // Replace value
      value: '',
      // Replace type is path
      type: 'path',
    },
    {
      // Replace model name in name
      // For example, ResponseResult will be replaced with R
      test: /^ResponseResult/,
      // Replace value
      value: 'R',
      // Replace type is name
      type: 'name',
    },
  ],
}

excludes

This option specifies which model names are excluded from the build file.

module.exports = {
  // Can be string or regexp.
  excludes: [
    /\PageData/,
    'PageData'
  ]
}

Documentation

Issues

Create issues in this repository for anything related to the Class Transformer. When creating issues please search for existing issues to avoid duplicates.

License

Licensed under the MIT License.

Readme

Keywords

Package Sidebar

Install

npm i @quicker-js/swagger-generator

Weekly Downloads

1

Version

1.1.0

License

MIT

Unpacked Size

236 kB

Total Files

85

Last publish

Collaborators

  • leo_ran