2.3.1 • Published 1 year ago

swagger-code-generate v2.3.1

Weekly downloads
20
License
ISC
Repository
github
Last release
1 year ago

Automatically generate TypeScript client API according to the defined OpenAPI specification.

Currently only supports swagger 2.0 version

Installation

npm install -D swagger-code-generate

Getting started

// gen-apis.js
// excute "node gen-apis.js" to get result

const { generate } = require('swagger-code-generate');

generate({ common: { // global common configuration }, swagger: { source: "https://generator.swagger.io/api/swagger.json", }, petstore: { source: "https://petstore.swagger.io/v2/swagger.json", } })

# Generation Result
```ts
// apis/swagger-api.ts

//.......type defenations.......

/**
 * Downloads a pre-generated file
 * @param fileId The http request path parameters.
 * @param header The http request header parameters.
 */
export function getGenDownloadFileId(fileId: string, header?: object, ): Promise<string> {
    const url = `/api/gen/download/${fileId}`;
    return request({ url, method: 'get', header, });
}

/**
 * Returns options for a client library
 * @param language The target language for the client library
 * @param header The http request header parameters.
 */
export function getGenClientsLanguage(language: string, header?: object, ): Promise<object> {
    const url = `/api/gen/clients/${language}`;
    return request({ url, method: 'get', header, });
}

/**
 * Generates a client library
 * @param language The target language for the client library
 * @param body The http request body parameters.
 * @param header The http request header parameters.
 */
export function postGenClientsLanguage(language: string, body?: GeneratorInput, header?: object, ): Promise<$Required<ResponseCode>> {
    const url = `/api/gen/clients/${language}`;
    return request({ url, method: 'post', body, header, });
}

/**
 * Returns options for a server framework
 * @param framework The target language for the server framework
 * @param header The http request header parameters.
 */
export function getGenServersFramework(framework: string, header?: object, ): Promise<object> {
    const url = `/api/gen/servers/${framework}`;
    return request({ url, method: 'get', header, });
}

/**
 * Generates a server library
 * @param framework framework
 * @param body The http request body parameters.
 * @param header The http request header parameters.
 */
export function postGenServersFramework(framework: string, body?: GeneratorInput, header?: object, ): Promise<$Required<ResponseCode>> {
    const url = `/api/gen/servers/${framework}`;
    return request({ url, method: 'post', body, header, });
}

/**
 * Gets languages supported by the client generator
 * @param header The http request header parameters.
 */
export function getGenClients(header?: object, ): Promise<string[]> {
    const url = `/api/gen/clients`;
    return request({ url, method: 'get', header, });
}

/**
 * Gets languages supported by the server generator
 * @param header The http request header parameters.
 */
export function getGenServers(header?: object, ): Promise<string[]> {
    const url = `/api/gen/servers`;
    return request({ url, method: 'get', header, });
}

Configuration

{
    common:{},
    api1Name:{},
    api2Name:{}
}
export interface IConfig {
    /**
     * Code generation directory
     * @default './apis'
     */
    destination?: string;
    /**
     * Naming convention
     */
    rename?: Partial<Record<'method' | 'parameter' | 'response' | 'file', (...args: any) => string>>;
    /**
     * Code template files
     */
    templates?: Partial<Record<'type', string>>;
    /**
     * The items want to ignore
     */
    ignores?: Partial<Record<'definitions' | 'path' | 'body' | 'header' | 'query', string[]>>;
    /**
     * The modules want to import
     */
    imports?: string[];
    /**
     * The configuration name, default is the configuration key name
     */
    name?: string;
    /**
     * The OpenAPI specification(JSON) 's resource url.
     * @example 'https://petstore.swagger.io/v2/swagger.json'
     */
    source?: string;
    /**
     * The http request host, if the value is false, no host will be added to the url
     * @example 'petstore.swagger.io'
     */
    host?: string | false;
    /**
     * The http request scheme
     * @example https
     */
    scheme?: string;
    /**
     * Custom type mappings
     * @example {'integer':'number'}
     */
    typeMappings?: Record<string, string>;
    /**
     * Whether to enable the secure property name, the property name will wrapped with double quotes if enabled.
     */
    securePropertyName?: boolean;
}
2.3.0

2 years ago

2.3.1

1 year ago

2.2.5

2 years ago

2.2.4

2 years ago

2.2.3

3 years ago

2.2.2

3 years ago

2.2.1

3 years ago

2.2.0

3 years ago

2.1.0

3 years ago

2.0.4

3 years ago

2.0.3

3 years ago

2.0.2

3 years ago

2.0.1

3 years ago

2.0.0

3 years ago

1.1.0

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago

0.4.1

4 years ago

0.4.0

4 years ago

0.3.2

4 years ago

0.3.1

4 years ago

0.3.0

4 years ago

0.2.0

4 years ago

0.1.1

4 years ago

0.1.0

4 years ago

0.0.3

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago