Skip to content

Commit

Permalink
Merge pull request #2 from Manweill/master
Browse files Browse the repository at this point in the history
从origin更新
  • Loading branch information
xxbld committed Oct 16, 2019
2 parents d9cf0dd + ddc02d1 commit 9b37d7d
Show file tree
Hide file tree
Showing 6 changed files with 35 additions and 11 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "swagger-axios-codegen",
"version": "0.8.1",
"version": "0.8.2",
"main": "./dist/index",
"typings": "./dist/",
"author": "Manwei Leung <mic.liangwenwei@foxmail.com>",
Expand Down
3 changes: 2 additions & 1 deletion src/baseInterfaces.ts
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,8 @@ export interface IDefinitionClasses {

export interface IEnumDef {
name: string
enumProps: string
enumProps: string,
type: string
}

export interface IDefinitionEnum {
Expand Down
2 changes: 1 addition & 1 deletion src/definitionCodegen/createDefinitionEnum.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,5 @@ export function createDefinitionEnum(className: string, enumArray: any[], type:
enumArray.join('|')
}

return { name: className, enumProps: result }
return { name: className, enumProps: result, type: type }
}
2 changes: 1 addition & 1 deletion src/definitionCodegen/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export function definitionsCodeGen(definitions: IDefinitions) {
const enumDef = createDefinitionEnum(className, v.enum, v.type)
definitionEnums[`#/definitions/${k}`] = {
name: enumDef.name,
value: enumDef
value: enumDef,
}
}
else if (v.type === 'array') {
Expand Down
29 changes: 22 additions & 7 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import axios from 'axios';
import pascalcase from 'pascalcase'
import { ISwaggerSource } from './swaggerInterfaces'
import { definitionsCodeGen } from './definitionCodegen'
import { enumTemplate, classTemplate, serviceHeader, customerServiceHeader, serviceTemplate, requestTemplate, interfaceTemplate } from './template';
import { enumTemplate, typeTemplate, classTemplate, serviceHeader, customerServiceHeader, serviceTemplate, requestTemplate, interfaceTemplate } from './template';
import { requestCodegen } from './requestCodegen';
import { ISwaggerOptions, IInclude } from './baseInterfaces';
import { findDeepRefs } from './utils';
Expand Down Expand Up @@ -152,9 +152,17 @@ export async function codegen(params: ISwaggerOptions) {

allEnum.forEach(item => {
if (allImport.includes(item.name)) {
const text = item.value
? enumTemplate(item.value.name, item.value.enumProps, options.enumNamePrefix)
: item.content || ''
let text = '';
if(item.value){
if(item.value.type == 'string'){
text = enumTemplate(item.value.name, item.value.enumProps, options.enumNamePrefix);
}else{
text = typeTemplate(item.value.name, item.value.enumProps, options.enumNamePrefix)
}
}else{
text = item.content || '';
}

defSource += text
}
})
Expand Down Expand Up @@ -188,9 +196,16 @@ export async function codegen(params: ISwaggerOptions) {
})

Object.values(enums).forEach(item => {
const text = item.value
? enumTemplate(item.value.name, item.value.enumProps, options.enumNamePrefix)
: item.content || ''
let text = '';
if(item.value){
if(item.value.type == 'string'){
text = enumTemplate(item.value.name, item.value.enumProps, options.enumNamePrefix);
}else{
text = typeTemplate(item.value.name, item.value.enumProps, options.enumNamePrefix)
}
}else{
text = item.content || '';
}
apiSource += text
})

Expand Down
8 changes: 8 additions & 0 deletions src/template.ts
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,12 @@ export function enumTemplate(name: string, enumString: string, prefix?: string)
`
}

export function typeTemplate(name: string, typeString: string, prefix?: string) {
return `
export type ${name} = ${typeString};
`
}

interface IRequestSchema {
summary: string
parameters: string
Expand Down Expand Up @@ -119,6 +125,8 @@ export function requestTemplate(name: string, requestSchema: IRequestSchema, opt
const isArrayType = responseType.indexOf('[') > 0;
const transform = useClassTransformer && baseTypes.indexOf(nonArrayType) < 0;
const resolveString = transform ? `(response: any${isArrayType ? '[]' : ''}) => resolve(plainToClass(${nonArrayType}, response, {strategy: 'excludeAll'}))` : 'resolve';


return `
/**
* ${summary || ''}
Expand Down

0 comments on commit 9b37d7d

Please sign in to comment.