1+ {% macro sub_schema(property , definition , spec ) %}
2+ {% spaceless %}
3+ {% if property .sub_schema %}
4+ {% if _self.get_generics_sub (definition , spec ) %}
5+ {{property .sub_schema | caseUcfirst }}< {{ _self.get_generics_sub (definition , spec ) }}>{% if property .type == ' array' %}[]{% endif %}
6+ {% else %}
7+ {{property .sub_schema | caseUcfirst }}{% if property .type == ' array' %}[]{% endif %}
8+ {% endif %}
9+ {% else %}
10+ {{property .type | typeName }}
11+ {% endif %}
12+ {% endspaceless %}
13+ {% endmacro %}
14+ {% macro get_generics(definition , spec ) %}
15+ {% spaceless %}
16+ {% for property in definition .properties %}
17+ {% if spec .definitions [property .sub_schema ].additionalProperties %}
18+ {{property .sub_schema | caseUcfirst }} extends Models.{{property .sub_schema | caseUcfirst }}
19+ {% endif %}
20+ {% if spec .definitions [property .sub_schema ] %}
21+ {{_self.get_generics (spec .definitions [property .sub_schema ], spec )}}
22+ {% endif %}
23+ {% endfor %}
24+ {% endspaceless %}
25+ {% endmacro %}
26+ {% macro get_generics_sub(definition , spec , output = false ) %}
27+ {% spaceless %}
28+ {% for property in definition .properties %}
29+ {% if spec .definitions [property .sub_schema ].additionalProperties and output %}
30+ {{property .sub_schema | caseUcfirst }}
31+ {% endif %}
32+ {% if spec .definitions [property .sub_schema ] %}
33+ {{_self.get_generics_sub (spec .definitions [property .sub_schema ], spec , true )}}
34+ {% endif %}
35+ {% endfor %}
36+ {% endspaceless %}
37+ {% endmacro %}
38+ {% macro get_generics_method(definition , spec , output = false , first = false ) %}
39+ {% spaceless %}
40+ {% if first and definition .additionalProperties %}
41+ {{definition .name | caseUcfirst }} extends Models.{{definition .name | caseUcfirst }}
42+ {% endif %}
43+ {% for property in definition .properties %}
44+ {% if spec .definitions [property .sub_schema ].additionalProperties and output %}
45+ {{property .sub_schema | caseUcfirst }} extends Models.{{property .sub_schema | caseUcfirst }}
46+ {% endif %}
47+ {% if spec .definitions [property .sub_schema ] %}
48+ {{_self.get_generics_method (spec .definitions [property .sub_schema ], spec , true )}}
49+ {% endif %}
50+ {% endfor %}
51+ {% endspaceless %}
52+ {% endmacro %}
53+ {% macro get_generics_method_return(definition , spec ) %}
54+ {% spaceless %}
55+ {% for property in definition .properties %}
56+ {% if spec .definitions [property .sub_schema ].additionalProperties %}
57+ {{property .sub_schema | caseUcfirst }}
58+ {% endif %}
59+ {% if spec .definitions [property .sub_schema ] %}
60+ {{_self.get_generics_method_return (spec .definitions [property .sub_schema ], spec )}}
61+ {% endif %}
62+ {% endfor %}
63+ {% endspaceless %}
64+ {% endmacro %}
165declare module "{{ language .params .npmPackage | caseDash }}" {
66+ export namespace Models {
67+ {% for definition in spec .definitions %}
68+ {% set generics = _self.get_generics (definition , spec ) %}
69+ /**
70+ * {{ definition .description }}
71+ */
72+ export type {{ definition .name | caseUcfirst }}{% if generics %}< {{generics }}>{% endif %} = {
73+ {% for property in definition .properties %}
74+ {% set sub_schema = _self.sub_schema (property , definition , spec )%}
75+ /**
76+ * {{ property .description }}
77+ */
78+ {{ property .name | escapeKeyword }}{% if not property .required %}?{% endif %}: {{sub_schema }};
79+ {% endfor %}
80+ }
81+ {% endfor %}
82+ }
283 export class Client {
384 /**
485 * Set endpoint.
@@ -48,7 +129,8 @@ declare module "{{ language.params.npmPackage|caseDash }}" {
48129{% for service in spec .services %}
49130 export class {{ service .name | caseUcfirst }} extends Service {
50131{% for method in service .methods %}
51-
132+ {% set generics = _self.get_generics_method (spec .definitions [method .responseModel ], spec , true , true ) %}
133+ {% set generics_return = _self.get_generics_method_return (spec .definitions [method .responseModel ], spec ) %}
52134 /**
53135 * {{ method .title }}
54136 *
@@ -62,7 +144,7 @@ declare module "{{ language.params.npmPackage|caseDash }}" {
62144 * @throws {{ ' {' }}{{ spec .title | caseUcfirst }}Exception}
63145 * @returns {Promise}
64146 */
65- {{ method .name | caseCamel }}{% if method . type != ' location ' %}<T extends unknown >{% endif %}({% for parameter in method .parameters .all %}{{ parameter .name | caseCamel }}{% if not parameter .required %}?{% endif %}: {% if parameter .type == ' array ' %}{{ attribute ( parameter , ' array ' ).type}}[] {% else %}{{ parameter .type | typeName }} {% endif %}{% if not loop . last %}, {% endif %} {% endfor %}): Promise < {% if method . type == ' location ' %}Buffer {% else %}T {% endif %}>;
147+ {{ method .name | caseCamel }}{% if generics %}< {{ generics }} >{% endif %}({% for parameter in method .parameters .all %}{{ parameter .name | caseCamel | escapeKeyword }}{% if not parameter .required %}?{% endif %}: {{ parameter .type | typeName }}{% if not loop . last %}, {% endif %} {% endfor %}): Promise < {% if method .type == ' location ' %}Buffer {% else %}{% if method . responseModel and method . responseModel != ' any ' %} {% if not spec . definitions [ method . responseModel ].additionalProperties %}Models. {% endif %}{{ method . responseModel | caseUcfirst }} {% if generics_return %} < {{ generics_return }}>{% endif %}{% else %}Response{% endif %} {% endif %}>;
66148{% endfor %}
67149 }
68150{% endfor %}
0 commit comments