Skip to content

Commit 9c84745

Browse files
committed
chore: add same logic to node
1 parent 1ec44b6 commit 9c84745

File tree

2 files changed

+51
-3
lines changed

2 files changed

+51
-3
lines changed

templates/node/src/services/template.ts.twig

Lines changed: 50 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,11 @@ export class {{ service.name | caseUcfirst }} {
2727
{%~ for method in service.methods %}
2828
/**
2929
{%~ if method.description %}
30-
* {{ method.description | replace({'\n': '\n * '}) }}
30+
* {{ method.description | replace({'\n': '\n * '}) | raw }}
3131
{%~ endif %}
3232
*
3333
{%~ for parameter in method.parameters.all %}
34-
* @param {{ '{' }}{{ parameter | getPropertyType(method) | raw }}{{ '}' }} {{ parameter.name | caseCamel | escapeKeyword }}
34+
* @param {{ '{' }}{{ parameter | getPropertyType(method) | raw }}{{ '}' }} {{ parameter.name | caseCamel | escapeKeyword }} - {{ parameter.description | raw }}
3535
{%~ endfor %}
3636
* @throws {{ '{' }}{{ spec.title | caseUcfirst}}Exception}
3737
* @returns {{ '{' }}{{ method | getReturn(spec) | raw }}{{ '}' }}
@@ -43,7 +43,55 @@ export class {{ service.name | caseUcfirst }} {
4343
{%~ endif %}
4444
{%~ endif %}
4545
*/
46+
{%~ if method.parameters.all|length > 0 %}
47+
{{ method.name | caseCamel }}{{ method.responseModel | getGenerics(spec) | raw }}(params: { {% for parameter in method.parameters.all %}{{ parameter.name | caseCamel | escapeKeyword }}{% if not parameter.required or parameter.nullable %}?{% endif %}: {{ parameter | getPropertyType(method) | raw }}{% if not loop.last %}, {% endif %}{% endfor %} {% if 'multipart/form-data' in method.consumes %}, onProgress?: (progress: UploadProgress) => {}{% endif %} }): {{ method | getReturn(spec) | raw }};
48+
/**
49+
* @deprecated This API has been deprecated.
50+
*/
51+
{{ method.name | caseCamel }}{{ method.responseModel | getGenerics(spec) | raw }}({% for parameter in method.parameters.all %}{{ parameter.name | caseCamel | escapeKeyword }}{% if not parameter.required or parameter.nullable %}?{% endif %}: {{ parameter | getPropertyType(method) | raw }}{% if not loop.last %}, {% endif %}{% endfor %}{% if 'multipart/form-data' in method.consumes %}, onProgress?: (progress: UploadProgress) => {}{% endif %}): {{ method | getReturn(spec) | raw }};
52+
{{ method.name | caseCamel }}{{ method.responseModel | getGenerics(spec) | raw }}(
53+
{% if method.parameters.all|length > 0 %}paramsOrFirst{% if not method.parameters.all[0].required or method.parameters.all[0].nullable %}?{% endif %}: { {% for parameter in method.parameters.all %}{{ parameter.name | caseCamel | escapeKeyword }}{% if not parameter.required or parameter.nullable %}?{% endif %}: {{ parameter | getPropertyType(method) | raw }}{% if not loop.last %}, {% endif %}{% endfor %}{% if 'multipart/form-data' in method.consumes %}, onProgress?: (progress: UploadProgress) => {} {% endif %} } | {{ method.parameters.all[0] | getPropertyType(method) | raw }}{% if method.parameters.all|length > 1 %},
54+
...rest: [{% for parameter in method.parameters.all[1:] %}({{ parameter | getPropertyType(method) | raw }})?{% if not loop.last %}, {% endif %}{% endfor %}{% if 'multipart/form-data' in method.consumes %},((progress: UploadProgress) => {})?{% endif %}]{% endif %}{% endif %}
55+
56+
): {{ method | getReturn(spec) | raw }} {
57+
{%~ if method.parameters.all|length > 0 %}
58+
let params: { {% for parameter in method.parameters.all %}{{ parameter.name | caseCamel | escapeKeyword }}{% if not parameter.required or parameter.nullable %}?{% endif %}: {{ parameter | getPropertyType(method) | raw }}{% if not loop.last %}, {% endif %}{% endfor %} };
59+
{%~ if 'multipart/form-data' in method.consumes %}
60+
let onProgress: ((progress: UploadProgress) => {});
61+
{%~ endif %}
62+
63+
if (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst)) {
64+
params = paramsOrFirst as { {% for parameter in method.parameters.all %}{{ parameter.name | caseCamel | escapeKeyword }}{% if not parameter.required or parameter.nullable %}?{% endif %}: {{ parameter | getPropertyType(method) | raw }}{% if not loop.last %}, {% endif %}{% endfor %} };
65+
{%~ if 'multipart/form-data' in method.consumes %}
66+
onProgress = paramsOrFirst.onProgress as ((progress: UploadProgress) => {});
67+
{%~ endif %}
68+
} else {
69+
params = {
70+
{%~ for parameter in method.parameters.all %}
71+
{{ parameter.name | caseCamel | escapeKeyword }}: {% if loop.index0 == 0 %}paramsOrFirst{% else %}rest[{{ loop.index0 - 1 }}]{% endif %} as {{ parameter | getPropertyType(method) | raw }}{% if not parameter.required or parameter.nullable %} | undefined{% endif %}{% if not loop.last %},
72+
{% endif %}
73+
{%~ endfor %}
74+
75+
};
76+
{%~ if 'multipart/form-data' in method.consumes %}
77+
onProgress = rest[{{ method.parameters.all|length - 1 }}] as ((progress: UploadProgress) => {});
78+
{%~ endif %}
79+
}
80+
81+
{%~ for parameter in method.parameters.all %}
82+
const {{ parameter.name | caseCamel | escapeKeyword }} = params.{{ parameter.name | caseCamel | escapeKeyword }};
83+
{%~ endfor %}
84+
85+
{%~ else %}
86+
{%~ if 'multipart/form-data' in method.consumes %}
87+
if (typeof paramsOrFirst === 'function') {
88+
onProgress = paramsOrFirst;
89+
}
90+
{%~ endif %}
91+
{%~ endif %}
92+
{%~ else %}
4693
{{ method.name | caseCamel }}{{ method.responseModel | getGenerics(spec) | raw }}({% for parameter in method.parameters.all %}{{ parameter.name | caseCamel | escapeKeyword }}{% if not parameter.required or parameter.nullable %}?{% endif %}: {{ parameter | getPropertyType(method) | raw }}{% if not loop.last %}, {% endif %}{% endfor %}{% if 'multipart/form-data' in method.consumes %}, onProgress = (progress: UploadProgress) => {}{% endif %}): {{ method | getReturn(spec) | raw }} {
94+
{%~ endif %}
4795
{%~ for parameter in method.parameters.all %}
4896
{%~ if parameter.required %}
4997
if (typeof {{ parameter.name | caseCamel | escapeKeyword }} === 'undefined') {

templates/web/src/services/template.ts.twig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ export class {{ service.name | caseUcfirst }} {
3232
{%~ endif %}
3333
*
3434
{%~ for parameter in method.parameters.all %}
35-
* @param {{ '{' }}{{ parameter | getPropertyType(method) | raw }}{{ '}' }} {{ parameter.name | caseCamel | escapeKeyword }} - {{ parameter.description }}
35+
* @param {{ '{' }}{{ parameter | getPropertyType(method) | raw }}{{ '}' }} {{ parameter.name | caseCamel | escapeKeyword }} - {{ parameter.description | raw }}
3636
{%~ endfor %}
3737
* @throws {{ '{' }}{{ spec.title | caseUcfirst}}Exception}
3838
* @returns {{ '{' }}{{ method | getReturn(spec) | raw }}{{ '}' }}

0 commit comments

Comments
 (0)