UNPKG

jswagger-generator

Version:

This is jswagger's generator package.

67 lines (57 loc) 1.51 kB
import * as prettier from 'prettier'; import { IOptions } from './types'; import { makeDefinitions } from './definition-interface-generator'; import { makeApiInterfaces } from './api-interface-generator'; import { OpenAPI2, OpenAPI3 } from 'jswagger-common'; export const WARNING_MESSAGE = `/** * This file was auto-generated by jswagger-swagger. * Do not make direct changes to the file. */ `; const OUTPUT_HEADER = `import { ApiRequestOptionsRX, ApiRequestOptionsRO, ApiRequestOptionsRR, ApiRequestOptionsOX, ApiRequestOptionsOO, ApiRequestOptionsOR, ApiRequestOptionsXX, ApiRequestOptionsXO, ApiRequestOptionsXR, ApiResponse, IApiSecurityContext, internal } from 'jswagger-client'; const toClassValue = internal.toClassValue; const toJsonObject = internal.toJsonObject; `; function index(spec: OpenAPI2 | OpenAPI3, options?: IOptions) { const output: string[] = [ WARNING_MESSAGE, OUTPUT_HEADER ]; output.push( makeDefinitions(spec, options) ); output.push( makeApiInterfaces(spec, options) ); // Prettify output let prettierOptions: prettier.Options = { parser: 'typescript', singleQuote: true, jsxSingleQuote: true, semi: true, tabWidth: 2 }; if (options && options.prettierConfig) { prettierOptions = { ...prettierOptions, ...options.prettierConfig }; } return prettier.format(output.join('\n'), prettierOptions); } export default index;