nextswagger
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

NexTSwagger

Next-TS-Swagger plugin generator CLI

npm package github stars

Installation

npm i -D nextswagger

Requirements

Basic Usage

in Next project directory

npx nextswagger https://api.server.foo/swagger.json

in component

import {api} from './api'
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 > next.config > package.json

nextswagger 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

Set options using next.config

import { NextConfig } from 'nextswagger'
const config: NextConfig = {
  serverRuntimeConfig: {
    nextswagger: [
      { pluginName: 'foo', src: 'https://api.server.foo/swagger.json' },
      { pluginName: 'bar', src: 'https://api.server.bar/swagger.json' }
    ]
  },
  publicRuntimeConfig: {
    nextswagger: {
      pluginName: 'foo',
      // AxiosRequestConfig?
      axiosConfig: { baseURL: 'https://api-stage.server.foo' }
    }
  },
}
export default config

Set options using package.json

{
  "nextswagger": {
    "pluginsDir": "api"
  }
}

tsconfig.json

{
  "compilerOptions": {
    "types": ["nextswagger/types"]
  }
}

and npm run swagger or npx nextswagger

License

ISC License Copyright (c) 2023, Elevista

Readme

Keywords

Package Sidebar

Install

npm i nextswagger

Weekly Downloads

0

Version

1.0.0

License

ISC

Unpacked Size

15 kB

Total Files

8

Last publish

Collaborators

  • elevista