Skip to content

Commit 78525f5

Browse files
Fix syntax logic for ignore_parameters
1 parent 0176142 commit 78525f5

File tree

1 file changed

+26
-10
lines changed

1 file changed

+26
-10
lines changed

web/scripts/builder.py

Lines changed: 26 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -106,13 +106,6 @@ def parse_functions(self):
106106
if 'description' in preview_img:
107107
preview_img['description_html'] = utils.to_html(preview_img['description'], single_paragraph=True)
108108

109-
if ('returns' in type_info) and ('description' in type_info['returns']):
110-
type_info['returns']['description_html'] = utils.to_html(type_info['returns']['description'], single_paragraph=True)
111-
112-
if 'parameters' in type_info:
113-
for parameter in type_info['parameters']:
114-
parameter['description_html'] = utils.to_html(parameter['description'], single_paragraph=True)
115-
116109
# Prepare parameters & returns for syntax display
117110
syntaxes = {
118111
'single': None,
@@ -123,6 +116,10 @@ def parse_functions(self):
123116
parameters = []
124117
returns = None
125118
has_single_syntax = True
119+
ignore_parameters = {
120+
'client': None,
121+
'server': None,
122+
}
126123

127124
if function.get('shared'):
128125
# Function may have different syntax for client/server
@@ -134,6 +131,13 @@ def parse_functions(self):
134131
has_single_syntax = False
135132
break
136133
last_syntax_type = type_name
134+
# Check if client or server defs have ignore_parameters
135+
for type_name in ['client', 'server']:
136+
type_info = function.get(type_name)
137+
if type_info:
138+
if type_info.get('ignore_parameters'):
139+
ignore_parameters[type_name] = type_info['ignore_parameters']
140+
has_single_syntax = False
137141
else:
138142
has_single_syntax = True
139143

@@ -150,12 +154,18 @@ def parse_parameters_and_returns(parameters, returns):
150154
}
151155
}
152156
for parameter in parameters:
157+
parameter_custom = {
158+
'name': parameter.get('name'),
159+
'type': parameter.get('type'),
160+
'description_html': utils.to_html(parameter.get('description'), single_paragraph=True),
161+
'default': parameter.get('default'),
162+
}
153163
if parameter.get('default'):
154-
syntax['arguments']['optional'].append(parameter)
164+
syntax['arguments']['optional'].append(parameter_custom)
155165
else:
156-
syntax['arguments']['required'].append(parameter)
166+
syntax['arguments']['required'].append(parameter_custom)
157167
if returns:
158-
syntax['returns']['description'] = returns.get('description', None)
168+
syntax['returns']['description_html'] = utils.to_html(returns.get('description'), single_paragraph=True)
159169
for value in returns.get('values'):
160170
syntax['returns']['values'].append(value)
161171
syntax['returns']['values_type'] = syntax['returns']['values'][0].get('type')
@@ -178,11 +188,17 @@ def parse_parameters_and_returns(parameters, returns):
178188
# Get client parameters and returns, complete missing with shared
179189
client = function.get('client')
180190
client_parameters = client.get('parameters') or shared_parameters
191+
# Exclude ignore_parameters['client'] from client parameters
192+
if ignore_parameters['client']:
193+
client_parameters = [p for p in client_parameters if p['name'] not in ignore_parameters['client']]
181194
client_returns = client.get('returns') or shared_returns
182195

183196
# Get server parameters and returns, complete missing with shared
184197
server = function.get('server')
185198
server_parameters = server.get('parameters') or shared_parameters
199+
# Exclude ignore_parameters['server'] from server parameters
200+
if ignore_parameters['server']:
201+
server_parameters = [p for p in server_parameters if p['name'] not in ignore_parameters['server']]
186202
server_returns = server.get('returns') or shared_returns
187203

188204
syntaxes['client'] = parse_parameters_and_returns(client_parameters, client_returns)

0 commit comments

Comments
 (0)