jararaca 0.3.1__py3-none-any.whl → 0.3.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of jararaca might be problematic. Click here for more details.
- jararaca/tools/typescript/interface_parser.py +66 -40
- {jararaca-0.3.1.dist-info → jararaca-0.3.3.dist-info}/METADATA +1 -1
- {jararaca-0.3.1.dist-info → jararaca-0.3.3.dist-info}/RECORD +6 -6
- {jararaca-0.3.1.dist-info → jararaca-0.3.3.dist-info}/LICENSE +0 -0
- {jararaca-0.3.1.dist-info → jararaca-0.3.3.dist-info}/WHEEL +0 -0
- {jararaca-0.3.1.dist-info → jararaca-0.3.3.dist-info}/entry_points.txt +0 -0
|
@@ -193,10 +193,11 @@ def parse_type_to_typescript_interface(
|
|
|
193
193
|
mapped_types.update(inherited_classes)
|
|
194
194
|
|
|
195
195
|
if Enum in inherited_classes:
|
|
196
|
+
enum_values = sorted([(x._name_, x.value) for x in basemodel_type])
|
|
196
197
|
return (
|
|
197
198
|
set(),
|
|
198
199
|
f"export enum {basemodel_type.__name__} {{\n"
|
|
199
|
-
+ "\n ".join([f'\t{
|
|
200
|
+
+ "\n ".join([f'\t{name} = "{value}",' for name, value in enum_values])
|
|
200
201
|
+ "\n}\n",
|
|
201
202
|
)
|
|
202
203
|
|
|
@@ -222,31 +223,39 @@ def parse_type_to_typescript_interface(
|
|
|
222
223
|
extends_expression = (
|
|
223
224
|
" extends %s"
|
|
224
225
|
% ", ".join(
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
226
|
+
sorted(
|
|
227
|
+
[
|
|
228
|
+
(
|
|
229
|
+
"%s" % get_field_type_for_ts(inherited_class)
|
|
230
|
+
if not inherited_classes_consts_conflict[inherited_class]
|
|
231
|
+
else "Omit<%s, %s>"
|
|
232
|
+
% (
|
|
233
|
+
get_field_type_for_ts(inherited_class),
|
|
234
|
+
" | ".join(
|
|
235
|
+
sorted(
|
|
236
|
+
[
|
|
237
|
+
'"%s"' % field_name
|
|
238
|
+
for field_name in inherited_classes_consts_conflict[
|
|
239
|
+
inherited_class
|
|
240
|
+
]
|
|
241
|
+
]
|
|
242
|
+
)
|
|
243
|
+
),
|
|
244
|
+
)
|
|
238
245
|
)
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
246
|
+
for inherited_class in valid_inherited_classes
|
|
247
|
+
],
|
|
248
|
+
key=lambda x: str(x),
|
|
249
|
+
)
|
|
242
250
|
)
|
|
243
251
|
if len(valid_inherited_classes) > 0
|
|
244
252
|
else ""
|
|
245
253
|
)
|
|
246
254
|
|
|
247
255
|
if is_generic_type(basemodel_type):
|
|
256
|
+
generic_args = get_generic_args(basemodel_type)
|
|
248
257
|
string_builder.write(
|
|
249
|
-
f"export interface {basemodel_type.__name__}<{', '.join([arg.__name__ for arg in
|
|
258
|
+
f"export interface {basemodel_type.__name__}<{', '.join(sorted([arg.__name__ for arg in generic_args]))}>{extends_expression} {{\n"
|
|
250
259
|
)
|
|
251
260
|
else:
|
|
252
261
|
string_builder.write(
|
|
@@ -254,12 +263,12 @@ def parse_type_to_typescript_interface(
|
|
|
254
263
|
)
|
|
255
264
|
|
|
256
265
|
if hasattr(basemodel_type, "__annotations__"):
|
|
257
|
-
#
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
for field_name, field in
|
|
266
|
+
# Sort fields for consistent output
|
|
267
|
+
annotation_items = sorted(
|
|
268
|
+
basemodel_type.__annotations__.items(), key=lambda x: x[0]
|
|
269
|
+
)
|
|
270
|
+
|
|
271
|
+
for field_name, field in annotation_items:
|
|
263
272
|
if field_name in cls_consts:
|
|
264
273
|
continue
|
|
265
274
|
|
|
@@ -277,8 +286,11 @@ def parse_type_to_typescript_interface(
|
|
|
277
286
|
mapped_types.update(extract_all_envolved_types(field))
|
|
278
287
|
mapped_types.add(field)
|
|
279
288
|
|
|
280
|
-
## Loop over computed fields
|
|
281
|
-
members =
|
|
289
|
+
## Loop over computed fields - sort them for consistent output
|
|
290
|
+
members = sorted(
|
|
291
|
+
inspect.getmembers(basemodel_type, lambda a: isinstance(a, property)),
|
|
292
|
+
key=lambda x: x[0],
|
|
293
|
+
)
|
|
282
294
|
for field_name, field in members:
|
|
283
295
|
if hasattr(field, "fget"):
|
|
284
296
|
module_func_name = field.fget.__module__ + "." + field.fget.__qualname__
|
|
@@ -359,11 +371,13 @@ export type WebSocketMessageMap = {
|
|
|
359
371
|
}
|
|
360
372
|
"""
|
|
361
373
|
% "\n".join(
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
374
|
+
sorted(
|
|
375
|
+
[
|
|
376
|
+
f'\t"{message.MESSAGE_ID}": {message.__name__};'
|
|
377
|
+
for registers in websocket_registries
|
|
378
|
+
for message in registers.message_types
|
|
379
|
+
]
|
|
380
|
+
)
|
|
367
381
|
)
|
|
368
382
|
)
|
|
369
383
|
|
|
@@ -477,7 +491,12 @@ def write_rest_controller_to_typescript_interface(
|
|
|
477
491
|
|
|
478
492
|
mapped_types: set[Any] = set()
|
|
479
493
|
|
|
480
|
-
|
|
494
|
+
# Sort members for consistent output
|
|
495
|
+
member_items = sorted(
|
|
496
|
+
inspect.getmembers(controller, predicate=inspect.isfunction), key=lambda x: x[0]
|
|
497
|
+
)
|
|
498
|
+
|
|
499
|
+
for name, member in member_items:
|
|
481
500
|
if (mapping := HttpMapping.get_http_mapping(member)) is not None:
|
|
482
501
|
return_type = member.__annotations__.get("return")
|
|
483
502
|
|
|
@@ -514,17 +533,24 @@ def write_rest_controller_to_typescript_interface(
|
|
|
514
533
|
)
|
|
515
534
|
class_buffer.write(f"\t\t\tpath: `/{final_path}`,\n")
|
|
516
535
|
|
|
536
|
+
# Sort headers
|
|
537
|
+
header_params = sorted(
|
|
538
|
+
[param for param in arg_params_spec if param.type_ == "header"],
|
|
539
|
+
key=lambda x: x.name,
|
|
540
|
+
)
|
|
517
541
|
class_buffer.write("\t\t\theaders: {\n")
|
|
518
|
-
for param in
|
|
519
|
-
|
|
520
|
-
class_buffer.write(f'\t\t\t\t"{param.name}": {param.name},\n')
|
|
521
|
-
|
|
542
|
+
for param in header_params:
|
|
543
|
+
class_buffer.write(f'\t\t\t\t"{param.name}": {param.name},\n')
|
|
522
544
|
class_buffer.write("\t\t\t},\n")
|
|
523
|
-
class_buffer.write("\t\t\tquery: {\n")
|
|
524
545
|
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
546
|
+
# Sort query params
|
|
547
|
+
query_params = sorted(
|
|
548
|
+
[param for param in arg_params_spec if param.type_ == "query"],
|
|
549
|
+
key=lambda x: x.name,
|
|
550
|
+
)
|
|
551
|
+
class_buffer.write("\t\t\tquery: {\n")
|
|
552
|
+
for param in query_params:
|
|
553
|
+
class_buffer.write(f'\t\t\t\t"{param.name}": {param.name},\n')
|
|
528
554
|
class_buffer.write("\t\t\t},\n")
|
|
529
555
|
|
|
530
556
|
if (
|
|
@@ -63,11 +63,11 @@ jararaca/tools/app_config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJW
|
|
|
63
63
|
jararaca/tools/app_config/decorators.py,sha256=-ckkMZ1dswOmECdo1rFrZ15UAku--txaNXMp8fd1Ndk,941
|
|
64
64
|
jararaca/tools/app_config/interceptor.py,sha256=nfFZiS80hrbnL7-XEYrwmp2rwaVYBqxvqu3Y-6o_ov4,2575
|
|
65
65
|
jararaca/tools/metadata.py,sha256=7nlCDYgItNybentPSSCc2MLqN7IpBd0VyQzfjfQycVI,1402
|
|
66
|
-
jararaca/tools/typescript/interface_parser.py,sha256=
|
|
66
|
+
jararaca/tools/typescript/interface_parser.py,sha256=_4cqte3OMAiHP-dPqUCWzWar4Ur04F-0x4ZUEnSTN-c,30040
|
|
67
67
|
jararaca/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
68
68
|
jararaca/utils/rabbitmq_utils.py,sha256=zFqZE-j6TSWFOEPbkIaB2hy2sqsXup-5421jIiPLfXY,2543
|
|
69
|
-
jararaca-0.3.
|
|
70
|
-
jararaca-0.3.
|
|
71
|
-
jararaca-0.3.
|
|
72
|
-
jararaca-0.3.
|
|
73
|
-
jararaca-0.3.
|
|
69
|
+
jararaca-0.3.3.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
70
|
+
jararaca-0.3.3.dist-info/METADATA,sha256=36CEUWYz5s2mF9ARmHLe0dEXldF-kQzrVV0IXSSI_sQ,4951
|
|
71
|
+
jararaca-0.3.3.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
|
|
72
|
+
jararaca-0.3.3.dist-info/entry_points.txt,sha256=WIh3aIvz8LwUJZIDfs4EeH3VoFyCGEk7cWJurW38q0I,45
|
|
73
|
+
jararaca-0.3.3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|