-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapiTemplate.ts
70 lines (68 loc) · 2.16 KB
/
apiTemplate.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import { CodeGenerator, Interface } from 'pont-engine'
export default class MyGenerator extends CodeGenerator {
getInterfaceContent(inter: Interface) {
const bodyParmas = inter.getBodyParamsCode()
const queryParamsType = 'IQueryParams'
const queryParamsTmp = `queryParams:${queryParamsType}`
const bodyParamsTmp = `bodyParams:${bodyParmas}`
const paramsInterfaceTmp = `
interface IParams{
${queryParamsTmp}
${bodyParmas ? bodyParamsTmp : ''}
}
`
const requestParams = bodyParmas ? `{queryParams,bodyParams}` : `{queryParams}`
const isUrlIncludesId = inter.path.includes('id')
if (isUrlIncludesId && inter.path.includes('{')) {
const { path, method } = inter
const targetIndex = path.indexOf('{')
const newPath = path.substring(0, targetIndex) + '$' + path.substring(targetIndex, path.length)
if (method === 'get' || method === 'delete') {
return `
/**
* @desc ${inter.description}
*/
import request from '@src/utils/request'
export function ${inter.name}(id: number | string) {
return request({
url: \`${newPath}\`,
method: '${inter.method}'
});
}
`
} else {
return `
/**
* @desc ${inter.description}
*/
import request from '@src/utils/request'
export ${inter.getParamsCode(queryParamsType)}
export ${paramsInterfaceTmp}
export function ${inter.name}(id: number | string, ${requestParams}:IParams = {} as IParams) {
return request({
url: \`${newPath}\`,
method: '${inter.method}',
${bodyParmas ? 'body: bodyParams' : 'params: queryParams'}
});
}
`
}
} else {
return `
/**
* @desc ${inter.description}
*/
import request from '@src/utils/request'
export ${inter.getParamsCode(queryParamsType)}
export ${paramsInterfaceTmp}
export function ${inter.name}(${requestParams}:IParams = {} as IParams) {
return request({
url: \`${inter.path}\`,
method: '${inter.method}',
${bodyParmas ? 'body: bodyParams' : 'params: queryParams'}
});
}
`
}
}
}