typia 13.0.0-dev.20260430 → 13.0.0-dev.20260502-2

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.
Files changed (364) hide show
  1. package/lib/executable/TypiaGenerateWizard.js +55 -8
  2. package/lib/executable/TypiaGenerateWizard.js.map +1 -1
  3. package/lib/executable/TypiaGenerateWizard2.mjs +55 -8
  4. package/lib/executable/TypiaGenerateWizard2.mjs.map +1 -1
  5. package/lib/executable/generate/ttsc.js.map +1 -1
  6. package/lib/executable/setup/PluginConfigurator.js.map +1 -1
  7. package/lib/internal/_randomInteger.js.map +1 -1
  8. package/lib/internal/_validateReport.js.map +1 -1
  9. package/lib/transform.d.ts +2 -13
  10. package/lib/transform.js +4 -11
  11. package/lib/transform.js.map +1 -1
  12. package/lib/transform2.mjs +6 -14
  13. package/lib/transform2.mjs.map +1 -1
  14. package/native/adapter/adapter.go +128 -128
  15. package/native/adapter/cleanup.go +155 -172
  16. package/native/adapter/imports.go +80 -80
  17. package/native/adapter/visit.go +142 -142
  18. package/native/cmd/ttsc-typia/build.go +223 -223
  19. package/native/cmd/ttsc-typia/main.go +57 -57
  20. package/native/cmd/ttsc-typia/transform.go +421 -254
  21. package/native/cmd/ttsc-typia/transform_test.go +40 -0
  22. package/native/core/context/IProgrammerProps.go +7 -7
  23. package/native/core/context/ITransformOptions.go +5 -5
  24. package/native/core/context/ITypiaContext.go +13 -13
  25. package/native/core/context/TransformerError.go +81 -81
  26. package/native/core/factories/CommentFactory.go +9 -9
  27. package/native/core/factories/ExpressionFactory.go +254 -254
  28. package/native/core/factories/FormatCheatSheet.go +23 -23
  29. package/native/core/factories/IdentifierFactory.go +130 -130
  30. package/native/core/factories/JsonMetadataFactory.go +129 -129
  31. package/native/core/factories/LiteralFactory.go +195 -182
  32. package/native/core/factories/MetadataCommentTagFactory.go +379 -379
  33. package/native/core/factories/MetadataFactory.go +462 -462
  34. package/native/core/factories/MetadataTypeTagFactory.go +498 -498
  35. package/native/core/factories/MetadataTypeTagSchemaFactory.go +102 -102
  36. package/native/core/factories/NumericRangeFactory.go +84 -84
  37. package/native/core/factories/ProtobufFactory.go +933 -933
  38. package/native/core/factories/StatementFactory.go +72 -72
  39. package/native/core/factories/TemplateFactory.go +57 -57
  40. package/native/core/factories/TypeFactory.go +125 -125
  41. package/native/core/factories/ValueFactory.go +12 -12
  42. package/native/core/factories/internal/metadata/IMetadataIteratorProps.go +35 -35
  43. package/native/core/factories/internal/metadata/MetadataHelper.go +176 -176
  44. package/native/core/factories/internal/metadata/emend_metadata_atomics.go +69 -69
  45. package/native/core/factories/internal/metadata/emplace_metadata_alias.go +27 -27
  46. package/native/core/factories/internal/metadata/emplace_metadata_array_type.go +33 -33
  47. package/native/core/factories/internal/metadata/emplace_metadata_object.go +209 -209
  48. package/native/core/factories/internal/metadata/emplace_metadata_tuple.go +50 -50
  49. package/native/core/factories/internal/metadata/explore_metadata.go +29 -29
  50. package/native/core/factories/internal/metadata/iterate_metadata.go +46 -46
  51. package/native/core/factories/internal/metadata/iterate_metadata_alias.go +25 -25
  52. package/native/core/factories/internal/metadata/iterate_metadata_array.go +65 -65
  53. package/native/core/factories/internal/metadata/iterate_metadata_atomic.go +49 -49
  54. package/native/core/factories/internal/metadata/iterate_metadata_coalesce.go +22 -22
  55. package/native/core/factories/internal/metadata/iterate_metadata_collection.go +228 -228
  56. package/native/core/factories/internal/metadata/iterate_metadata_comment_tags.go +12 -12
  57. package/native/core/factories/internal/metadata/iterate_metadata_constant.go +71 -71
  58. package/native/core/factories/internal/metadata/iterate_metadata_escape.go +48 -48
  59. package/native/core/factories/internal/metadata/iterate_metadata_function.go +82 -82
  60. package/native/core/factories/internal/metadata/iterate_metadata_intersection.go +319 -319
  61. package/native/core/factories/internal/metadata/iterate_metadata_map.go +51 -51
  62. package/native/core/factories/internal/metadata/iterate_metadata_native.go +85 -85
  63. package/native/core/factories/internal/metadata/iterate_metadata_object.go +27 -27
  64. package/native/core/factories/internal/metadata/iterate_metadata_set.go +37 -37
  65. package/native/core/factories/internal/metadata/iterate_metadata_sort.go +137 -137
  66. package/native/core/factories/internal/metadata/iterate_metadata_template.go +33 -33
  67. package/native/core/factories/internal/metadata/iterate_metadata_tuple.go +16 -16
  68. package/native/core/factories/internal/metadata/iterate_metadata_union.go +18 -18
  69. package/native/core/programmers/AssertProgrammer.go +389 -389
  70. package/native/core/programmers/ImportProgrammer.go +196 -196
  71. package/native/core/programmers/IsProgrammer.go +293 -293
  72. package/native/core/programmers/RandomProgrammer.go +1094 -1094
  73. package/native/core/programmers/ValidateProgrammer.go +369 -369
  74. package/native/core/programmers/functional/FunctionalAssertFunctionProgrammer.go +133 -133
  75. package/native/core/programmers/functional/FunctionalAssertParametersProgrammer.go +104 -104
  76. package/native/core/programmers/functional/FunctionalAssertReturnProgrammer.go +100 -100
  77. package/native/core/programmers/functional/FunctionalIsFunctionProgrammer.go +79 -79
  78. package/native/core/programmers/functional/FunctionalIsParametersProgrammer.go +159 -159
  79. package/native/core/programmers/functional/FunctionalIsReturnProgrammer.go +99 -99
  80. package/native/core/programmers/functional/FunctionalValidateFunctionProgrammer.go +138 -138
  81. package/native/core/programmers/functional/FunctionalValidateParametersProgrammer.go +222 -222
  82. package/native/core/programmers/functional/FunctionalValidateReturnProgrammer.go +116 -116
  83. package/native/core/programmers/functional/internal/FunctionalGeneralProgrammer.go +36 -36
  84. package/native/core/programmers/helpers/AtomicPredicator.go +35 -35
  85. package/native/core/programmers/helpers/CloneJoiner.go +217 -217
  86. package/native/core/programmers/helpers/FunctionProgrammer.go +79 -79
  87. package/native/core/programmers/helpers/HttpMetadataUtil.go +17 -17
  88. package/native/core/programmers/helpers/ICheckEntry.go +5 -5
  89. package/native/core/programmers/helpers/IExpressionEntry.go +6 -6
  90. package/native/core/programmers/helpers/NotationJoiner.go +159 -159
  91. package/native/core/programmers/helpers/OptionPredicator.go +4 -4
  92. package/native/core/programmers/helpers/ProtobufUtil.go +231 -231
  93. package/native/core/programmers/helpers/ProtobufWire.go +6 -6
  94. package/native/core/programmers/helpers/PruneJoiner.go +227 -227
  95. package/native/core/programmers/helpers/RandomJoiner.go +155 -155
  96. package/native/core/programmers/helpers/StringifyJoinder.go +331 -331
  97. package/native/core/programmers/helpers/StringifyPredicator.go +10 -10
  98. package/native/core/programmers/helpers/UnionExplorer.go +835 -835
  99. package/native/core/programmers/helpers/UnionPredicator.go +78 -78
  100. package/native/core/programmers/helpers/disable_function_programmer_declare.go +6 -6
  101. package/native/core/programmers/http/HttpAssertFormDataProgrammer.go +93 -93
  102. package/native/core/programmers/http/HttpAssertHeadersProgrammer.go +42 -42
  103. package/native/core/programmers/http/HttpAssertQueryProgrammer.go +51 -51
  104. package/native/core/programmers/http/HttpFormDataProgrammer.go +351 -351
  105. package/native/core/programmers/http/HttpHeadersProgrammer.go +370 -370
  106. package/native/core/programmers/http/HttpIsFormDataProgrammer.go +109 -109
  107. package/native/core/programmers/http/HttpIsHeadersProgrammer.go +36 -36
  108. package/native/core/programmers/http/HttpIsQueryProgrammer.go +45 -45
  109. package/native/core/programmers/http/HttpParameterProgrammer.go +158 -158
  110. package/native/core/programmers/http/HttpQueryProgrammer.go +422 -422
  111. package/native/core/programmers/http/HttpValidateFormDataProgrammer.go +87 -87
  112. package/native/core/programmers/http/HttpValidateHeadersProgrammer.go +39 -39
  113. package/native/core/programmers/http/HttpValidateQueryProgrammer.go +48 -48
  114. package/native/core/programmers/internal/CheckerProgrammer.go +1490 -1490
  115. package/native/core/programmers/internal/FeatureProgrammer.go +589 -589
  116. package/native/core/programmers/iterate/check_array_length.go +46 -46
  117. package/native/core/programmers/iterate/check_bigint.go +52 -52
  118. package/native/core/programmers/iterate/check_dynamic_key.go +220 -220
  119. package/native/core/programmers/iterate/check_dynamic_properties.go +245 -245
  120. package/native/core/programmers/iterate/check_everything.go +21 -21
  121. package/native/core/programmers/iterate/check_native.go +25 -25
  122. package/native/core/programmers/iterate/check_number.go +135 -135
  123. package/native/core/programmers/iterate/check_object.go +66 -66
  124. package/native/core/programmers/iterate/check_string.go +52 -52
  125. package/native/core/programmers/iterate/check_template.go +57 -57
  126. package/native/core/programmers/iterate/check_union_array_like.go +372 -372
  127. package/native/core/programmers/iterate/decode_union_object.go +118 -118
  128. package/native/core/programmers/iterate/feature_object_entries.go +134 -134
  129. package/native/core/programmers/iterate/json_schema_alias.go +52 -52
  130. package/native/core/programmers/iterate/json_schema_array.go +52 -52
  131. package/native/core/programmers/iterate/json_schema_bigint.go +8 -8
  132. package/native/core/programmers/iterate/json_schema_boolean.go +8 -8
  133. package/native/core/programmers/iterate/json_schema_constant.go +38 -38
  134. package/native/core/programmers/iterate/json_schema_description.go +12 -12
  135. package/native/core/programmers/iterate/json_schema_discriminator.go +47 -47
  136. package/native/core/programmers/iterate/json_schema_escaped.go +58 -58
  137. package/native/core/programmers/iterate/json_schema_jsDocTags.go +34 -34
  138. package/native/core/programmers/iterate/json_schema_native.go +43 -43
  139. package/native/core/programmers/iterate/json_schema_number.go +8 -8
  140. package/native/core/programmers/iterate/json_schema_object.go +149 -149
  141. package/native/core/programmers/iterate/json_schema_plugin.go +35 -35
  142. package/native/core/programmers/iterate/json_schema_station.go +211 -211
  143. package/native/core/programmers/iterate/json_schema_string.go +8 -8
  144. package/native/core/programmers/iterate/json_schema_template.go +53 -53
  145. package/native/core/programmers/iterate/json_schema_title.go +16 -16
  146. package/native/core/programmers/iterate/json_schema_tuple.go +34 -34
  147. package/native/core/programmers/iterate/metadata_to_pattern.go +53 -53
  148. package/native/core/programmers/iterate/postfix_of_tuple.go +5 -5
  149. package/native/core/programmers/iterate/prune_object_properties.go +85 -85
  150. package/native/core/programmers/iterate/stringify_dynamic_properties.go +193 -193
  151. package/native/core/programmers/iterate/stringify_native.go +1 -1
  152. package/native/core/programmers/iterate/stringify_regular_properties.go +84 -84
  153. package/native/core/programmers/iterate/template_to_pattern.go +20 -20
  154. package/native/core/programmers/iterate/wrap_metadata_rest_tuple.go +13 -13
  155. package/native/core/programmers/json/JsonApplicationProgrammer.go +323 -323
  156. package/native/core/programmers/json/JsonAssertParseProgrammer.go +100 -100
  157. package/native/core/programmers/json/JsonAssertStringifyProgrammer.go +88 -88
  158. package/native/core/programmers/json/JsonIsParseProgrammer.go +130 -130
  159. package/native/core/programmers/json/JsonIsStringifyProgrammer.go +92 -92
  160. package/native/core/programmers/json/JsonSchemaProgrammer.go +65 -65
  161. package/native/core/programmers/json/JsonSchemasProgrammer.go +116 -116
  162. package/native/core/programmers/json/JsonStringifyProgrammer.go +1245 -1245
  163. package/native/core/programmers/json/JsonValidateParseProgrammer.go +89 -89
  164. package/native/core/programmers/json/JsonValidateStringifyProgrammer.go +106 -106
  165. package/native/core/programmers/llm/LlmApplicationProgrammer.go +449 -437
  166. package/native/core/programmers/llm/LlmCoerceProgrammer.go +79 -79
  167. package/native/core/programmers/llm/LlmControllerProgrammer.go +35 -35
  168. package/native/core/programmers/llm/LlmMetadataFactory.go +74 -74
  169. package/native/core/programmers/llm/LlmParametersProgrammer.go +105 -132
  170. package/native/core/programmers/llm/LlmParseProgrammer.go +88 -88
  171. package/native/core/programmers/llm/LlmSchemaProgrammer.go +780 -423
  172. package/native/core/programmers/llm/LlmStructuredOutputProgrammer.go +123 -123
  173. package/native/core/programmers/misc/MiscAssertCloneProgrammer.go +82 -82
  174. package/native/core/programmers/misc/MiscAssertPruneProgrammer.go +97 -97
  175. package/native/core/programmers/misc/MiscCloneProgrammer.go +1056 -1056
  176. package/native/core/programmers/misc/MiscIsCloneProgrammer.go +94 -94
  177. package/native/core/programmers/misc/MiscIsPruneProgrammer.go +86 -86
  178. package/native/core/programmers/misc/MiscLiteralsProgrammer.go +99 -99
  179. package/native/core/programmers/misc/MiscPruneProgrammer.go +700 -700
  180. package/native/core/programmers/misc/MiscValidateCloneProgrammer.go +103 -103
  181. package/native/core/programmers/misc/MiscValidatePruneProgrammer.go +94 -94
  182. package/native/core/programmers/notations/NotationAssertGeneralProgrammer.go +85 -85
  183. package/native/core/programmers/notations/NotationGeneralProgrammer.go +1188 -1188
  184. package/native/core/programmers/notations/NotationIsGeneralProgrammer.go +90 -90
  185. package/native/core/programmers/notations/NotationValidateGeneralProgrammer.go +109 -109
  186. package/native/core/programmers/protobuf/ProtobufAssertDecodeProgrammer.go +99 -99
  187. package/native/core/programmers/protobuf/ProtobufAssertEncodeProgrammer.go +114 -114
  188. package/native/core/programmers/protobuf/ProtobufDecodeProgrammer.go +697 -697
  189. package/native/core/programmers/protobuf/ProtobufEncodeProgrammer.go +1039 -1039
  190. package/native/core/programmers/protobuf/ProtobufIsDecodeProgrammer.go +99 -99
  191. package/native/core/programmers/protobuf/ProtobufIsEncodeProgrammer.go +93 -93
  192. package/native/core/programmers/protobuf/ProtobufMessageProgrammer.go +228 -228
  193. package/native/core/programmers/protobuf/ProtobufValidateDecodeProgrammer.go +88 -88
  194. package/native/core/programmers/protobuf/ProtobufValidateEncodeProgrammer.go +120 -120
  195. package/native/core/schemas/metadata/IMetadataDictionary.go +4 -4
  196. package/native/core/schemas/metadata/MetadataAlias.go +15 -15
  197. package/native/core/schemas/metadata/MetadataAliasType.go +36 -36
  198. package/native/core/schemas/metadata/MetadataApplication.go +25 -25
  199. package/native/core/schemas/metadata/MetadataArray.go +15 -15
  200. package/native/core/schemas/metadata/MetadataArrayType.go +31 -31
  201. package/native/core/schemas/metadata/MetadataAtomic.go +45 -45
  202. package/native/core/schemas/metadata/MetadataCollection.go +380 -380
  203. package/native/core/schemas/metadata/MetadataComponents.go +95 -95
  204. package/native/core/schemas/metadata/MetadataConstant.go +31 -31
  205. package/native/core/schemas/metadata/MetadataConstantValue.go +63 -63
  206. package/native/core/schemas/metadata/MetadataEscaped.go +17 -17
  207. package/native/core/schemas/metadata/MetadataFunction.go +30 -30
  208. package/native/core/schemas/metadata/MetadataMap.go +21 -21
  209. package/native/core/schemas/metadata/MetadataNative.go +48 -48
  210. package/native/core/schemas/metadata/MetadataObject.go +15 -15
  211. package/native/core/schemas/metadata/MetadataObjectType.go +116 -116
  212. package/native/core/schemas/metadata/MetadataParameter.go +28 -28
  213. package/native/core/schemas/metadata/MetadataProperty.go +32 -32
  214. package/native/core/schemas/metadata/MetadataSchema.go +766 -766
  215. package/native/core/schemas/metadata/MetadataSet.go +17 -17
  216. package/native/core/schemas/metadata/MetadataTemplate.go +43 -43
  217. package/native/core/schemas/metadata/MetadataTuple.go +10 -10
  218. package/native/core/schemas/metadata/MetadataTupleType.go +38 -38
  219. package/native/core/schemas/protobuf/IProtobufProperty.go +2 -2
  220. package/native/core/schemas/protobuf/IProtobufPropertyType.go +18 -18
  221. package/native/core/schemas/protobuf/IProtobufSchema.go +17 -17
  222. package/native/core/typings/Writable.go +1 -1
  223. package/native/core/utils/PatternUtil.go +38 -38
  224. package/native/core/utils/ProtobufNameEncoder.go +28 -28
  225. package/native/shim/printer/shim.go +213 -213
  226. package/native/third_party/ttsc/driver/host.go +7 -7
  227. package/native/third_party/ttsc/driver/program.go +275 -275
  228. package/native/third_party/ttsc/driver/rewrite.go +219 -219
  229. package/native/third_party/ttsc/shim/ast/lint.go +171 -171
  230. package/native/third_party/ttsc/shim/ast/shim.go +83 -83
  231. package/native/third_party/ttsc/shim/bundled/shim.go +5 -1
  232. package/native/third_party/ttsc/shim/checker/shim.go +79 -79
  233. package/native/third_party/ttsc/shim/compiler/shim.go +16 -1
  234. package/native/third_party/ttsc/shim/core/shim.go +10 -10
  235. package/native/third_party/ttsc/shim/diagnosticwriter/lint.go +79 -79
  236. package/native/third_party/ttsc/shim/diagnosticwriter/shim.go +19 -19
  237. package/native/third_party/ttsc/shim/parser/shim.go +7 -1
  238. package/native/third_party/ttsc/shim/scanner/shim.go +39 -1
  239. package/native/third_party/ttsc/shim/tsoptions/shim.go +51 -1
  240. package/native/third_party/ttsc/shim/tspath/shim.go +72 -1
  241. package/native/third_party/ttsc/shim/vfs/cachedvfs/shim.go +1 -1
  242. package/native/third_party/ttsc/shim/vfs/osvfs/shim.go +1 -1
  243. package/native/third_party/ttsc/shim/vfs/shim.go +4 -1
  244. package/native/transform/CallExpressionTransformer.go +556 -556
  245. package/native/transform/FileTransformer.go +123 -123
  246. package/native/transform/ImportTransformer.go +224 -224
  247. package/native/transform/NodeTransformer.go +11 -11
  248. package/native/transform/TypiaGenerator.go +136 -136
  249. package/native/transform/features/AssertTransformer.go +28 -28
  250. package/native/transform/features/CreateAssertTransformer.go +28 -28
  251. package/native/transform/features/CreateIsTransformer.go +24 -24
  252. package/native/transform/features/CreateRandomTransformer.go +35 -35
  253. package/native/transform/features/CreateValidateTransformer.go +24 -24
  254. package/native/transform/features/IsTransformer.go +24 -24
  255. package/native/transform/features/RandomTransformer.go +37 -37
  256. package/native/transform/features/ValidateTransformer.go +24 -24
  257. package/native/transform/features/functional/FunctionalGenericTransformer.go +48 -48
  258. package/native/transform/features/http/CreateHttpAssertFormDataTransformer.go +11 -11
  259. package/native/transform/features/http/CreateHttpAssertHeadersTransformer.go +11 -11
  260. package/native/transform/features/http/CreateHttpAssertQueryTransformer.go +17 -17
  261. package/native/transform/features/http/CreateHttpFormDataTransformer.go +11 -11
  262. package/native/transform/features/http/CreateHttpHeadersTransformer.go +11 -11
  263. package/native/transform/features/http/CreateHttpIsFormDataTransformer.go +11 -11
  264. package/native/transform/features/http/CreateHttpIsHeadersTransformer.go +11 -11
  265. package/native/transform/features/http/CreateHttpIsQueryTransformer.go +17 -17
  266. package/native/transform/features/http/CreateHttpParameterTransformer.go +11 -11
  267. package/native/transform/features/http/CreateHttpQueryTransformer.go +17 -17
  268. package/native/transform/features/http/CreateHttpValidateFormDataTransformer.go +11 -11
  269. package/native/transform/features/http/CreateHttpValidateHeadersTransformer.go +11 -11
  270. package/native/transform/features/http/CreateHttpValidateQueryTransformer.go +17 -17
  271. package/native/transform/features/http/HttpAssertFormDataTransformer.go +11 -11
  272. package/native/transform/features/http/HttpAssertHeadersTransformer.go +11 -11
  273. package/native/transform/features/http/HttpAssertQueryTransformer.go +17 -17
  274. package/native/transform/features/http/HttpFormDataTransformer.go +11 -11
  275. package/native/transform/features/http/HttpHeadersTransformer.go +11 -11
  276. package/native/transform/features/http/HttpIsFormDataTransformer.go +11 -11
  277. package/native/transform/features/http/HttpIsHeadersTransformer.go +11 -11
  278. package/native/transform/features/http/HttpIsQueryTransformer.go +17 -17
  279. package/native/transform/features/http/HttpParameterTransformer.go +11 -11
  280. package/native/transform/features/http/HttpQueryTransformer.go +17 -17
  281. package/native/transform/features/http/HttpValidateFormDataTransformer.go +11 -11
  282. package/native/transform/features/http/HttpValidateHeadersTransformer.go +11 -11
  283. package/native/transform/features/http/HttpValidateQueryTransformer.go +17 -17
  284. package/native/transform/features/json/JsonApplicationTransformer.go +61 -61
  285. package/native/transform/features/json/JsonAssertParseTransformer.go +11 -11
  286. package/native/transform/features/json/JsonAssertStringifyTransformer.go +11 -11
  287. package/native/transform/features/json/JsonCreateAssertParseTransformer.go +11 -11
  288. package/native/transform/features/json/JsonCreateAssertStringifyTransformer.go +11 -11
  289. package/native/transform/features/json/JsonCreateIsParseTransformer.go +11 -11
  290. package/native/transform/features/json/JsonCreateIsStringifyTransformer.go +11 -11
  291. package/native/transform/features/json/JsonCreateStringifyTransformer.go +11 -11
  292. package/native/transform/features/json/JsonCreateValidateParseTransformer.go +11 -11
  293. package/native/transform/features/json/JsonCreateValidateStringifyProgrammer.go +11 -11
  294. package/native/transform/features/json/JsonIsParseTransformer.go +11 -11
  295. package/native/transform/features/json/JsonIsStringifyTransformer.go +11 -11
  296. package/native/transform/features/json/JsonSchemaTransformer.go +148 -148
  297. package/native/transform/features/json/JsonSchemasTransformer.go +94 -94
  298. package/native/transform/features/json/JsonStringifyTransformer.go +11 -11
  299. package/native/transform/features/json/JsonValidateParseTransformer.go +11 -11
  300. package/native/transform/features/json/JsonValidateStringifyTransformer.go +11 -11
  301. package/native/transform/features/llm/LlmApplicationTransformer.go +43 -43
  302. package/native/transform/features/llm/LlmCoerceTransformer.go +50 -50
  303. package/native/transform/features/llm/LlmControllerTransformer.go +48 -48
  304. package/native/transform/features/llm/LlmCreateCoerceTransformer.go +43 -43
  305. package/native/transform/features/llm/LlmCreateParseTransformer.go +43 -43
  306. package/native/transform/features/llm/LlmParametersTransformer.go +38 -38
  307. package/native/transform/features/llm/LlmParseTransformer.go +50 -50
  308. package/native/transform/features/llm/LlmSchemaTransformer.go +129 -129
  309. package/native/transform/features/llm/LlmStructuredOutputTransformer.go +44 -44
  310. package/native/transform/features/misc/MiscAssertCloneTransformer.go +11 -11
  311. package/native/transform/features/misc/MiscAssertPruneTransformer.go +11 -11
  312. package/native/transform/features/misc/MiscCloneTransformer.go +11 -11
  313. package/native/transform/features/misc/MiscCreateAssertCloneTransformer.go +11 -11
  314. package/native/transform/features/misc/MiscCreateAssertPruneTransformer.go +11 -11
  315. package/native/transform/features/misc/MiscCreateCloneTransformer.go +11 -11
  316. package/native/transform/features/misc/MiscCreateIsCloneTransformer.go +11 -11
  317. package/native/transform/features/misc/MiscCreateIsPruneTransformer.go +11 -11
  318. package/native/transform/features/misc/MiscCreatePruneTransformer.go +11 -11
  319. package/native/transform/features/misc/MiscCreateValidateCloneTransformer.go +11 -11
  320. package/native/transform/features/misc/MiscCreateValidatePruneTransformer.go +11 -11
  321. package/native/transform/features/misc/MiscIsCloneTransformer.go +11 -11
  322. package/native/transform/features/misc/MiscIsPruneTransformer.go +11 -11
  323. package/native/transform/features/misc/MiscLiteralsTransformer.go +21 -21
  324. package/native/transform/features/misc/MiscPruneTransformer.go +11 -11
  325. package/native/transform/features/misc/MiscValidateCloneTransformer.go +11 -11
  326. package/native/transform/features/misc/MiscValidatePruneTransformer.go +11 -11
  327. package/native/transform/features/notations/NotationAssertGeneralTransformer.go +16 -16
  328. package/native/transform/features/notations/NotationCreateAssertGeneralTransformer.go +16 -16
  329. package/native/transform/features/notations/NotationCreateGeneralTransformer.go +16 -16
  330. package/native/transform/features/notations/NotationCreateIsGeneralTransformer.go +16 -16
  331. package/native/transform/features/notations/NotationCreateValidateGeneralTransformer.go +16 -16
  332. package/native/transform/features/notations/NotationGeneralTransformer.go +21 -21
  333. package/native/transform/features/notations/NotationIsGeneralTransformer.go +16 -16
  334. package/native/transform/features/notations/NotationValidateGeneralTransformer.go +16 -16
  335. package/native/transform/features/protobuf/ProtobufAssertDecodeTransformer.go +11 -11
  336. package/native/transform/features/protobuf/ProtobufAssertEncodeTransformer.go +11 -11
  337. package/native/transform/features/protobuf/ProtobufCreateAssertDecodeTransformer.go +11 -11
  338. package/native/transform/features/protobuf/ProtobufCreateAssertEncodeTransformer.go +11 -11
  339. package/native/transform/features/protobuf/ProtobufCreateDecodeTransformer.go +11 -11
  340. package/native/transform/features/protobuf/ProtobufCreateEncodeTransformer.go +11 -11
  341. package/native/transform/features/protobuf/ProtobufCreateIsDecodeTransformer.go +11 -11
  342. package/native/transform/features/protobuf/ProtobufCreateIsEncodeTransformer.go +11 -11
  343. package/native/transform/features/protobuf/ProtobufCreateValidateDecodeTransformer.go +11 -11
  344. package/native/transform/features/protobuf/ProtobufCreateValidateEncodeTransformer.go +11 -11
  345. package/native/transform/features/protobuf/ProtobufDecodeTransformer.go +11 -11
  346. package/native/transform/features/protobuf/ProtobufEncodeTransformer.go +11 -11
  347. package/native/transform/features/protobuf/ProtobufIsDecodeTransformer.go +11 -11
  348. package/native/transform/features/protobuf/ProtobufIsEncodeTransformer.go +11 -11
  349. package/native/transform/features/protobuf/ProtobufMessageTransformer.go +20 -20
  350. package/native/transform/features/protobuf/ProtobufValidateDecodeTransformer.go +11 -11
  351. package/native/transform/features/protobuf/ProtobufValidateEncodeTransformer.go +11 -11
  352. package/native/transform/features/reflect/ReflectMetadataTransformer.go +59 -59
  353. package/native/transform/features/reflect/ReflectNameTransformer.go +78 -78
  354. package/native/transform/features/reflect/ReflectSchemaTransformer.go +121 -121
  355. package/native/transform/features/reflect/ReflectSchemasTransformer.go +55 -55
  356. package/native/transform/internal/GenericTransformer.go +173 -173
  357. package/native/transform/transform.go +32 -32
  358. package/package.json +4 -4
  359. package/src/executable/TypiaGenerateWizard.ts +78 -9
  360. package/src/executable/generate/ttsc.ts +2 -3
  361. package/src/executable/setup/PluginConfigurator.ts +2 -3
  362. package/src/internal/_randomInteger.ts +5 -5
  363. package/src/internal/_validateReport.ts +1 -2
  364. package/src/transform.ts +6 -11
@@ -1,18 +1,18 @@
1
1
  package json
2
2
 
3
3
  import (
4
- "fmt"
5
- "strings"
4
+ "fmt"
5
+ "strings"
6
6
 
7
- shimast "github.com/microsoft/typescript-go/shim/ast"
8
- shimchecker "github.com/microsoft/typescript-go/shim/checker"
9
- nativecontext "github.com/samchon/typia/packages/typia/native/core/context"
10
- nativefactories "github.com/samchon/typia/packages/typia/native/core/factories"
11
- nativeprogrammers "github.com/samchon/typia/packages/typia/native/core/programmers"
12
- nativehelpers "github.com/samchon/typia/packages/typia/native/core/programmers/helpers"
13
- nativeinternal "github.com/samchon/typia/packages/typia/native/core/programmers/internal"
14
- nativeiterate "github.com/samchon/typia/packages/typia/native/core/programmers/iterate"
15
- schemametadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
7
+ shimast "github.com/microsoft/typescript-go/shim/ast"
8
+ shimchecker "github.com/microsoft/typescript-go/shim/checker"
9
+ nativecontext "github.com/samchon/typia/packages/typia/native/core/context"
10
+ nativefactories "github.com/samchon/typia/packages/typia/native/core/factories"
11
+ nativeprogrammers "github.com/samchon/typia/packages/typia/native/core/programmers"
12
+ nativehelpers "github.com/samchon/typia/packages/typia/native/core/programmers/helpers"
13
+ nativeinternal "github.com/samchon/typia/packages/typia/native/core/programmers/internal"
14
+ nativeiterate "github.com/samchon/typia/packages/typia/native/core/programmers/iterate"
15
+ schemametadata "github.com/samchon/typia/packages/typia/native/core/schemas/metadata"
16
16
  )
17
17
 
18
18
  type jsonStringifyProgrammerNamespace struct{}
@@ -20,11 +20,11 @@ type jsonStringifyProgrammerNamespace struct{}
20
20
  var JsonStringifyProgrammer = jsonStringifyProgrammerNamespace{}
21
21
 
22
22
  type JsonStringifyProgrammer_DecomposeProps struct {
23
- Validated bool
24
- Context nativecontext.ITypiaContext
25
- Functor *nativehelpers.FunctionProgrammer
26
- Type *shimchecker.Type
27
- Name *string
23
+ Validated bool
24
+ Context nativecontext.ITypiaContext
25
+ Functor *nativehelpers.FunctionProgrammer
26
+ Type *shimchecker.Type
27
+ Name *string
28
28
  }
29
29
 
30
30
  const jsonStringifyProgrammer_PREFIX = "_s"
@@ -32,1392 +32,1392 @@ const jsonStringifyProgrammer_PREFIX = "_s"
32
32
  var jsonStringifyProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
33
33
 
34
34
  func (jsonStringifyProgrammerNamespace) Decompose(props JsonStringifyProgrammer_DecomposeProps) nativeinternal.FeatureProgrammer_IDecomposed {
35
- config := jsonStringifyProgrammer_configure(struct {
36
- Context nativecontext.ITypiaContext
37
- Functor *nativehelpers.FunctionProgrammer
38
- Validated bool
39
- }{
40
- Context: props.Context,
41
- Functor: props.Functor,
42
- Validated: props.Validated,
43
- })
44
- if props.Validated == false {
45
- config.Addition = func(collection *schemametadata.MetadataCollection) []*shimast.Node {
46
- return nativeprogrammers.IsProgrammer.Write_function_statements(nativeprogrammers.IsProgrammer_WriteFunctionStatementsProps{
47
- Context: props.Context,
48
- Functor: props.Functor,
49
- Collection: collection,
50
- })
51
- }
52
- }
53
- composed := nativeinternal.FeatureProgrammer.Compose(nativeinternal.FeatureProgrammer_ComposeProps{
54
- Context: props.Context,
55
- Config: config,
56
- Functor: props.Functor,
57
- Type: props.Type,
58
- Name: props.Name,
59
- })
60
- return nativeinternal.FeatureProgrammer_IDecomposed{
61
- Functions: composed.Functions,
62
- Statements: composed.Statements,
63
- Arrow: jsonStringifyProgrammer_factory.NewArrowFunction(
64
- nil,
65
- nil,
66
- jsonStringifyProgrammer_factory.NewNodeList(composed.Parameters),
67
- composed.Response,
68
- nil,
69
- jsonStringifyProgrammer_factory.NewToken(shimast.KindEqualsGreaterThanToken),
70
- composed.Body,
71
- ),
72
- }
35
+ config := jsonStringifyProgrammer_configure(struct {
36
+ Context nativecontext.ITypiaContext
37
+ Functor *nativehelpers.FunctionProgrammer
38
+ Validated bool
39
+ }{
40
+ Context: props.Context,
41
+ Functor: props.Functor,
42
+ Validated: props.Validated,
43
+ })
44
+ if props.Validated == false {
45
+ config.Addition = func(collection *schemametadata.MetadataCollection) []*shimast.Node {
46
+ return nativeprogrammers.IsProgrammer.Write_function_statements(nativeprogrammers.IsProgrammer_WriteFunctionStatementsProps{
47
+ Context: props.Context,
48
+ Functor: props.Functor,
49
+ Collection: collection,
50
+ })
51
+ }
52
+ }
53
+ composed := nativeinternal.FeatureProgrammer.Compose(nativeinternal.FeatureProgrammer_ComposeProps{
54
+ Context: props.Context,
55
+ Config: config,
56
+ Functor: props.Functor,
57
+ Type: props.Type,
58
+ Name: props.Name,
59
+ })
60
+ return nativeinternal.FeatureProgrammer_IDecomposed{
61
+ Functions: composed.Functions,
62
+ Statements: composed.Statements,
63
+ Arrow: jsonStringifyProgrammer_factory.NewArrowFunction(
64
+ nil,
65
+ nil,
66
+ jsonStringifyProgrammer_factory.NewNodeList(composed.Parameters),
67
+ composed.Response,
68
+ nil,
69
+ jsonStringifyProgrammer_factory.NewToken(shimast.KindEqualsGreaterThanToken),
70
+ composed.Body,
71
+ ),
72
+ }
73
73
  }
74
74
 
75
75
  func (jsonStringifyProgrammerNamespace) Write(props nativecontext.IProgrammerProps) *shimast.Node {
76
- functor := nativehelpers.NewFunctionProgrammer(jsonStringifyProgrammer_method_text(props.Modulo))
77
- result := JsonStringifyProgrammer.Decompose(JsonStringifyProgrammer_DecomposeProps{
78
- Context: props.Context,
79
- Functor: functor,
80
- Type: props.Type,
81
- Name: props.Name,
82
- Validated: false,
83
- })
84
- return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{
85
- Modulo: props.Modulo,
86
- Functor: functor,
87
- Result: result,
88
- })
76
+ functor := nativehelpers.NewFunctionProgrammer(jsonStringifyProgrammer_method_text(props.Modulo))
77
+ result := JsonStringifyProgrammer.Decompose(JsonStringifyProgrammer_DecomposeProps{
78
+ Context: props.Context,
79
+ Functor: functor,
80
+ Type: props.Type,
81
+ Name: props.Name,
82
+ Validated: false,
83
+ })
84
+ return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{
85
+ Modulo: props.Modulo,
86
+ Functor: functor,
87
+ Result: result,
88
+ })
89
89
  }
90
90
 
91
91
  func jsonStringifyProgrammer_write_array_functions(props struct {
92
- Config nativeinternal.FeatureProgrammer_IConfig
93
- Functor *nativehelpers.FunctionProgrammer
94
- Collection *schemametadata.MetadataCollection
92
+ Config nativeinternal.FeatureProgrammer_IConfig
93
+ Functor *nativehelpers.FunctionProgrammer
94
+ Collection *schemametadata.MetadataCollection
95
95
  }) []*shimast.Node {
96
- output := []*shimast.Node{}
97
- for i, typ := range props.Collection.Arrays() {
98
- if typ.Recursive == false {
99
- continue
100
- }
101
- output = append(output, nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
102
- Name: fmt.Sprintf("%sa%d", props.Config.Prefix, i),
103
- Value: jsonStringifyProgrammer_factory.NewArrowFunction(
104
- nil,
105
- nil,
106
- jsonStringifyProgrammer_factory.NewNodeList(nativeinternal.FeatureProgrammer.ParameterDeclarations(nativeinternal.FeatureProgrammer_ParameterDeclarationsProps{
107
- Config: nativeinternal.FeatureProgrammer_ParameterConfig{Path: props.Config.Path, Trace: props.Config.Trace},
108
- Type: nativefactories.TypeFactory.Keyword("any"),
109
- Input: jsonStringifyProgrammer_factory.NewIdentifier("input"),
110
- })),
111
- nativefactories.TypeFactory.Keyword("any"),
112
- nil,
113
- jsonStringifyProgrammer_factory.NewToken(shimast.KindEqualsGreaterThanToken),
114
- jsonStringifyProgrammer_decode_array_inline(jsonStringifyProgrammer_decodeArrayProps{
115
- Config: props.Config,
116
- Functor: props.Functor,
117
- Input: jsonStringifyProgrammer_factory.NewIdentifier("input"),
118
- Array: schemametadata.MetadataArray_create(schemametadata.MetadataArray{
119
- Type: typ,
120
- Tags: [][]schemametadata.IMetadataTypeTag{},
121
- }),
122
- Explore: nativeinternal.FeatureProgrammer_IExplore{
123
- Tracable: props.Config.Trace,
124
- Source: "function",
125
- From: "array",
126
- Postfix: "",
127
- },
128
- }),
129
- ),
130
- }))
131
- }
132
- return output
96
+ output := []*shimast.Node{}
97
+ for i, typ := range props.Collection.Arrays() {
98
+ if typ.Recursive == false {
99
+ continue
100
+ }
101
+ output = append(output, nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
102
+ Name: fmt.Sprintf("%sa%d", props.Config.Prefix, i),
103
+ Value: jsonStringifyProgrammer_factory.NewArrowFunction(
104
+ nil,
105
+ nil,
106
+ jsonStringifyProgrammer_factory.NewNodeList(nativeinternal.FeatureProgrammer.ParameterDeclarations(nativeinternal.FeatureProgrammer_ParameterDeclarationsProps{
107
+ Config: nativeinternal.FeatureProgrammer_ParameterConfig{Path: props.Config.Path, Trace: props.Config.Trace},
108
+ Type: nativefactories.TypeFactory.Keyword("any"),
109
+ Input: jsonStringifyProgrammer_factory.NewIdentifier("input"),
110
+ })),
111
+ nativefactories.TypeFactory.Keyword("any"),
112
+ nil,
113
+ jsonStringifyProgrammer_factory.NewToken(shimast.KindEqualsGreaterThanToken),
114
+ jsonStringifyProgrammer_decode_array_inline(jsonStringifyProgrammer_decodeArrayProps{
115
+ Config: props.Config,
116
+ Functor: props.Functor,
117
+ Input: jsonStringifyProgrammer_factory.NewIdentifier("input"),
118
+ Array: schemametadata.MetadataArray_create(schemametadata.MetadataArray{
119
+ Type: typ,
120
+ Tags: [][]schemametadata.IMetadataTypeTag{},
121
+ }),
122
+ Explore: nativeinternal.FeatureProgrammer_IExplore{
123
+ Tracable: props.Config.Trace,
124
+ Source: "function",
125
+ From: "array",
126
+ Postfix: "",
127
+ },
128
+ }),
129
+ ),
130
+ }))
131
+ }
132
+ return output
133
133
  }
134
134
 
135
135
  func jsonStringifyProgrammer_write_tuple_functions(props struct {
136
- Context nativecontext.ITypiaContext
137
- Config nativeinternal.FeatureProgrammer_IConfig
138
- Functor *nativehelpers.FunctionProgrammer
139
- Collection *schemametadata.MetadataCollection
140
- Validated bool
136
+ Context nativecontext.ITypiaContext
137
+ Config nativeinternal.FeatureProgrammer_IConfig
138
+ Functor *nativehelpers.FunctionProgrammer
139
+ Collection *schemametadata.MetadataCollection
140
+ Validated bool
141
141
  }) []*shimast.Node {
142
- output := []*shimast.Node{}
143
- for i, tuple := range props.Collection.Tuples() {
144
- if tuple.Recursive == false {
145
- continue
146
- }
147
- output = append(output, nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
148
- Name: fmt.Sprintf("%st%d", props.Config.Prefix, i),
149
- Value: jsonStringifyProgrammer_factory.NewArrowFunction(
150
- nil,
151
- nil,
152
- jsonStringifyProgrammer_factory.NewNodeList(nativeinternal.FeatureProgrammer.ParameterDeclarations(nativeinternal.FeatureProgrammer_ParameterDeclarationsProps{
153
- Config: nativeinternal.FeatureProgrammer_ParameterConfig{Path: props.Config.Path, Trace: props.Config.Trace},
154
- Type: nativefactories.TypeFactory.Keyword("any"),
155
- Input: jsonStringifyProgrammer_factory.NewIdentifier("input"),
156
- })),
157
- nativefactories.TypeFactory.Keyword("any"),
158
- nil,
159
- jsonStringifyProgrammer_factory.NewToken(shimast.KindEqualsGreaterThanToken),
160
- jsonStringifyProgrammer_decode_tuple_inline(jsonStringifyProgrammer_decodeTupleInlineProps{
161
- Context: props.Context,
162
- Config: props.Config,
163
- Functor: props.Functor,
164
- Input: jsonStringifyProgrammer_factory.NewIdentifier("input"),
165
- Tuple: tuple,
166
- Explore: nativeinternal.FeatureProgrammer_IExplore{Tracable: props.Config.Trace, Source: "function", From: "array", Postfix: ""},
167
- Validated: props.Validated,
168
- }),
169
- ),
170
- }))
171
- }
172
- return output
142
+ output := []*shimast.Node{}
143
+ for i, tuple := range props.Collection.Tuples() {
144
+ if tuple.Recursive == false {
145
+ continue
146
+ }
147
+ output = append(output, nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
148
+ Name: fmt.Sprintf("%st%d", props.Config.Prefix, i),
149
+ Value: jsonStringifyProgrammer_factory.NewArrowFunction(
150
+ nil,
151
+ nil,
152
+ jsonStringifyProgrammer_factory.NewNodeList(nativeinternal.FeatureProgrammer.ParameterDeclarations(nativeinternal.FeatureProgrammer_ParameterDeclarationsProps{
153
+ Config: nativeinternal.FeatureProgrammer_ParameterConfig{Path: props.Config.Path, Trace: props.Config.Trace},
154
+ Type: nativefactories.TypeFactory.Keyword("any"),
155
+ Input: jsonStringifyProgrammer_factory.NewIdentifier("input"),
156
+ })),
157
+ nativefactories.TypeFactory.Keyword("any"),
158
+ nil,
159
+ jsonStringifyProgrammer_factory.NewToken(shimast.KindEqualsGreaterThanToken),
160
+ jsonStringifyProgrammer_decode_tuple_inline(jsonStringifyProgrammer_decodeTupleInlineProps{
161
+ Context: props.Context,
162
+ Config: props.Config,
163
+ Functor: props.Functor,
164
+ Input: jsonStringifyProgrammer_factory.NewIdentifier("input"),
165
+ Tuple: tuple,
166
+ Explore: nativeinternal.FeatureProgrammer_IExplore{Tracable: props.Config.Trace, Source: "function", From: "array", Postfix: ""},
167
+ Validated: props.Validated,
168
+ }),
169
+ ),
170
+ }))
171
+ }
172
+ return output
173
173
  }
174
174
 
175
175
  func jsonStringifyProgrammer_decode(props struct {
176
- Context nativecontext.ITypiaContext
177
- Config nativeinternal.FeatureProgrammer_IConfig
178
- Functor *nativehelpers.FunctionProgrammer
179
- Input *shimast.Node
180
- Metadata *schemametadata.MetadataSchema
181
- Explore nativeinternal.FeatureProgrammer_IExplore
182
- Validated bool
176
+ Context nativecontext.ITypiaContext
177
+ Config nativeinternal.FeatureProgrammer_IConfig
178
+ Functor *nativehelpers.FunctionProgrammer
179
+ Input *shimast.Node
180
+ Metadata *schemametadata.MetadataSchema
181
+ Explore nativeinternal.FeatureProgrammer_IExplore
182
+ Validated bool
183
183
  }) *shimast.Node {
184
- if props.Metadata.Any {
185
- return jsonStringifyProgrammer_wrap_required(struct {
186
- Input *shimast.Node
187
- Metadata *schemametadata.MetadataSchema
188
- Explore nativeinternal.FeatureProgrammer_IExplore
189
- Expression *shimast.Node
190
- }{
191
- Input: props.Input,
192
- Metadata: props.Metadata,
193
- Explore: props.Explore,
194
- Expression: jsonStringifyProgrammer_wrap_functional(struct {
195
- Input *shimast.Node
196
- Metadata *schemametadata.MetadataSchema
197
- Explore nativeinternal.FeatureProgrammer_IExplore
198
- Expression *shimast.Node
199
- }{
200
- Input: props.Input,
201
- Metadata: props.Metadata,
202
- Explore: props.Explore,
203
- Expression: jsonStringifyProgrammer_factory.NewCallExpression(
204
- jsonStringifyProgrammer_factory.NewIdentifier("JSON.stringify"),
205
- nil,
206
- nil,
207
- jsonStringifyProgrammer_factory.NewNodeList([]*shimast.Node{props.Input}),
208
- shimast.NodeFlagsNone,
209
- ),
210
- }),
211
- })
212
- }
184
+ if props.Metadata.Any {
185
+ return jsonStringifyProgrammer_wrap_required(struct {
186
+ Input *shimast.Node
187
+ Metadata *schemametadata.MetadataSchema
188
+ Explore nativeinternal.FeatureProgrammer_IExplore
189
+ Expression *shimast.Node
190
+ }{
191
+ Input: props.Input,
192
+ Metadata: props.Metadata,
193
+ Explore: props.Explore,
194
+ Expression: jsonStringifyProgrammer_wrap_functional(struct {
195
+ Input *shimast.Node
196
+ Metadata *schemametadata.MetadataSchema
197
+ Explore nativeinternal.FeatureProgrammer_IExplore
198
+ Expression *shimast.Node
199
+ }{
200
+ Input: props.Input,
201
+ Metadata: props.Metadata,
202
+ Explore: props.Explore,
203
+ Expression: jsonStringifyProgrammer_factory.NewCallExpression(
204
+ jsonStringifyProgrammer_factory.NewIdentifier("JSON.stringify"),
205
+ nil,
206
+ nil,
207
+ jsonStringifyProgrammer_factory.NewNodeList([]*shimast.Node{props.Input}),
208
+ shimast.NodeFlagsNone,
209
+ ),
210
+ }),
211
+ })
212
+ }
213
213
 
214
- size := props.Metadata.Size()
215
- if size == 0 && (props.Metadata.IsRequired() == false || props.Metadata.Nullable) {
216
- if props.Metadata.IsRequired() == false && props.Metadata.Nullable {
217
- if props.Explore.From == "array" {
218
- return jsonStringifyProgrammer_factory.NewStringLiteral("null", shimast.TokenFlagsNone)
219
- }
220
- return jsonStringifyProgrammer_factory.NewConditionalExpression(
221
- jsonStringifyProgrammer_binary(jsonStringifyProgrammer_factory.NewKeywordExpression(shimast.KindNullKeyword), shimast.KindEqualsEqualsEqualsToken, props.Input),
222
- nil,
223
- jsonStringifyProgrammer_factory.NewStringLiteral("null", shimast.TokenFlagsNone),
224
- nil,
225
- jsonStringifyProgrammer_factory.NewIdentifier("undefined"),
226
- )
227
- } else if props.Metadata.IsRequired() == false {
228
- if props.Explore.From == "array" {
229
- return jsonStringifyProgrammer_factory.NewStringLiteral("null", shimast.TokenFlagsNone)
230
- }
231
- return jsonStringifyProgrammer_factory.NewIdentifier("undefined")
232
- }
233
- return jsonStringifyProgrammer_factory.NewStringLiteral("null", shimast.TokenFlagsNone)
234
- }
214
+ size := props.Metadata.Size()
215
+ if size == 0 && (props.Metadata.IsRequired() == false || props.Metadata.Nullable) {
216
+ if props.Metadata.IsRequired() == false && props.Metadata.Nullable {
217
+ if props.Explore.From == "array" {
218
+ return jsonStringifyProgrammer_factory.NewStringLiteral("null", shimast.TokenFlagsNone)
219
+ }
220
+ return jsonStringifyProgrammer_factory.NewConditionalExpression(
221
+ jsonStringifyProgrammer_binary(jsonStringifyProgrammer_factory.NewKeywordExpression(shimast.KindNullKeyword), shimast.KindEqualsEqualsEqualsToken, props.Input),
222
+ nil,
223
+ jsonStringifyProgrammer_factory.NewStringLiteral("null", shimast.TokenFlagsNone),
224
+ nil,
225
+ jsonStringifyProgrammer_factory.NewIdentifier("undefined"),
226
+ )
227
+ } else if props.Metadata.IsRequired() == false {
228
+ if props.Explore.From == "array" {
229
+ return jsonStringifyProgrammer_factory.NewStringLiteral("null", shimast.TokenFlagsNone)
230
+ }
231
+ return jsonStringifyProgrammer_factory.NewIdentifier("undefined")
232
+ }
233
+ return jsonStringifyProgrammer_factory.NewStringLiteral("null", shimast.TokenFlagsNone)
234
+ }
235
235
 
236
- unions := []jsonStringifyProgrammer_IUnion{}
237
- if props.Metadata.Escaped != nil {
238
- metadata := props.Metadata.Escaped.Returns
239
- isDate := props.Metadata.Escaped.Original.Size() == 1 &&
240
- len(props.Metadata.Escaped.Original.Natives) != 0 &&
241
- props.Metadata.Escaped.Original.Natives[0].Name == "Date"
242
- unions = append(unions, jsonStringifyProgrammer_IUnion{
243
- Type: "resolved",
244
- Is: func() *shimast.Node {
245
- if isDate {
246
- return nativeiterate.Check_native(nativeiterate.Check_nativeProps{
247
- Name: "Date",
248
- Input: props.Input,
249
- })
250
- }
251
- return nativeprogrammers.IsProgrammer.Decode_to_json(struct {
252
- Input *shimast.Expression
253
- CheckNull bool
254
- }{Input: props.Input, CheckNull: false})
255
- },
256
- Value: func() *shimast.Node {
257
- next := props
258
- next.Metadata = metadata
259
- return jsonStringifyProgrammer_decode_to_json(next)
260
- },
261
- })
262
- } else if len(props.Metadata.Functions) != 0 {
263
- unions = append(unions, jsonStringifyProgrammer_IUnion{
264
- Type: "functional",
265
- Is: func() *shimast.Node {
266
- return nativeprogrammers.IsProgrammer.Decode_functional(props.Input)
267
- },
268
- Value: func() *shimast.Node {
269
- return jsonStringifyProgrammer_decode_functional(props.Explore)
270
- },
271
- })
272
- }
236
+ unions := []jsonStringifyProgrammer_IUnion{}
237
+ if props.Metadata.Escaped != nil {
238
+ metadata := props.Metadata.Escaped.Returns
239
+ isDate := props.Metadata.Escaped.Original.Size() == 1 &&
240
+ len(props.Metadata.Escaped.Original.Natives) != 0 &&
241
+ props.Metadata.Escaped.Original.Natives[0].Name == "Date"
242
+ unions = append(unions, jsonStringifyProgrammer_IUnion{
243
+ Type: "resolved",
244
+ Is: func() *shimast.Node {
245
+ if isDate {
246
+ return nativeiterate.Check_native(nativeiterate.Check_nativeProps{
247
+ Name: "Date",
248
+ Input: props.Input,
249
+ })
250
+ }
251
+ return nativeprogrammers.IsProgrammer.Decode_to_json(struct {
252
+ Input *shimast.Expression
253
+ CheckNull bool
254
+ }{Input: props.Input, CheckNull: false})
255
+ },
256
+ Value: func() *shimast.Node {
257
+ next := props
258
+ next.Metadata = metadata
259
+ return jsonStringifyProgrammer_decode_to_json(next)
260
+ },
261
+ })
262
+ } else if len(props.Metadata.Functions) != 0 {
263
+ unions = append(unions, jsonStringifyProgrammer_IUnion{
264
+ Type: "functional",
265
+ Is: func() *shimast.Node {
266
+ return nativeprogrammers.IsProgrammer.Decode_functional(props.Input)
267
+ },
268
+ Value: func() *shimast.Node {
269
+ return jsonStringifyProgrammer_decode_functional(props.Explore)
270
+ },
271
+ })
272
+ }
273
273
 
274
- if len(props.Metadata.Templates) != 0 && nativehelpers.AtomicPredicator.Template(props.Metadata) {
275
- partial := schemametadata.MetadataSchema_initialize()
276
- partial.Atomics = append(partial.Atomics, schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{
277
- Type: "string",
278
- Tags: [][]schemametadata.IMetadataTypeTag{},
279
- }))
280
- unions = append(unions, jsonStringifyProgrammer_IUnion{
281
- Type: "template literal",
282
- Is: func() *shimast.Node {
283
- next := props
284
- next.Metadata = partial
285
- return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
286
- Context: next.Context,
287
- Functor: next.Functor,
288
- Metadata: next.Metadata,
289
- Input: next.Input,
290
- Explore: jsonStringifyProgrammer_checker_explore(next.Explore),
291
- })
292
- },
293
- Value: func() *shimast.Node {
294
- next := props
295
- return jsonStringifyProgrammer_decode_atomic(struct {
296
- Context nativecontext.ITypiaContext
297
- Input *shimast.Node
298
- Type string
299
- Explore nativeinternal.FeatureProgrammer_IExplore
300
- Validated bool
301
- }{Context: next.Context, Input: next.Input, Type: "string", Explore: next.Explore, Validated: next.Validated})
302
- },
303
- })
304
- }
274
+ if len(props.Metadata.Templates) != 0 && nativehelpers.AtomicPredicator.Template(props.Metadata) {
275
+ partial := schemametadata.MetadataSchema_initialize()
276
+ partial.Atomics = append(partial.Atomics, schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{
277
+ Type: "string",
278
+ Tags: [][]schemametadata.IMetadataTypeTag{},
279
+ }))
280
+ unions = append(unions, jsonStringifyProgrammer_IUnion{
281
+ Type: "template literal",
282
+ Is: func() *shimast.Node {
283
+ next := props
284
+ next.Metadata = partial
285
+ return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
286
+ Context: next.Context,
287
+ Functor: next.Functor,
288
+ Metadata: next.Metadata,
289
+ Input: next.Input,
290
+ Explore: jsonStringifyProgrammer_checker_explore(next.Explore),
291
+ })
292
+ },
293
+ Value: func() *shimast.Node {
294
+ next := props
295
+ return jsonStringifyProgrammer_decode_atomic(struct {
296
+ Context nativecontext.ITypiaContext
297
+ Input *shimast.Node
298
+ Type string
299
+ Explore nativeinternal.FeatureProgrammer_IExplore
300
+ Validated bool
301
+ }{Context: next.Context, Input: next.Input, Type: "string", Explore: next.Explore, Validated: next.Validated})
302
+ },
303
+ })
304
+ }
305
305
 
306
- for _, constant := range props.Metadata.Constants {
307
- constant := constant
308
- if nativehelpers.AtomicPredicator.Constant(struct {
309
- Metadata *schemametadata.MetadataSchema
310
- Name string
311
- }{Metadata: props.Metadata, Name: constant.Type}) == false {
312
- continue
313
- }
314
- if constant.Type != "string" {
315
- unions = append(unions, jsonStringifyProgrammer_IUnion{
316
- Type: "atomic",
317
- Is: func() *shimast.Node {
318
- partial := schemametadata.MetadataSchema_initialize()
319
- partial.Atomics = append(partial.Atomics, schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{
320
- Type: constant.Type,
321
- Tags: [][]schemametadata.IMetadataTypeTag{},
322
- }))
323
- return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
324
- Context: props.Context,
325
- Functor: props.Functor,
326
- Metadata: partial,
327
- Input: props.Input,
328
- Explore: jsonStringifyProgrammer_checker_explore(props.Explore),
329
- })
330
- },
331
- Value: func() *shimast.Node {
332
- return jsonStringifyProgrammer_decode_atomic(struct {
333
- Context nativecontext.ITypiaContext
334
- Input *shimast.Node
335
- Type string
336
- Explore nativeinternal.FeatureProgrammer_IExplore
337
- Validated bool
338
- }{Context: props.Context, Input: props.Input, Type: constant.Type, Explore: props.Explore, Validated: props.Validated})
339
- },
340
- })
341
- } else if len(props.Metadata.Templates) == 0 {
342
- values := make([]string, 0, len(constant.Values))
343
- for _, value := range constant.Values {
344
- if str, ok := value.Value.(string); ok {
345
- values = append(values, str)
346
- }
347
- }
348
- unions = append(unions, jsonStringifyProgrammer_IUnion{
349
- Type: "const string",
350
- Is: func() *shimast.Node {
351
- partial := schemametadata.MetadataSchema_initialize()
352
- partial.Atomics = append(partial.Atomics, schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{
353
- Type: "string",
354
- Tags: [][]schemametadata.IMetadataTypeTag{},
355
- }))
356
- return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
357
- Context: props.Context,
358
- Functor: props.Functor,
359
- Metadata: partial,
360
- Input: props.Input,
361
- Explore: jsonStringifyProgrammer_checker_explore(props.Explore),
362
- })
363
- },
364
- Value: func() *shimast.Node {
365
- return jsonStringifyProgrammer_decode_constant_string(struct {
366
- Context nativecontext.ITypiaContext
367
- Functor *nativehelpers.FunctionProgrammer
368
- Input *shimast.Node
369
- Values []string
370
- Explore nativeinternal.FeatureProgrammer_IExplore
371
- Validated bool
372
- }{Context: props.Context, Functor: props.Functor, Input: props.Input, Values: values, Explore: props.Explore, Validated: props.Validated})
373
- },
374
- })
375
- }
376
- }
306
+ for _, constant := range props.Metadata.Constants {
307
+ constant := constant
308
+ if nativehelpers.AtomicPredicator.Constant(struct {
309
+ Metadata *schemametadata.MetadataSchema
310
+ Name string
311
+ }{Metadata: props.Metadata, Name: constant.Type}) == false {
312
+ continue
313
+ }
314
+ if constant.Type != "string" {
315
+ unions = append(unions, jsonStringifyProgrammer_IUnion{
316
+ Type: "atomic",
317
+ Is: func() *shimast.Node {
318
+ partial := schemametadata.MetadataSchema_initialize()
319
+ partial.Atomics = append(partial.Atomics, schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{
320
+ Type: constant.Type,
321
+ Tags: [][]schemametadata.IMetadataTypeTag{},
322
+ }))
323
+ return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
324
+ Context: props.Context,
325
+ Functor: props.Functor,
326
+ Metadata: partial,
327
+ Input: props.Input,
328
+ Explore: jsonStringifyProgrammer_checker_explore(props.Explore),
329
+ })
330
+ },
331
+ Value: func() *shimast.Node {
332
+ return jsonStringifyProgrammer_decode_atomic(struct {
333
+ Context nativecontext.ITypiaContext
334
+ Input *shimast.Node
335
+ Type string
336
+ Explore nativeinternal.FeatureProgrammer_IExplore
337
+ Validated bool
338
+ }{Context: props.Context, Input: props.Input, Type: constant.Type, Explore: props.Explore, Validated: props.Validated})
339
+ },
340
+ })
341
+ } else if len(props.Metadata.Templates) == 0 {
342
+ values := make([]string, 0, len(constant.Values))
343
+ for _, value := range constant.Values {
344
+ if str, ok := value.Value.(string); ok {
345
+ values = append(values, str)
346
+ }
347
+ }
348
+ unions = append(unions, jsonStringifyProgrammer_IUnion{
349
+ Type: "const string",
350
+ Is: func() *shimast.Node {
351
+ partial := schemametadata.MetadataSchema_initialize()
352
+ partial.Atomics = append(partial.Atomics, schemametadata.MetadataAtomic_create(schemametadata.MetadataAtomic{
353
+ Type: "string",
354
+ Tags: [][]schemametadata.IMetadataTypeTag{},
355
+ }))
356
+ return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
357
+ Context: props.Context,
358
+ Functor: props.Functor,
359
+ Metadata: partial,
360
+ Input: props.Input,
361
+ Explore: jsonStringifyProgrammer_checker_explore(props.Explore),
362
+ })
363
+ },
364
+ Value: func() *shimast.Node {
365
+ return jsonStringifyProgrammer_decode_constant_string(struct {
366
+ Context nativecontext.ITypiaContext
367
+ Functor *nativehelpers.FunctionProgrammer
368
+ Input *shimast.Node
369
+ Values []string
370
+ Explore nativeinternal.FeatureProgrammer_IExplore
371
+ Validated bool
372
+ }{Context: props.Context, Functor: props.Functor, Input: props.Input, Values: values, Explore: props.Explore, Validated: props.Validated})
373
+ },
374
+ })
375
+ }
376
+ }
377
377
 
378
- for _, atomic := range props.Metadata.Atomics {
379
- atomic := atomic
380
- if nativehelpers.AtomicPredicator.Atomic(struct {
381
- Metadata *schemametadata.MetadataSchema
382
- Name string
383
- }{Metadata: props.Metadata, Name: atomic.Type}) {
384
- unions = append(unions, jsonStringifyProgrammer_IUnion{
385
- Type: "atomic",
386
- Is: func() *shimast.Node {
387
- partial := schemametadata.MetadataSchema_initialize()
388
- partial.Atomics = append(partial.Atomics, atomic)
389
- return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
390
- Context: props.Context,
391
- Functor: props.Functor,
392
- Metadata: partial,
393
- Input: props.Input,
394
- Explore: jsonStringifyProgrammer_checker_explore(props.Explore),
395
- })
396
- },
397
- Value: func() *shimast.Node {
398
- return jsonStringifyProgrammer_decode_atomic(struct {
399
- Context nativecontext.ITypiaContext
400
- Input *shimast.Node
401
- Type string
402
- Explore nativeinternal.FeatureProgrammer_IExplore
403
- Validated bool
404
- }{Context: props.Context, Input: props.Input, Type: atomic.Type, Explore: props.Explore, Validated: props.Validated})
405
- },
406
- })
407
- }
408
- }
378
+ for _, atomic := range props.Metadata.Atomics {
379
+ atomic := atomic
380
+ if nativehelpers.AtomicPredicator.Atomic(struct {
381
+ Metadata *schemametadata.MetadataSchema
382
+ Name string
383
+ }{Metadata: props.Metadata, Name: atomic.Type}) {
384
+ unions = append(unions, jsonStringifyProgrammer_IUnion{
385
+ Type: "atomic",
386
+ Is: func() *shimast.Node {
387
+ partial := schemametadata.MetadataSchema_initialize()
388
+ partial.Atomics = append(partial.Atomics, atomic)
389
+ return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
390
+ Context: props.Context,
391
+ Functor: props.Functor,
392
+ Metadata: partial,
393
+ Input: props.Input,
394
+ Explore: jsonStringifyProgrammer_checker_explore(props.Explore),
395
+ })
396
+ },
397
+ Value: func() *shimast.Node {
398
+ return jsonStringifyProgrammer_decode_atomic(struct {
399
+ Context nativecontext.ITypiaContext
400
+ Input *shimast.Node
401
+ Type string
402
+ Explore nativeinternal.FeatureProgrammer_IExplore
403
+ Validated bool
404
+ }{Context: props.Context, Input: props.Input, Type: atomic.Type, Explore: props.Explore, Validated: props.Validated})
405
+ },
406
+ })
407
+ }
408
+ }
409
409
 
410
- for _, tuple := range props.Metadata.Tuples {
411
- tuple := tuple
412
- unions = append(unions, jsonStringifyProgrammer_IUnion{
413
- Type: "tuple",
414
- Is: func() *shimast.Node {
415
- partial := schemametadata.MetadataSchema_initialize()
416
- partial.Tuples = append(partial.Tuples, tuple)
417
- return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
418
- Context: props.Context,
419
- Functor: props.Functor,
420
- Metadata: partial,
421
- Input: props.Input,
422
- Explore: jsonStringifyProgrammer_checker_explore(props.Explore),
423
- })
424
- },
425
- Value: func() *shimast.Node {
426
- return jsonStringifyProgrammer_decode_tuple(jsonStringifyProgrammer_decodeTupleProps{
427
- Context: props.Context,
428
- Config: props.Config,
429
- Functor: props.Functor,
430
- Input: props.Input,
431
- Tuple: tuple,
432
- Explore: props.Explore,
433
- Validated: props.Validated,
434
- })
435
- },
436
- })
437
- }
410
+ for _, tuple := range props.Metadata.Tuples {
411
+ tuple := tuple
412
+ unions = append(unions, jsonStringifyProgrammer_IUnion{
413
+ Type: "tuple",
414
+ Is: func() *shimast.Node {
415
+ partial := schemametadata.MetadataSchema_initialize()
416
+ partial.Tuples = append(partial.Tuples, tuple)
417
+ return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
418
+ Context: props.Context,
419
+ Functor: props.Functor,
420
+ Metadata: partial,
421
+ Input: props.Input,
422
+ Explore: jsonStringifyProgrammer_checker_explore(props.Explore),
423
+ })
424
+ },
425
+ Value: func() *shimast.Node {
426
+ return jsonStringifyProgrammer_decode_tuple(jsonStringifyProgrammer_decodeTupleProps{
427
+ Context: props.Context,
428
+ Config: props.Config,
429
+ Functor: props.Functor,
430
+ Input: props.Input,
431
+ Tuple: tuple,
432
+ Explore: props.Explore,
433
+ Validated: props.Validated,
434
+ })
435
+ },
436
+ })
437
+ }
438
438
 
439
- if len(props.Metadata.Arrays) != 0 {
440
- value := func() *shimast.Node {
441
- if len(props.Metadata.Arrays) == 1 {
442
- explore := props.Explore
443
- explore.From = "array"
444
- return jsonStringifyProgrammer_decode_array(jsonStringifyProgrammer_decodeArrayProps{
445
- Config: props.Config,
446
- Functor: props.Functor,
447
- Input: props.Input,
448
- Array: props.Metadata.Arrays[0],
449
- Explore: explore,
450
- })
451
- }
452
- if jsonStringifyProgrammer_some_arrays(props.Metadata.Arrays, func(elem *schemametadata.MetadataArray) bool {
453
- return elem.Type.Value.Any
454
- }) {
455
- return jsonStringifyProgrammer_factory.NewCallExpression(
456
- jsonStringifyProgrammer_factory.NewIdentifier("JSON.stringify"),
457
- nil,
458
- nil,
459
- jsonStringifyProgrammer_factory.NewNodeList([]*shimast.Node{props.Input}),
460
- shimast.NodeFlagsNone,
461
- )
462
- }
463
- explore := props.Explore
464
- explore.From = "array"
465
- return jsonStringifyProgrammer_explore_arrays(jsonStringifyProgrammer_exploreArraysProps{
466
- Context: props.Context,
467
- Config: props.Config,
468
- Functor: props.Functor,
469
- Input: props.Input,
470
- Arrays: props.Metadata.Arrays,
471
- Explore: explore,
472
- })
473
- }
474
- unions = append(unions, jsonStringifyProgrammer_IUnion{
475
- Type: "array",
476
- Is: func() *shimast.Node {
477
- return nativefactories.ExpressionFactory.IsArray(props.Input)
478
- },
479
- Value: value,
480
- })
481
- }
439
+ if len(props.Metadata.Arrays) != 0 {
440
+ value := func() *shimast.Node {
441
+ if len(props.Metadata.Arrays) == 1 {
442
+ explore := props.Explore
443
+ explore.From = "array"
444
+ return jsonStringifyProgrammer_decode_array(jsonStringifyProgrammer_decodeArrayProps{
445
+ Config: props.Config,
446
+ Functor: props.Functor,
447
+ Input: props.Input,
448
+ Array: props.Metadata.Arrays[0],
449
+ Explore: explore,
450
+ })
451
+ }
452
+ if jsonStringifyProgrammer_some_arrays(props.Metadata.Arrays, func(elem *schemametadata.MetadataArray) bool {
453
+ return elem.Type.Value.Any
454
+ }) {
455
+ return jsonStringifyProgrammer_factory.NewCallExpression(
456
+ jsonStringifyProgrammer_factory.NewIdentifier("JSON.stringify"),
457
+ nil,
458
+ nil,
459
+ jsonStringifyProgrammer_factory.NewNodeList([]*shimast.Node{props.Input}),
460
+ shimast.NodeFlagsNone,
461
+ )
462
+ }
463
+ explore := props.Explore
464
+ explore.From = "array"
465
+ return jsonStringifyProgrammer_explore_arrays(jsonStringifyProgrammer_exploreArraysProps{
466
+ Context: props.Context,
467
+ Config: props.Config,
468
+ Functor: props.Functor,
469
+ Input: props.Input,
470
+ Arrays: props.Metadata.Arrays,
471
+ Explore: explore,
472
+ })
473
+ }
474
+ unions = append(unions, jsonStringifyProgrammer_IUnion{
475
+ Type: "array",
476
+ Is: func() *shimast.Node {
477
+ return nativefactories.ExpressionFactory.IsArray(props.Input)
478
+ },
479
+ Value: value,
480
+ })
481
+ }
482
482
 
483
- for _, native := range props.Metadata.Natives {
484
- native := native
485
- unions = append(unions, jsonStringifyProgrammer_IUnion{
486
- Type: "object",
487
- Is: func() *shimast.Node {
488
- return nativeiterate.Check_native(nativeiterate.Check_nativeProps{Name: native.Name, Input: props.Input})
489
- },
490
- Value: func() *shimast.Node {
491
- if nativehelpers.AtomicPredicator.Native(native.Name) {
492
- return jsonStringifyProgrammer_decode_atomic(struct {
493
- Context nativecontext.ITypiaContext
494
- Input *shimast.Node
495
- Type string
496
- Explore nativeinternal.FeatureProgrammer_IExplore
497
- Validated bool
498
- }{Context: props.Context, Input: props.Input, Type: strings.ToLower(native.Name), Explore: props.Explore, Validated: props.Validated})
499
- }
500
- return jsonStringifyProgrammer_factory.NewStringLiteral("{}", shimast.TokenFlagsNone)
501
- },
502
- })
503
- }
483
+ for _, native := range props.Metadata.Natives {
484
+ native := native
485
+ unions = append(unions, jsonStringifyProgrammer_IUnion{
486
+ Type: "object",
487
+ Is: func() *shimast.Node {
488
+ return nativeiterate.Check_native(nativeiterate.Check_nativeProps{Name: native.Name, Input: props.Input})
489
+ },
490
+ Value: func() *shimast.Node {
491
+ if nativehelpers.AtomicPredicator.Native(native.Name) {
492
+ return jsonStringifyProgrammer_decode_atomic(struct {
493
+ Context nativecontext.ITypiaContext
494
+ Input *shimast.Node
495
+ Type string
496
+ Explore nativeinternal.FeatureProgrammer_IExplore
497
+ Validated bool
498
+ }{Context: props.Context, Input: props.Input, Type: strings.ToLower(native.Name), Explore: props.Explore, Validated: props.Validated})
499
+ }
500
+ return jsonStringifyProgrammer_factory.NewStringLiteral("{}", shimast.TokenFlagsNone)
501
+ },
502
+ })
503
+ }
504
504
 
505
- if len(props.Metadata.Sets) != 0 {
506
- unions = append(unions, jsonStringifyProgrammer_IUnion{
507
- Type: "object",
508
- Is: func() *shimast.Node {
509
- return nativefactories.ExpressionFactory.IsInstanceOf("Set", props.Input)
510
- },
511
- Value: func() *shimast.Node {
512
- return jsonStringifyProgrammer_factory.NewStringLiteral("{}", shimast.TokenFlagsNone)
513
- },
514
- })
515
- }
516
- if len(props.Metadata.Maps) != 0 {
517
- unions = append(unions, jsonStringifyProgrammer_IUnion{
518
- Type: "object",
519
- Is: func() *shimast.Node {
520
- return nativefactories.ExpressionFactory.IsInstanceOf("Map", props.Input)
521
- },
522
- Value: func() *shimast.Node {
523
- return jsonStringifyProgrammer_factory.NewStringLiteral("{}", shimast.TokenFlagsNone)
524
- },
525
- })
526
- }
527
- if len(props.Metadata.Objects) != 0 {
528
- unions = append(unions, jsonStringifyProgrammer_IUnion{
529
- Type: "object",
530
- Is: func() *shimast.Node {
531
- return nativefactories.ExpressionFactory.IsObject(nativefactories.ExpressionFactory_IsObjectProps{
532
- CheckNull: true,
533
- CheckArray: jsonStringifyProgrammer_some_objects(props.Metadata.Objects, func(object *schemametadata.MetadataObject) bool {
534
- return jsonStringifyProgrammer_every_properties(object.Type.Properties, func(prop *schemametadata.MetadataProperty) bool {
535
- return !prop.Key.IsSoleLiteral() || !prop.Value.IsRequired()
536
- })
537
- }),
538
- Input: props.Input,
539
- })
540
- },
541
- Value: func() *shimast.Node {
542
- explore := props.Explore
543
- explore.From = "object"
544
- return jsonStringifyProgrammer_explore_objects(jsonStringifyProgrammer_exploreObjectsProps{
545
- Config: props.Config,
546
- Functor: props.Functor,
547
- Input: props.Input,
548
- Metadata: props.Metadata,
549
- Explore: explore,
550
- })
551
- },
552
- })
553
- }
505
+ if len(props.Metadata.Sets) != 0 {
506
+ unions = append(unions, jsonStringifyProgrammer_IUnion{
507
+ Type: "object",
508
+ Is: func() *shimast.Node {
509
+ return nativefactories.ExpressionFactory.IsInstanceOf("Set", props.Input)
510
+ },
511
+ Value: func() *shimast.Node {
512
+ return jsonStringifyProgrammer_factory.NewStringLiteral("{}", shimast.TokenFlagsNone)
513
+ },
514
+ })
515
+ }
516
+ if len(props.Metadata.Maps) != 0 {
517
+ unions = append(unions, jsonStringifyProgrammer_IUnion{
518
+ Type: "object",
519
+ Is: func() *shimast.Node {
520
+ return nativefactories.ExpressionFactory.IsInstanceOf("Map", props.Input)
521
+ },
522
+ Value: func() *shimast.Node {
523
+ return jsonStringifyProgrammer_factory.NewStringLiteral("{}", shimast.TokenFlagsNone)
524
+ },
525
+ })
526
+ }
527
+ if len(props.Metadata.Objects) != 0 {
528
+ unions = append(unions, jsonStringifyProgrammer_IUnion{
529
+ Type: "object",
530
+ Is: func() *shimast.Node {
531
+ return nativefactories.ExpressionFactory.IsObject(nativefactories.ExpressionFactory_IsObjectProps{
532
+ CheckNull: true,
533
+ CheckArray: jsonStringifyProgrammer_some_objects(props.Metadata.Objects, func(object *schemametadata.MetadataObject) bool {
534
+ return jsonStringifyProgrammer_every_properties(object.Type.Properties, func(prop *schemametadata.MetadataProperty) bool {
535
+ return !prop.Key.IsSoleLiteral() || !prop.Value.IsRequired()
536
+ })
537
+ }),
538
+ Input: props.Input,
539
+ })
540
+ },
541
+ Value: func() *shimast.Node {
542
+ explore := props.Explore
543
+ explore.From = "object"
544
+ return jsonStringifyProgrammer_explore_objects(jsonStringifyProgrammer_exploreObjectsProps{
545
+ Config: props.Config,
546
+ Functor: props.Functor,
547
+ Input: props.Input,
548
+ Metadata: props.Metadata,
549
+ Explore: explore,
550
+ })
551
+ },
552
+ })
553
+ }
554
554
 
555
- wrapper := func(output *shimast.Node) *shimast.Node {
556
- return jsonStringifyProgrammer_wrap_required(struct {
557
- Input *shimast.Node
558
- Metadata *schemametadata.MetadataSchema
559
- Explore nativeinternal.FeatureProgrammer_IExplore
560
- Expression *shimast.Node
561
- }{
562
- Input: props.Input,
563
- Metadata: props.Metadata,
564
- Explore: props.Explore,
565
- Expression: jsonStringifyProgrammer_wrap_nullable(struct {
566
- Input *shimast.Node
567
- Metadata *schemametadata.MetadataSchema
568
- Expression *shimast.Node
569
- }{Input: props.Input, Metadata: props.Metadata, Expression: output}),
570
- })
571
- }
572
- if len(unions) == 0 {
573
- return jsonStringifyProgrammer_factory.NewCallExpression(
574
- jsonStringifyProgrammer_factory.NewIdentifier("JSON.stringify"),
575
- nil,
576
- nil,
577
- jsonStringifyProgrammer_factory.NewNodeList([]*shimast.Node{props.Input}),
578
- shimast.NodeFlagsNone,
579
- )
580
- }
581
- if len(unions) == 1 {
582
- return wrapper(unions[0].Value())
583
- }
584
- return wrapper(jsonStringifyProgrammer_factory.NewCallExpression(
585
- jsonStringifyProgrammer_factory.NewArrowFunction(
586
- nil,
587
- nil,
588
- jsonStringifyProgrammer_factory.NewNodeList(nil),
589
- nil,
590
- nil,
591
- jsonStringifyProgrammer_factory.NewToken(shimast.KindEqualsGreaterThanToken),
592
- jsonStringifyProgrammer_iterate(jsonStringifyProgrammer_iterateProps{
593
- Context: props.Context,
594
- Functor: props.Functor,
595
- Input: props.Input,
596
- Expected: props.Metadata.GetName(),
597
- Unions: unions,
598
- }),
599
- ),
600
- nil,
601
- nil,
602
- nil,
603
- shimast.NodeFlagsNone,
604
- ))
555
+ wrapper := func(output *shimast.Node) *shimast.Node {
556
+ return jsonStringifyProgrammer_wrap_required(struct {
557
+ Input *shimast.Node
558
+ Metadata *schemametadata.MetadataSchema
559
+ Explore nativeinternal.FeatureProgrammer_IExplore
560
+ Expression *shimast.Node
561
+ }{
562
+ Input: props.Input,
563
+ Metadata: props.Metadata,
564
+ Explore: props.Explore,
565
+ Expression: jsonStringifyProgrammer_wrap_nullable(struct {
566
+ Input *shimast.Node
567
+ Metadata *schemametadata.MetadataSchema
568
+ Expression *shimast.Node
569
+ }{Input: props.Input, Metadata: props.Metadata, Expression: output}),
570
+ })
571
+ }
572
+ if len(unions) == 0 {
573
+ return jsonStringifyProgrammer_factory.NewCallExpression(
574
+ jsonStringifyProgrammer_factory.NewIdentifier("JSON.stringify"),
575
+ nil,
576
+ nil,
577
+ jsonStringifyProgrammer_factory.NewNodeList([]*shimast.Node{props.Input}),
578
+ shimast.NodeFlagsNone,
579
+ )
580
+ }
581
+ if len(unions) == 1 {
582
+ return wrapper(unions[0].Value())
583
+ }
584
+ return wrapper(jsonStringifyProgrammer_factory.NewCallExpression(
585
+ jsonStringifyProgrammer_factory.NewArrowFunction(
586
+ nil,
587
+ nil,
588
+ jsonStringifyProgrammer_factory.NewNodeList(nil),
589
+ nil,
590
+ nil,
591
+ jsonStringifyProgrammer_factory.NewToken(shimast.KindEqualsGreaterThanToken),
592
+ jsonStringifyProgrammer_iterate(jsonStringifyProgrammer_iterateProps{
593
+ Context: props.Context,
594
+ Functor: props.Functor,
595
+ Input: props.Input,
596
+ Expected: props.Metadata.GetName(),
597
+ Unions: unions,
598
+ }),
599
+ ),
600
+ nil,
601
+ nil,
602
+ nil,
603
+ shimast.NodeFlagsNone,
604
+ ))
605
605
  }
606
606
 
607
607
  func jsonStringifyProgrammer_decode_object(props struct {
608
- Functor *nativehelpers.FunctionProgrammer
609
- Input *shimast.Node
610
- Object *schemametadata.MetadataObjectType
611
- Explore nativeinternal.FeatureProgrammer_IExplore
608
+ Functor *nativehelpers.FunctionProgrammer
609
+ Input *shimast.Node
610
+ Object *schemametadata.MetadataObjectType
611
+ Explore nativeinternal.FeatureProgrammer_IExplore
612
612
  }) *shimast.Node {
613
- return nativeinternal.FeatureProgrammer.Decode_object(nativeinternal.FeatureProgrammer_DecodeObjectProps{
614
- Config: nativeinternal.FeatureProgrammer_DecodeObjectConfig{Trace: false, Path: false, Prefix: jsonStringifyProgrammer_PREFIX},
615
- Functor: props.Functor,
616
- Object: props.Object,
617
- Input: props.Input,
618
- Explore: props.Explore,
619
- })
613
+ return nativeinternal.FeatureProgrammer.Decode_object(nativeinternal.FeatureProgrammer_DecodeObjectProps{
614
+ Config: nativeinternal.FeatureProgrammer_DecodeObjectConfig{Trace: false, Path: false, Prefix: jsonStringifyProgrammer_PREFIX},
615
+ Functor: props.Functor,
616
+ Object: props.Object,
617
+ Input: props.Input,
618
+ Explore: props.Explore,
619
+ })
620
620
  }
621
621
 
622
622
  type jsonStringifyProgrammer_decodeArrayProps struct {
623
- Config nativeinternal.FeatureProgrammer_IConfig
624
- Functor *nativehelpers.FunctionProgrammer
625
- Input *shimast.Node
626
- Array *schemametadata.MetadataArray
627
- Explore nativeinternal.FeatureProgrammer_IExplore
623
+ Config nativeinternal.FeatureProgrammer_IConfig
624
+ Functor *nativehelpers.FunctionProgrammer
625
+ Input *shimast.Node
626
+ Array *schemametadata.MetadataArray
627
+ Explore nativeinternal.FeatureProgrammer_IExplore
628
628
  }
629
629
 
630
630
  func jsonStringifyProgrammer_decode_array(props jsonStringifyProgrammer_decodeArrayProps) *shimast.Node {
631
- if props.Array.Type.Recursive {
632
- index := 0
633
- if props.Array.Type.Index != nil {
634
- index = *props.Array.Type.Index
635
- }
636
- return jsonStringifyProgrammer_factory.NewCallExpression(
637
- jsonStringifyProgrammer_factory.NewIdentifier(props.Functor.UseLocal(fmt.Sprintf("%sa%d", props.Config.Prefix, index))),
638
- nil,
639
- nil,
640
- jsonStringifyProgrammer_factory.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
641
- Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace},
642
- Input: props.Input,
643
- Explore: jsonStringifyProgrammer_explore_with(props.Explore, "function", "array"),
644
- })),
645
- shimast.NodeFlagsNone,
646
- )
647
- }
648
- return jsonStringifyProgrammer_decode_array_inline(props)
631
+ if props.Array.Type.Recursive {
632
+ index := 0
633
+ if props.Array.Type.Index != nil {
634
+ index = *props.Array.Type.Index
635
+ }
636
+ return jsonStringifyProgrammer_factory.NewCallExpression(
637
+ jsonStringifyProgrammer_factory.NewIdentifier(props.Functor.UseLocal(fmt.Sprintf("%sa%d", props.Config.Prefix, index))),
638
+ nil,
639
+ nil,
640
+ jsonStringifyProgrammer_factory.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
641
+ Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace},
642
+ Input: props.Input,
643
+ Explore: jsonStringifyProgrammer_explore_with(props.Explore, "function", "array"),
644
+ })),
645
+ shimast.NodeFlagsNone,
646
+ )
647
+ }
648
+ return jsonStringifyProgrammer_decode_array_inline(props)
649
649
  }
650
650
 
651
651
  func jsonStringifyProgrammer_decode_array_inline(props jsonStringifyProgrammer_decodeArrayProps) *shimast.Node {
652
- return nativeinternal.FeatureProgrammer.Decode_array(nativeinternal.FeatureProgrammer_DecodeArrayProps{
653
- Config: nativeinternal.FeatureProgrammer_DecodeArrayConfig{
654
- Trace: props.Config.Trace,
655
- Path: props.Config.Path,
656
- Decoder: props.Config.Decoder,
657
- Prefix: props.Config.Prefix,
658
- },
659
- Functor: props.Functor,
660
- Combiner: func(next struct {
661
- Input *shimast.Expression
662
- Arrow *shimast.Node
663
- }) *shimast.Node {
664
- return nativehelpers.StringifyJoiner.Array(nativehelpers.StringifyJoiner_ArrayProps{
665
- Input: next.Input,
666
- Arrow: next.Arrow,
667
- })
668
- },
669
- Array: props.Array,
670
- Input: props.Input,
671
- Explore: props.Explore,
672
- })
652
+ return nativeinternal.FeatureProgrammer.Decode_array(nativeinternal.FeatureProgrammer_DecodeArrayProps{
653
+ Config: nativeinternal.FeatureProgrammer_DecodeArrayConfig{
654
+ Trace: props.Config.Trace,
655
+ Path: props.Config.Path,
656
+ Decoder: props.Config.Decoder,
657
+ Prefix: props.Config.Prefix,
658
+ },
659
+ Functor: props.Functor,
660
+ Combiner: func(next struct {
661
+ Input *shimast.Expression
662
+ Arrow *shimast.Node
663
+ }) *shimast.Node {
664
+ return nativehelpers.StringifyJoiner.Array(nativehelpers.StringifyJoiner_ArrayProps{
665
+ Input: next.Input,
666
+ Arrow: next.Arrow,
667
+ })
668
+ },
669
+ Array: props.Array,
670
+ Input: props.Input,
671
+ Explore: props.Explore,
672
+ })
673
673
  }
674
674
 
675
675
  type jsonStringifyProgrammer_decodeTupleProps struct {
676
- Context nativecontext.ITypiaContext
677
- Config nativeinternal.FeatureProgrammer_IConfig
678
- Functor *nativehelpers.FunctionProgrammer
679
- Input *shimast.Node
680
- Tuple *schemametadata.MetadataTuple
681
- Explore nativeinternal.FeatureProgrammer_IExplore
682
- Validated bool
676
+ Context nativecontext.ITypiaContext
677
+ Config nativeinternal.FeatureProgrammer_IConfig
678
+ Functor *nativehelpers.FunctionProgrammer
679
+ Input *shimast.Node
680
+ Tuple *schemametadata.MetadataTuple
681
+ Explore nativeinternal.FeatureProgrammer_IExplore
682
+ Validated bool
683
683
  }
684
684
 
685
685
  func jsonStringifyProgrammer_decode_tuple(props jsonStringifyProgrammer_decodeTupleProps) *shimast.Node {
686
- if props.Tuple.Type.Recursive {
687
- index := 0
688
- if props.Tuple.Type.Index != nil {
689
- index = *props.Tuple.Type.Index
690
- }
691
- return jsonStringifyProgrammer_factory.NewCallExpression(
692
- jsonStringifyProgrammer_factory.NewIdentifier(props.Functor.UseLocal(fmt.Sprintf("%st%d", props.Config.Prefix, index))),
693
- nil,
694
- nil,
695
- jsonStringifyProgrammer_factory.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
696
- Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace},
697
- Explore: jsonStringifyProgrammer_explore_with(props.Explore, "function", props.Explore.From),
698
- Input: props.Input,
699
- })),
700
- shimast.NodeFlagsNone,
701
- )
702
- }
703
- return jsonStringifyProgrammer_decode_tuple_inline(jsonStringifyProgrammer_decodeTupleInlineProps{
704
- Context: props.Context,
705
- Config: props.Config,
706
- Functor: props.Functor,
707
- Input: props.Input,
708
- Tuple: props.Tuple.Type,
709
- Explore: props.Explore,
710
- Validated: props.Validated,
711
- })
686
+ if props.Tuple.Type.Recursive {
687
+ index := 0
688
+ if props.Tuple.Type.Index != nil {
689
+ index = *props.Tuple.Type.Index
690
+ }
691
+ return jsonStringifyProgrammer_factory.NewCallExpression(
692
+ jsonStringifyProgrammer_factory.NewIdentifier(props.Functor.UseLocal(fmt.Sprintf("%st%d", props.Config.Prefix, index))),
693
+ nil,
694
+ nil,
695
+ jsonStringifyProgrammer_factory.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
696
+ Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace},
697
+ Explore: jsonStringifyProgrammer_explore_with(props.Explore, "function", props.Explore.From),
698
+ Input: props.Input,
699
+ })),
700
+ shimast.NodeFlagsNone,
701
+ )
702
+ }
703
+ return jsonStringifyProgrammer_decode_tuple_inline(jsonStringifyProgrammer_decodeTupleInlineProps{
704
+ Context: props.Context,
705
+ Config: props.Config,
706
+ Functor: props.Functor,
707
+ Input: props.Input,
708
+ Tuple: props.Tuple.Type,
709
+ Explore: props.Explore,
710
+ Validated: props.Validated,
711
+ })
712
712
  }
713
713
 
714
714
  type jsonStringifyProgrammer_decodeTupleInlineProps struct {
715
- Context nativecontext.ITypiaContext
716
- Config nativeinternal.FeatureProgrammer_IConfig
717
- Functor *nativehelpers.FunctionProgrammer
718
- Input *shimast.Node
719
- Tuple *schemametadata.MetadataTupleType
720
- Explore nativeinternal.FeatureProgrammer_IExplore
721
- Validated bool
715
+ Context nativecontext.ITypiaContext
716
+ Config nativeinternal.FeatureProgrammer_IConfig
717
+ Functor *nativehelpers.FunctionProgrammer
718
+ Input *shimast.Node
719
+ Tuple *schemametadata.MetadataTupleType
720
+ Explore nativeinternal.FeatureProgrammer_IExplore
721
+ Validated bool
722
722
  }
723
723
 
724
724
  func jsonStringifyProgrammer_decode_tuple_inline(props jsonStringifyProgrammer_decodeTupleInlineProps) *shimast.Node {
725
- elements := []*shimast.Node{}
726
- for index, elem := range props.Tuple.Elements {
727
- if elem.Rest != nil {
728
- continue
729
- }
730
- explore := props.Explore
731
- explore.From = "array"
732
- if len(props.Explore.Postfix) != 0 {
733
- explore.Postfix = fmt.Sprintf("%s[%d]\"", nativeiterate.Postfix_of_tuple_export(props.Explore.Postfix), index)
734
- } else {
735
- explore.Postfix = fmt.Sprintf("\"[%d]\"", index)
736
- }
737
- elements = append(elements, jsonStringifyProgrammer_decode(struct {
738
- Context nativecontext.ITypiaContext
739
- Config nativeinternal.FeatureProgrammer_IConfig
740
- Functor *nativehelpers.FunctionProgrammer
741
- Input *shimast.Node
742
- Metadata *schemametadata.MetadataSchema
743
- Explore nativeinternal.FeatureProgrammer_IExplore
744
- Validated bool
745
- }{
746
- Context: props.Context,
747
- Config: props.Config,
748
- Functor: props.Functor,
749
- Input: jsonStringifyProgrammer_factory.NewElementAccessExpression(props.Input, nil, nativefactories.ExpressionFactory.Number(index), shimast.NodeFlagsNone),
750
- Metadata: elem,
751
- Explore: explore,
752
- Validated: props.Validated,
753
- }))
754
- }
755
- var rest *shimast.Node
756
- if len(props.Tuple.Elements) != 0 {
757
- last := props.Tuple.Elements[len(props.Tuple.Elements)-1]
758
- if last.Rest != nil {
759
- explore := props.Explore
760
- start := len(props.Tuple.Elements) - 1
761
- explore.Start = &start
762
- code := jsonStringifyProgrammer_decode(struct {
763
- Context nativecontext.ITypiaContext
764
- Config nativeinternal.FeatureProgrammer_IConfig
765
- Functor *nativehelpers.FunctionProgrammer
766
- Input *shimast.Node
767
- Metadata *schemametadata.MetadataSchema
768
- Explore nativeinternal.FeatureProgrammer_IExplore
769
- Validated bool
770
- }{
771
- Context: props.Context,
772
- Config: props.Config,
773
- Functor: props.Functor,
774
- Input: jsonStringifyProgrammer_factory.NewCallExpression(
775
- nativefactories.IdentifierFactory.Access(props.Input, "slice"),
776
- nil,
777
- nil,
778
- jsonStringifyProgrammer_factory.NewNodeList([]*shimast.Node{nativefactories.ExpressionFactory.Number(start)}),
779
- shimast.NodeFlagsNone,
780
- ),
781
- Metadata: nativeiterate.Wrap_metadata_rest_tuple_export(last.Rest),
782
- Explore: explore,
783
- Validated: props.Validated,
784
- })
785
- rest = jsonStringifyProgrammer_factory.NewCallExpression(
786
- jsonStringifyProgrammer_internal(props.Context, "jsonStringifyRest"),
787
- nil,
788
- nil,
789
- jsonStringifyProgrammer_factory.NewNodeList([]*shimast.Node{code}),
790
- shimast.NodeFlagsNone,
791
- )
792
- }
793
- }
794
- return nativehelpers.StringifyJoiner.Tuple(nativehelpers.StringifyJoiner_TupleProps{
795
- Elements: elements,
796
- Rest: rest,
797
- })
725
+ elements := []*shimast.Node{}
726
+ for index, elem := range props.Tuple.Elements {
727
+ if elem.Rest != nil {
728
+ continue
729
+ }
730
+ explore := props.Explore
731
+ explore.From = "array"
732
+ if len(props.Explore.Postfix) != 0 {
733
+ explore.Postfix = fmt.Sprintf("%s[%d]\"", nativeiterate.Postfix_of_tuple_export(props.Explore.Postfix), index)
734
+ } else {
735
+ explore.Postfix = fmt.Sprintf("\"[%d]\"", index)
736
+ }
737
+ elements = append(elements, jsonStringifyProgrammer_decode(struct {
738
+ Context nativecontext.ITypiaContext
739
+ Config nativeinternal.FeatureProgrammer_IConfig
740
+ Functor *nativehelpers.FunctionProgrammer
741
+ Input *shimast.Node
742
+ Metadata *schemametadata.MetadataSchema
743
+ Explore nativeinternal.FeatureProgrammer_IExplore
744
+ Validated bool
745
+ }{
746
+ Context: props.Context,
747
+ Config: props.Config,
748
+ Functor: props.Functor,
749
+ Input: jsonStringifyProgrammer_factory.NewElementAccessExpression(props.Input, nil, nativefactories.ExpressionFactory.Number(index), shimast.NodeFlagsNone),
750
+ Metadata: elem,
751
+ Explore: explore,
752
+ Validated: props.Validated,
753
+ }))
754
+ }
755
+ var rest *shimast.Node
756
+ if len(props.Tuple.Elements) != 0 {
757
+ last := props.Tuple.Elements[len(props.Tuple.Elements)-1]
758
+ if last.Rest != nil {
759
+ explore := props.Explore
760
+ start := len(props.Tuple.Elements) - 1
761
+ explore.Start = &start
762
+ code := jsonStringifyProgrammer_decode(struct {
763
+ Context nativecontext.ITypiaContext
764
+ Config nativeinternal.FeatureProgrammer_IConfig
765
+ Functor *nativehelpers.FunctionProgrammer
766
+ Input *shimast.Node
767
+ Metadata *schemametadata.MetadataSchema
768
+ Explore nativeinternal.FeatureProgrammer_IExplore
769
+ Validated bool
770
+ }{
771
+ Context: props.Context,
772
+ Config: props.Config,
773
+ Functor: props.Functor,
774
+ Input: jsonStringifyProgrammer_factory.NewCallExpression(
775
+ nativefactories.IdentifierFactory.Access(props.Input, "slice"),
776
+ nil,
777
+ nil,
778
+ jsonStringifyProgrammer_factory.NewNodeList([]*shimast.Node{nativefactories.ExpressionFactory.Number(start)}),
779
+ shimast.NodeFlagsNone,
780
+ ),
781
+ Metadata: nativeiterate.Wrap_metadata_rest_tuple_export(last.Rest),
782
+ Explore: explore,
783
+ Validated: props.Validated,
784
+ })
785
+ rest = jsonStringifyProgrammer_factory.NewCallExpression(
786
+ jsonStringifyProgrammer_internal(props.Context, "jsonStringifyRest"),
787
+ nil,
788
+ nil,
789
+ jsonStringifyProgrammer_factory.NewNodeList([]*shimast.Node{code}),
790
+ shimast.NodeFlagsNone,
791
+ )
792
+ }
793
+ }
794
+ return nativehelpers.StringifyJoiner.Tuple(nativehelpers.StringifyJoiner_TupleProps{
795
+ Elements: elements,
796
+ Rest: rest,
797
+ })
798
798
  }
799
799
 
800
800
  func jsonStringifyProgrammer_decode_atomic(props struct {
801
- Context nativecontext.ITypiaContext
802
- Input *shimast.Node
803
- Type string
804
- Explore nativeinternal.FeatureProgrammer_IExplore
805
- Validated bool
801
+ Context nativecontext.ITypiaContext
802
+ Input *shimast.Node
803
+ Type string
804
+ Explore nativeinternal.FeatureProgrammer_IExplore
805
+ Validated bool
806
806
  }) *shimast.Node {
807
- input := props.Input
808
- if props.Type == "string" {
809
- return jsonStringifyProgrammer_factory.NewCallExpression(
810
- jsonStringifyProgrammer_internal(props.Context, "jsonStringifyString"),
811
- nil,
812
- nil,
813
- jsonStringifyProgrammer_factory.NewNodeList([]*shimast.Node{props.Input}),
814
- shimast.NodeFlagsNone,
815
- )
816
- } else if props.Type == "number" {
817
- if !(props.Validated && nativehelpers.OptionPredicator.Finite(props.Context.Options)) {
818
- input = jsonStringifyProgrammer_factory.NewCallExpression(
819
- jsonStringifyProgrammer_internal(props.Context, "jsonStringifyNumber"),
820
- nil,
821
- nil,
822
- jsonStringifyProgrammer_factory.NewNodeList([]*shimast.Node{props.Input}),
823
- shimast.NodeFlagsNone,
824
- )
825
- }
826
- }
827
- return jsonStringifyProgrammer_factory.NewCallExpression(
828
- jsonStringifyProgrammer_factory.NewIdentifier("String"),
829
- nil,
830
- nil,
831
- jsonStringifyProgrammer_factory.NewNodeList([]*shimast.Node{input}),
832
- shimast.NodeFlagsNone,
833
- )
807
+ input := props.Input
808
+ if props.Type == "string" {
809
+ return jsonStringifyProgrammer_factory.NewCallExpression(
810
+ jsonStringifyProgrammer_internal(props.Context, "jsonStringifyString"),
811
+ nil,
812
+ nil,
813
+ jsonStringifyProgrammer_factory.NewNodeList([]*shimast.Node{props.Input}),
814
+ shimast.NodeFlagsNone,
815
+ )
816
+ } else if props.Type == "number" {
817
+ if !(props.Validated && nativehelpers.OptionPredicator.Finite(props.Context.Options)) {
818
+ input = jsonStringifyProgrammer_factory.NewCallExpression(
819
+ jsonStringifyProgrammer_internal(props.Context, "jsonStringifyNumber"),
820
+ nil,
821
+ nil,
822
+ jsonStringifyProgrammer_factory.NewNodeList([]*shimast.Node{props.Input}),
823
+ shimast.NodeFlagsNone,
824
+ )
825
+ }
826
+ }
827
+ return jsonStringifyProgrammer_factory.NewCallExpression(
828
+ jsonStringifyProgrammer_factory.NewIdentifier("String"),
829
+ nil,
830
+ nil,
831
+ jsonStringifyProgrammer_factory.NewNodeList([]*shimast.Node{input}),
832
+ shimast.NodeFlagsNone,
833
+ )
834
834
  }
835
835
 
836
836
  func jsonStringifyProgrammer_decode_constant_string(props struct {
837
- Context nativecontext.ITypiaContext
838
- Functor *nativehelpers.FunctionProgrammer
839
- Input *shimast.Node
840
- Values []string
841
- Explore nativeinternal.FeatureProgrammer_IExplore
842
- Validated bool
837
+ Context nativecontext.ITypiaContext
838
+ Functor *nativehelpers.FunctionProgrammer
839
+ Input *shimast.Node
840
+ Values []string
841
+ Explore nativeinternal.FeatureProgrammer_IExplore
842
+ Validated bool
843
843
  }) *shimast.Node {
844
- if jsonStringifyProgrammer_every_strings(props.Values, func(value string) bool {
845
- return nativehelpers.StringifyPredicator.Require_escape(value) == false
846
- }) {
847
- return jsonStringifyProgrammer_binary(
848
- jsonStringifyProgrammer_binary(
849
- jsonStringifyProgrammer_factory.NewStringLiteral("\"", shimast.TokenFlagsNone),
850
- shimast.KindPlusToken,
851
- props.Input,
852
- ),
853
- shimast.KindPlusToken,
854
- jsonStringifyProgrammer_factory.NewStringLiteral("\"", shimast.TokenFlagsNone),
855
- )
856
- }
857
- return jsonStringifyProgrammer_decode_atomic(struct {
858
- Context nativecontext.ITypiaContext
859
- Input *shimast.Node
860
- Type string
861
- Explore nativeinternal.FeatureProgrammer_IExplore
862
- Validated bool
863
- }{Context: props.Context, Input: props.Input, Type: "string", Explore: props.Explore, Validated: props.Validated})
844
+ if jsonStringifyProgrammer_every_strings(props.Values, func(value string) bool {
845
+ return nativehelpers.StringifyPredicator.Require_escape(value) == false
846
+ }) {
847
+ return jsonStringifyProgrammer_binary(
848
+ jsonStringifyProgrammer_binary(
849
+ jsonStringifyProgrammer_factory.NewStringLiteral("\"", shimast.TokenFlagsNone),
850
+ shimast.KindPlusToken,
851
+ props.Input,
852
+ ),
853
+ shimast.KindPlusToken,
854
+ jsonStringifyProgrammer_factory.NewStringLiteral("\"", shimast.TokenFlagsNone),
855
+ )
856
+ }
857
+ return jsonStringifyProgrammer_decode_atomic(struct {
858
+ Context nativecontext.ITypiaContext
859
+ Input *shimast.Node
860
+ Type string
861
+ Explore nativeinternal.FeatureProgrammer_IExplore
862
+ Validated bool
863
+ }{Context: props.Context, Input: props.Input, Type: "string", Explore: props.Explore, Validated: props.Validated})
864
864
  }
865
865
 
866
866
  func jsonStringifyProgrammer_decode_to_json(props struct {
867
- Context nativecontext.ITypiaContext
868
- Config nativeinternal.FeatureProgrammer_IConfig
869
- Functor *nativehelpers.FunctionProgrammer
870
- Input *shimast.Node
871
- Metadata *schemametadata.MetadataSchema
872
- Explore nativeinternal.FeatureProgrammer_IExplore
873
- Validated bool
867
+ Context nativecontext.ITypiaContext
868
+ Config nativeinternal.FeatureProgrammer_IConfig
869
+ Functor *nativehelpers.FunctionProgrammer
870
+ Input *shimast.Node
871
+ Metadata *schemametadata.MetadataSchema
872
+ Explore nativeinternal.FeatureProgrammer_IExplore
873
+ Validated bool
874
874
  }) *shimast.Node {
875
- next := props
876
- next.Input = jsonStringifyProgrammer_factory.NewCallExpression(
877
- nativefactories.IdentifierFactory.Access(props.Input, "toJSON"),
878
- nil,
879
- nil,
880
- jsonStringifyProgrammer_factory.NewNodeList(nil),
881
- shimast.NodeFlagsNone,
882
- )
883
- return jsonStringifyProgrammer_decode(next)
875
+ next := props
876
+ next.Input = jsonStringifyProgrammer_factory.NewCallExpression(
877
+ nativefactories.IdentifierFactory.Access(props.Input, "toJSON"),
878
+ nil,
879
+ nil,
880
+ jsonStringifyProgrammer_factory.NewNodeList(nil),
881
+ shimast.NodeFlagsNone,
882
+ )
883
+ return jsonStringifyProgrammer_decode(next)
884
884
  }
885
885
 
886
886
  func jsonStringifyProgrammer_decode_functional(explore nativeinternal.FeatureProgrammer_IExplore) *shimast.Node {
887
- if explore.From == "array" {
888
- return jsonStringifyProgrammer_factory.NewStringLiteral("null", shimast.TokenFlagsNone)
889
- }
890
- return jsonStringifyProgrammer_factory.NewIdentifier("undefined")
887
+ if explore.From == "array" {
888
+ return jsonStringifyProgrammer_factory.NewStringLiteral("null", shimast.TokenFlagsNone)
889
+ }
890
+ return jsonStringifyProgrammer_factory.NewIdentifier("undefined")
891
891
  }
892
892
 
893
893
  type jsonStringifyProgrammer_exploreObjectsProps struct {
894
- Config nativeinternal.FeatureProgrammer_IConfig
895
- Functor *nativehelpers.FunctionProgrammer
896
- Input *shimast.Node
897
- Metadata *schemametadata.MetadataSchema
898
- Explore nativeinternal.FeatureProgrammer_IExplore
894
+ Config nativeinternal.FeatureProgrammer_IConfig
895
+ Functor *nativehelpers.FunctionProgrammer
896
+ Input *shimast.Node
897
+ Metadata *schemametadata.MetadataSchema
898
+ Explore nativeinternal.FeatureProgrammer_IExplore
899
899
  }
900
900
 
901
901
  func jsonStringifyProgrammer_explore_objects(props jsonStringifyProgrammer_exploreObjectsProps) *shimast.Node {
902
- if len(props.Metadata.Objects) == 1 {
903
- return jsonStringifyProgrammer_decode_object(struct {
904
- Functor *nativehelpers.FunctionProgrammer
905
- Input *shimast.Node
906
- Object *schemametadata.MetadataObjectType
907
- Explore nativeinternal.FeatureProgrammer_IExplore
908
- }{
909
- Functor: props.Functor,
910
- Input: props.Input,
911
- Object: props.Metadata.Objects[0].Type,
912
- Explore: props.Explore,
913
- })
914
- }
915
- index := 0
916
- if props.Metadata.Union_index != nil {
917
- index = *props.Metadata.Union_index
918
- }
919
- return jsonStringifyProgrammer_factory.NewCallExpression(
920
- jsonStringifyProgrammer_factory.NewIdentifier(props.Functor.UseLocal(fmt.Sprintf("%su%d", jsonStringifyProgrammer_PREFIX, index))),
921
- nil,
922
- nil,
923
- jsonStringifyProgrammer_factory.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
924
- Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace},
925
- Input: props.Input,
926
- Explore: props.Explore,
927
- })),
928
- shimast.NodeFlagsNone,
929
- )
902
+ if len(props.Metadata.Objects) == 1 {
903
+ return jsonStringifyProgrammer_decode_object(struct {
904
+ Functor *nativehelpers.FunctionProgrammer
905
+ Input *shimast.Node
906
+ Object *schemametadata.MetadataObjectType
907
+ Explore nativeinternal.FeatureProgrammer_IExplore
908
+ }{
909
+ Functor: props.Functor,
910
+ Input: props.Input,
911
+ Object: props.Metadata.Objects[0].Type,
912
+ Explore: props.Explore,
913
+ })
914
+ }
915
+ index := 0
916
+ if props.Metadata.Union_index != nil {
917
+ index = *props.Metadata.Union_index
918
+ }
919
+ return jsonStringifyProgrammer_factory.NewCallExpression(
920
+ jsonStringifyProgrammer_factory.NewIdentifier(props.Functor.UseLocal(fmt.Sprintf("%su%d", jsonStringifyProgrammer_PREFIX, index))),
921
+ nil,
922
+ nil,
923
+ jsonStringifyProgrammer_factory.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
924
+ Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace},
925
+ Input: props.Input,
926
+ Explore: props.Explore,
927
+ })),
928
+ shimast.NodeFlagsNone,
929
+ )
930
930
  }
931
931
 
932
932
  type jsonStringifyProgrammer_exploreArraysProps struct {
933
- Context nativecontext.ITypiaContext
934
- Config nativeinternal.FeatureProgrammer_IConfig
935
- Functor *nativehelpers.FunctionProgrammer
936
- Input *shimast.Node
937
- Arrays []*schemametadata.MetadataArray
938
- Explore nativeinternal.FeatureProgrammer_IExplore
933
+ Context nativecontext.ITypiaContext
934
+ Config nativeinternal.FeatureProgrammer_IConfig
935
+ Functor *nativehelpers.FunctionProgrammer
936
+ Input *shimast.Node
937
+ Arrays []*schemametadata.MetadataArray
938
+ Explore nativeinternal.FeatureProgrammer_IExplore
939
939
  }
940
940
 
941
941
  func jsonStringifyProgrammer_explore_arrays(props jsonStringifyProgrammer_exploreArraysProps) *shimast.Node {
942
- return jsonStringifyProgrammer_explore_array_like_union_types(jsonStringifyProgrammer_exploreArrayLikeUnionTypesProps[*schemametadata.MetadataArray]{
943
- Config: props.Config,
944
- Functor: props.Functor,
945
- Factory: func(next jsonStringifyProgrammer_arrayLikeFactoryProps[*schemametadata.MetadataArray]) *shimast.Node {
946
- return nativehelpers.UnionExplorer.Array(nativehelpers.UnionExplorer_ArrayProps{
947
- Config: nativehelpers.UnionExplorer_ArrayLikeConfig{
948
- Checker: func(v nativehelpers.UnionExplorer_ArrayLikeCheckerProps) *shimast.Node {
949
- return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
950
- Context: props.Context,
951
- Functor: props.Functor,
952
- Metadata: v.Definition.(*schemametadata.MetadataArray).Type.Value,
953
- Input: v.Input,
954
- Explore: jsonStringifyProgrammer_checker_explore(v.Explore),
955
- })
956
- },
957
- Decoder: func(v nativehelpers.UnionExplorer_ArrayLikeDecoderProps) *shimast.Node {
958
- return jsonStringifyProgrammer_decode_array(jsonStringifyProgrammer_decodeArrayProps{
959
- Config: props.Config,
960
- Functor: props.Functor,
961
- Input: v.Input,
962
- Array: v.Definition.(*schemametadata.MetadataArray),
963
- Explore: jsonStringifyProgrammer_feature_explore(v.Explore),
964
- })
965
- },
966
- Empty: jsonStringifyProgrammer_factory.NewStringLiteral("[]", shimast.TokenFlagsNone),
967
- Success: jsonStringifyProgrammer_factory.NewKeywordExpression(shimast.KindTrueKeyword),
968
- Failure: func(v nativehelpers.UnionExplorer_ArrayLikeFailureProps) *shimast.Node {
969
- return jsonStringifyProgrammer_create_throw_error(jsonStringifyProgrammer_throwProps{
970
- Context: props.Context,
971
- Functor: props.Functor,
972
- Expected: v.Expected,
973
- Input: v.Input,
974
- })
975
- },
976
- },
977
- Parameters: next.Parameters,
978
- Input: next.Input,
979
- Arrays: next.Definitions,
980
- Explore: next.Explore,
981
- })
982
- },
983
- Input: props.Input,
984
- Elements: props.Arrays,
985
- Explore: props.Explore,
986
- })
942
+ return jsonStringifyProgrammer_explore_array_like_union_types(jsonStringifyProgrammer_exploreArrayLikeUnionTypesProps[*schemametadata.MetadataArray]{
943
+ Config: props.Config,
944
+ Functor: props.Functor,
945
+ Factory: func(next jsonStringifyProgrammer_arrayLikeFactoryProps[*schemametadata.MetadataArray]) *shimast.Node {
946
+ return nativehelpers.UnionExplorer.Array(nativehelpers.UnionExplorer_ArrayProps{
947
+ Config: nativehelpers.UnionExplorer_ArrayLikeConfig{
948
+ Checker: func(v nativehelpers.UnionExplorer_ArrayLikeCheckerProps) *shimast.Node {
949
+ return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
950
+ Context: props.Context,
951
+ Functor: props.Functor,
952
+ Metadata: v.Definition.(*schemametadata.MetadataArray).Type.Value,
953
+ Input: v.Input,
954
+ Explore: jsonStringifyProgrammer_checker_explore(v.Explore),
955
+ })
956
+ },
957
+ Decoder: func(v nativehelpers.UnionExplorer_ArrayLikeDecoderProps) *shimast.Node {
958
+ return jsonStringifyProgrammer_decode_array(jsonStringifyProgrammer_decodeArrayProps{
959
+ Config: props.Config,
960
+ Functor: props.Functor,
961
+ Input: v.Input,
962
+ Array: v.Definition.(*schemametadata.MetadataArray),
963
+ Explore: jsonStringifyProgrammer_feature_explore(v.Explore),
964
+ })
965
+ },
966
+ Empty: jsonStringifyProgrammer_factory.NewStringLiteral("[]", shimast.TokenFlagsNone),
967
+ Success: jsonStringifyProgrammer_factory.NewKeywordExpression(shimast.KindTrueKeyword),
968
+ Failure: func(v nativehelpers.UnionExplorer_ArrayLikeFailureProps) *shimast.Node {
969
+ return jsonStringifyProgrammer_create_throw_error(jsonStringifyProgrammer_throwProps{
970
+ Context: props.Context,
971
+ Functor: props.Functor,
972
+ Expected: v.Expected,
973
+ Input: v.Input,
974
+ })
975
+ },
976
+ },
977
+ Parameters: next.Parameters,
978
+ Input: next.Input,
979
+ Arrays: next.Definitions,
980
+ Explore: next.Explore,
981
+ })
982
+ },
983
+ Input: props.Input,
984
+ Elements: props.Arrays,
985
+ Explore: props.Explore,
986
+ })
987
987
  }
988
988
 
989
989
  type jsonStringifyProgrammer_arrayLikeFactoryProps[T any] struct {
990
- Parameters []*shimast.Node
991
- Input *shimast.Node
992
- Definitions []T
993
- Explore nativeinternal.FeatureProgrammer_IExplore
990
+ Parameters []*shimast.Node
991
+ Input *shimast.Node
992
+ Definitions []T
993
+ Explore nativeinternal.FeatureProgrammer_IExplore
994
994
  }
995
995
 
996
996
  type jsonStringifyProgrammer_exploreArrayLikeUnionTypesProps[T interface {
997
- *schemametadata.MetadataArray | *schemametadata.MetadataTuple
997
+ *schemametadata.MetadataArray | *schemametadata.MetadataTuple
998
998
  }] struct {
999
- Config nativeinternal.FeatureProgrammer_IConfig
1000
- Functor *nativehelpers.FunctionProgrammer
1001
- Factory func(next jsonStringifyProgrammer_arrayLikeFactoryProps[T]) *shimast.Node
1002
- Input *shimast.Node
1003
- Elements []T
1004
- Explore nativeinternal.FeatureProgrammer_IExplore
999
+ Config nativeinternal.FeatureProgrammer_IConfig
1000
+ Functor *nativehelpers.FunctionProgrammer
1001
+ Factory func(next jsonStringifyProgrammer_arrayLikeFactoryProps[T]) *shimast.Node
1002
+ Input *shimast.Node
1003
+ Elements []T
1004
+ Explore nativeinternal.FeatureProgrammer_IExplore
1005
1005
  }
1006
1006
 
1007
1007
  func jsonStringifyProgrammer_explore_array_like_union_types[T interface {
1008
- *schemametadata.MetadataArray | *schemametadata.MetadataTuple
1008
+ *schemametadata.MetadataArray | *schemametadata.MetadataTuple
1009
1009
  }](props jsonStringifyProgrammer_exploreArrayLikeUnionTypesProps[T]) *shimast.Node {
1010
- arrow := func(next struct {
1011
- Parameters []*shimast.Node
1012
- Explore nativeinternal.FeatureProgrammer_IExplore
1013
- Input *shimast.Node
1014
- }) *shimast.Node {
1015
- return props.Factory(jsonStringifyProgrammer_arrayLikeFactoryProps[T]{
1016
- Definitions: props.Elements,
1017
- Parameters: next.Parameters,
1018
- Input: next.Input,
1019
- Explore: next.Explore,
1020
- })
1021
- }
1022
- arrayExplore := props.Explore
1023
- arrayExplore.Source = "function"
1024
- arrayExplore.From = "array"
1025
- return jsonStringifyProgrammer_factory.NewCallExpression(
1026
- jsonStringifyProgrammer_factory.NewIdentifier(props.Functor.EmplaceUnion(props.Config.Prefix, jsonStringifyProgrammer_array_like_names(props.Elements), func() *shimast.Node {
1027
- explore := arrayExplore
1028
- explore.Postfix = ""
1029
- return arrow(struct {
1030
- Parameters []*shimast.Node
1031
- Explore nativeinternal.FeatureProgrammer_IExplore
1032
- Input *shimast.Node
1033
- }{
1034
- Parameters: nativeinternal.FeatureProgrammer.ParameterDeclarations(nativeinternal.FeatureProgrammer_ParameterDeclarationsProps{
1035
- Config: nativeinternal.FeatureProgrammer_ParameterConfig{Path: props.Config.Path, Trace: props.Config.Trace},
1036
- Type: nativefactories.TypeFactory.Keyword("any"),
1037
- Input: jsonStringifyProgrammer_factory.NewIdentifier("input"),
1038
- }),
1039
- Explore: explore,
1040
- Input: jsonStringifyProgrammer_factory.NewIdentifier("input"),
1041
- })
1042
- })),
1043
- nil,
1044
- nil,
1045
- jsonStringifyProgrammer_factory.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
1046
- Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace},
1047
- Explore: arrayExplore,
1048
- Input: props.Input,
1049
- })),
1050
- shimast.NodeFlagsNone,
1051
- )
1010
+ arrow := func(next struct {
1011
+ Parameters []*shimast.Node
1012
+ Explore nativeinternal.FeatureProgrammer_IExplore
1013
+ Input *shimast.Node
1014
+ }) *shimast.Node {
1015
+ return props.Factory(jsonStringifyProgrammer_arrayLikeFactoryProps[T]{
1016
+ Definitions: props.Elements,
1017
+ Parameters: next.Parameters,
1018
+ Input: next.Input,
1019
+ Explore: next.Explore,
1020
+ })
1021
+ }
1022
+ arrayExplore := props.Explore
1023
+ arrayExplore.Source = "function"
1024
+ arrayExplore.From = "array"
1025
+ return jsonStringifyProgrammer_factory.NewCallExpression(
1026
+ jsonStringifyProgrammer_factory.NewIdentifier(props.Functor.EmplaceUnion(props.Config.Prefix, jsonStringifyProgrammer_array_like_names(props.Elements), func() *shimast.Node {
1027
+ explore := arrayExplore
1028
+ explore.Postfix = ""
1029
+ return arrow(struct {
1030
+ Parameters []*shimast.Node
1031
+ Explore nativeinternal.FeatureProgrammer_IExplore
1032
+ Input *shimast.Node
1033
+ }{
1034
+ Parameters: nativeinternal.FeatureProgrammer.ParameterDeclarations(nativeinternal.FeatureProgrammer_ParameterDeclarationsProps{
1035
+ Config: nativeinternal.FeatureProgrammer_ParameterConfig{Path: props.Config.Path, Trace: props.Config.Trace},
1036
+ Type: nativefactories.TypeFactory.Keyword("any"),
1037
+ Input: jsonStringifyProgrammer_factory.NewIdentifier("input"),
1038
+ }),
1039
+ Explore: explore,
1040
+ Input: jsonStringifyProgrammer_factory.NewIdentifier("input"),
1041
+ })
1042
+ })),
1043
+ nil,
1044
+ nil,
1045
+ jsonStringifyProgrammer_factory.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
1046
+ Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace},
1047
+ Explore: arrayExplore,
1048
+ Input: props.Input,
1049
+ })),
1050
+ shimast.NodeFlagsNone,
1051
+ )
1052
1052
  }
1053
1053
 
1054
1054
  func jsonStringifyProgrammer_wrap_required(props struct {
1055
- Input *shimast.Node
1056
- Metadata *schemametadata.MetadataSchema
1057
- Explore nativeinternal.FeatureProgrammer_IExplore
1058
- Expression *shimast.Node
1055
+ Input *shimast.Node
1056
+ Metadata *schemametadata.MetadataSchema
1057
+ Explore nativeinternal.FeatureProgrammer_IExplore
1058
+ Expression *shimast.Node
1059
1059
  }) *shimast.Node {
1060
- if props.Metadata.IsRequired() && props.Metadata.Any == false {
1061
- return props.Expression
1062
- }
1063
- alternate := jsonStringifyProgrammer_factory.NewIdentifier("undefined")
1064
- if props.Explore.From == "array" {
1065
- alternate = jsonStringifyProgrammer_factory.NewStringLiteral("null", shimast.TokenFlagsNone)
1066
- }
1067
- return jsonStringifyProgrammer_factory.NewConditionalExpression(
1068
- jsonStringifyProgrammer_binary(jsonStringifyProgrammer_factory.NewIdentifier("undefined"), shimast.KindExclamationEqualsEqualsToken, props.Input),
1069
- nil,
1070
- props.Expression,
1071
- nil,
1072
- alternate,
1073
- )
1060
+ if props.Metadata.IsRequired() && props.Metadata.Any == false {
1061
+ return props.Expression
1062
+ }
1063
+ alternate := jsonStringifyProgrammer_factory.NewIdentifier("undefined")
1064
+ if props.Explore.From == "array" {
1065
+ alternate = jsonStringifyProgrammer_factory.NewStringLiteral("null", shimast.TokenFlagsNone)
1066
+ }
1067
+ return jsonStringifyProgrammer_factory.NewConditionalExpression(
1068
+ jsonStringifyProgrammer_binary(jsonStringifyProgrammer_factory.NewIdentifier("undefined"), shimast.KindExclamationEqualsEqualsToken, props.Input),
1069
+ nil,
1070
+ props.Expression,
1071
+ nil,
1072
+ alternate,
1073
+ )
1074
1074
  }
1075
1075
 
1076
1076
  func jsonStringifyProgrammer_wrap_nullable(props struct {
1077
- Input *shimast.Node
1078
- Metadata *schemametadata.MetadataSchema
1079
- Expression *shimast.Node
1077
+ Input *shimast.Node
1078
+ Metadata *schemametadata.MetadataSchema
1079
+ Expression *shimast.Node
1080
1080
  }) *shimast.Node {
1081
- if props.Metadata.Nullable == false {
1082
- return props.Expression
1083
- }
1084
- return jsonStringifyProgrammer_factory.NewConditionalExpression(
1085
- jsonStringifyProgrammer_binary(jsonStringifyProgrammer_factory.NewKeywordExpression(shimast.KindNullKeyword), shimast.KindExclamationEqualsEqualsToken, props.Input),
1086
- nil,
1087
- props.Expression,
1088
- nil,
1089
- jsonStringifyProgrammer_factory.NewStringLiteral("null", shimast.TokenFlagsNone),
1090
- )
1081
+ if props.Metadata.Nullable == false {
1082
+ return props.Expression
1083
+ }
1084
+ return jsonStringifyProgrammer_factory.NewConditionalExpression(
1085
+ jsonStringifyProgrammer_binary(jsonStringifyProgrammer_factory.NewKeywordExpression(shimast.KindNullKeyword), shimast.KindExclamationEqualsEqualsToken, props.Input),
1086
+ nil,
1087
+ props.Expression,
1088
+ nil,
1089
+ jsonStringifyProgrammer_factory.NewStringLiteral("null", shimast.TokenFlagsNone),
1090
+ )
1091
1091
  }
1092
1092
 
1093
1093
  func jsonStringifyProgrammer_wrap_functional(props struct {
1094
- Input *shimast.Node
1095
- Metadata *schemametadata.MetadataSchema
1096
- Explore nativeinternal.FeatureProgrammer_IExplore
1097
- Expression *shimast.Node
1094
+ Input *shimast.Node
1095
+ Metadata *schemametadata.MetadataSchema
1096
+ Explore nativeinternal.FeatureProgrammer_IExplore
1097
+ Expression *shimast.Node
1098
1098
  }) *shimast.Node {
1099
- if len(props.Metadata.Functions) == 0 {
1100
- return props.Expression
1101
- }
1102
- return jsonStringifyProgrammer_factory.NewConditionalExpression(
1103
- jsonStringifyProgrammer_binary(jsonStringifyProgrammer_factory.NewStringLiteral("function", shimast.TokenFlagsNone), shimast.KindExclamationEqualsEqualsToken, nativefactories.ValueFactory.TYPEOF(props.Input)),
1104
- nil,
1105
- props.Expression,
1106
- nil,
1107
- jsonStringifyProgrammer_decode_functional(props.Explore),
1108
- )
1099
+ if len(props.Metadata.Functions) == 0 {
1100
+ return props.Expression
1101
+ }
1102
+ return jsonStringifyProgrammer_factory.NewConditionalExpression(
1103
+ jsonStringifyProgrammer_binary(jsonStringifyProgrammer_factory.NewStringLiteral("function", shimast.TokenFlagsNone), shimast.KindExclamationEqualsEqualsToken, nativefactories.ValueFactory.TYPEOF(props.Input)),
1104
+ nil,
1105
+ props.Expression,
1106
+ nil,
1107
+ jsonStringifyProgrammer_decode_functional(props.Explore),
1108
+ )
1109
1109
  }
1110
1110
 
1111
1111
  type jsonStringifyProgrammer_iterateProps struct {
1112
- Context nativecontext.ITypiaContext
1113
- Functor *nativehelpers.FunctionProgrammer
1114
- Input *shimast.Node
1115
- Unions []jsonStringifyProgrammer_IUnion
1116
- Expected string
1112
+ Context nativecontext.ITypiaContext
1113
+ Functor *nativehelpers.FunctionProgrammer
1114
+ Input *shimast.Node
1115
+ Unions []jsonStringifyProgrammer_IUnion
1116
+ Expected string
1117
1117
  }
1118
1118
 
1119
1119
  func jsonStringifyProgrammer_iterate(props jsonStringifyProgrammer_iterateProps) *shimast.Node {
1120
- statements := []*shimast.Node{}
1121
- for _, union := range props.Unions {
1122
- statements = append(statements, jsonStringifyProgrammer_factory.NewIfStatement(
1123
- union.Is(),
1124
- jsonStringifyProgrammer_factory.NewReturnStatement(union.Value()),
1125
- nil,
1126
- ))
1127
- }
1128
- statements = append(statements, jsonStringifyProgrammer_create_throw_error(jsonStringifyProgrammer_throwProps{
1129
- Context: props.Context,
1130
- Functor: props.Functor,
1131
- Input: props.Input,
1132
- Expected: props.Expected,
1133
- }))
1134
- return jsonStringifyProgrammer_factory.NewBlock(jsonStringifyProgrammer_factory.NewNodeList(statements), true)
1120
+ statements := []*shimast.Node{}
1121
+ for _, union := range props.Unions {
1122
+ statements = append(statements, jsonStringifyProgrammer_factory.NewIfStatement(
1123
+ union.Is(),
1124
+ jsonStringifyProgrammer_factory.NewReturnStatement(union.Value()),
1125
+ nil,
1126
+ ))
1127
+ }
1128
+ statements = append(statements, jsonStringifyProgrammer_create_throw_error(jsonStringifyProgrammer_throwProps{
1129
+ Context: props.Context,
1130
+ Functor: props.Functor,
1131
+ Input: props.Input,
1132
+ Expected: props.Expected,
1133
+ }))
1134
+ return jsonStringifyProgrammer_factory.NewBlock(jsonStringifyProgrammer_factory.NewNodeList(statements), true)
1135
1135
  }
1136
1136
 
1137
1137
  func jsonStringifyProgrammer_configure(props struct {
1138
- Context nativecontext.ITypiaContext
1139
- Functor *nativehelpers.FunctionProgrammer
1140
- Validated bool
1138
+ Context nativecontext.ITypiaContext
1139
+ Functor *nativehelpers.FunctionProgrammer
1140
+ Validated bool
1141
1141
  }) nativeinternal.FeatureProgrammer_IConfig {
1142
- var config nativeinternal.FeatureProgrammer_IConfig
1143
- config = nativeinternal.FeatureProgrammer_IConfig{
1144
- Types: nativeinternal.FeatureProgrammer_IConfig_ITypes{
1145
- Input: func(t *shimchecker.Type, name *string) *shimast.TypeNode {
1146
- if name != nil {
1147
- return jsonStringifyProgrammer_factory.NewTypeReferenceNode(jsonStringifyProgrammer_factory.NewIdentifier(*name), nil)
1148
- }
1149
- return jsonStringifyProgrammer_factory.NewTypeReferenceNode(jsonStringifyProgrammer_factory.NewIdentifier(nativefactories.TypeFactory.GetFullName(nativefactories.TypeFactory_GetFullNameProps{
1150
- Checker: props.Context.Checker,
1151
- Type: t,
1152
- })), nil)
1153
- },
1154
- Output: func(t *shimchecker.Type, name *string) *shimast.TypeNode {
1155
- return nativefactories.TypeFactory.Keyword("string")
1156
- },
1157
- },
1158
- Prefix: jsonStringifyProgrammer_PREFIX,
1159
- Trace: false,
1160
- Path: false,
1161
- Initializer: jsonStringifyProgrammer_initializer,
1162
- Decoder: func(next nativeinternal.FeatureProgrammer_DecoderProps) *shimast.Node {
1163
- return jsonStringifyProgrammer_decode(struct {
1164
- Context nativecontext.ITypiaContext
1165
- Config nativeinternal.FeatureProgrammer_IConfig
1166
- Functor *nativehelpers.FunctionProgrammer
1167
- Input *shimast.Node
1168
- Metadata *schemametadata.MetadataSchema
1169
- Explore nativeinternal.FeatureProgrammer_IExplore
1170
- Validated bool
1171
- }{
1172
- Context: props.Context,
1173
- Functor: props.Functor,
1174
- Config: config,
1175
- Metadata: next.Metadata,
1176
- Input: next.Input,
1177
- Explore: next.Explore,
1178
- Validated: props.Validated,
1179
- })
1180
- },
1181
- Objector: nativeinternal.FeatureProgrammer_IConfig_IObjector{
1182
- Checker: func(next nativeinternal.FeatureProgrammer_ObjectorCheckerProps) *shimast.Node {
1183
- return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
1184
- Context: props.Context,
1185
- Functor: props.Functor,
1186
- Metadata: next.Metadata,
1187
- Input: next.Input,
1188
- Explore: jsonStringifyProgrammer_checker_explore(next.Explore),
1189
- })
1190
- },
1191
- Decoder: func(next nativeinternal.FeatureProgrammer_ObjectorDecoderProps) *shimast.Node {
1192
- return jsonStringifyProgrammer_decode_object(struct {
1193
- Functor *nativehelpers.FunctionProgrammer
1194
- Input *shimast.Node
1195
- Object *schemametadata.MetadataObjectType
1196
- Explore nativeinternal.FeatureProgrammer_IExplore
1197
- }{Functor: props.Functor, Input: next.Input, Object: next.Object, Explore: next.Explore})
1198
- },
1199
- Joiner: func(next nativeinternal.FeatureProgrammer_ObjectorJoinerProps) *shimast.Node {
1200
- return nativehelpers.StringifyJoiner.Object(nativehelpers.StringifyJoiner_ObjectProps{
1201
- Context: props.Context,
1202
- Entries: next.Entries,
1203
- })
1204
- },
1205
- Unionizer: func(next nativeinternal.FeatureProgrammer_ObjectorUnionizerProps) *shimast.Node {
1206
- return nativeiterate.Decode_union_object(nativeiterate.Decode_union_objectProps{
1207
- Checker: func(v nativeiterate.Decode_union_object_next) *shimast.Node {
1208
- return nativeprogrammers.IsProgrammer.Decode_object(nativeprogrammers.IsProgrammer_DecodeObjectProps{
1209
- Context: props.Context,
1210
- Functor: props.Functor,
1211
- Input: v.Input,
1212
- Object: v.Object,
1213
- Explore: jsonStringifyProgrammer_feature_explore(v.Explore),
1214
- })
1215
- },
1216
- Decoder: func(v nativeiterate.Decode_union_object_next) *shimast.Node {
1217
- return jsonStringifyProgrammer_decode_object(struct {
1218
- Functor *nativehelpers.FunctionProgrammer
1219
- Input *shimast.Node
1220
- Object *schemametadata.MetadataObjectType
1221
- Explore nativeinternal.FeatureProgrammer_IExplore
1222
- }{Functor: props.Functor, Input: v.Input, Object: v.Object, Explore: jsonStringifyProgrammer_feature_explore(v.Explore)})
1223
- },
1224
- Success: func(exp *shimast.Expression) *shimast.Node {
1225
- return exp
1226
- },
1227
- Escaper: func(v nativeiterate.Decode_union_object_escape) *shimast.Node {
1228
- return jsonStringifyProgrammer_create_throw_error(jsonStringifyProgrammer_throwProps{
1229
- Context: props.Context,
1230
- Functor: props.Functor,
1231
- Expected: v.Expected,
1232
- Input: v.Input,
1233
- })
1234
- },
1235
- Objects: next.Objects,
1236
- Explore: next.Explore,
1237
- Input: next.Input,
1238
- })
1239
- },
1240
- Failure: func(next nativeinternal.FeatureProgrammer_ObjectorFailureProps) *shimast.Node {
1241
- return jsonStringifyProgrammer_create_throw_error(jsonStringifyProgrammer_throwProps{
1242
- Context: props.Context,
1243
- Functor: props.Functor,
1244
- Expected: next.Expected,
1245
- Input: next.Input,
1246
- })
1247
- },
1248
- },
1249
- Generator: nativeinternal.FeatureProgrammer_IConfig_IGenerator{
1250
- Arrays: func(collection *schemametadata.MetadataCollection) []*shimast.Node {
1251
- return jsonStringifyProgrammer_write_array_functions(struct {
1252
- Config nativeinternal.FeatureProgrammer_IConfig
1253
- Functor *nativehelpers.FunctionProgrammer
1254
- Collection *schemametadata.MetadataCollection
1255
- }{Config: config, Functor: props.Functor, Collection: collection})
1256
- },
1257
- Tuples: func(collection *schemametadata.MetadataCollection) []*shimast.Node {
1258
- return jsonStringifyProgrammer_write_tuple_functions(struct {
1259
- Context nativecontext.ITypiaContext
1260
- Config nativeinternal.FeatureProgrammer_IConfig
1261
- Functor *nativehelpers.FunctionProgrammer
1262
- Collection *schemametadata.MetadataCollection
1263
- Validated bool
1264
- }{Context: props.Context, Config: config, Functor: props.Functor, Collection: collection, Validated: props.Validated})
1265
- },
1266
- },
1267
- }
1268
- return config
1142
+ var config nativeinternal.FeatureProgrammer_IConfig
1143
+ config = nativeinternal.FeatureProgrammer_IConfig{
1144
+ Types: nativeinternal.FeatureProgrammer_IConfig_ITypes{
1145
+ Input: func(t *shimchecker.Type, name *string) *shimast.TypeNode {
1146
+ if name != nil {
1147
+ return jsonStringifyProgrammer_factory.NewTypeReferenceNode(jsonStringifyProgrammer_factory.NewIdentifier(*name), nil)
1148
+ }
1149
+ return jsonStringifyProgrammer_factory.NewTypeReferenceNode(jsonStringifyProgrammer_factory.NewIdentifier(nativefactories.TypeFactory.GetFullName(nativefactories.TypeFactory_GetFullNameProps{
1150
+ Checker: props.Context.Checker,
1151
+ Type: t,
1152
+ })), nil)
1153
+ },
1154
+ Output: func(t *shimchecker.Type, name *string) *shimast.TypeNode {
1155
+ return nativefactories.TypeFactory.Keyword("string")
1156
+ },
1157
+ },
1158
+ Prefix: jsonStringifyProgrammer_PREFIX,
1159
+ Trace: false,
1160
+ Path: false,
1161
+ Initializer: jsonStringifyProgrammer_initializer,
1162
+ Decoder: func(next nativeinternal.FeatureProgrammer_DecoderProps) *shimast.Node {
1163
+ return jsonStringifyProgrammer_decode(struct {
1164
+ Context nativecontext.ITypiaContext
1165
+ Config nativeinternal.FeatureProgrammer_IConfig
1166
+ Functor *nativehelpers.FunctionProgrammer
1167
+ Input *shimast.Node
1168
+ Metadata *schemametadata.MetadataSchema
1169
+ Explore nativeinternal.FeatureProgrammer_IExplore
1170
+ Validated bool
1171
+ }{
1172
+ Context: props.Context,
1173
+ Functor: props.Functor,
1174
+ Config: config,
1175
+ Metadata: next.Metadata,
1176
+ Input: next.Input,
1177
+ Explore: next.Explore,
1178
+ Validated: props.Validated,
1179
+ })
1180
+ },
1181
+ Objector: nativeinternal.FeatureProgrammer_IConfig_IObjector{
1182
+ Checker: func(next nativeinternal.FeatureProgrammer_ObjectorCheckerProps) *shimast.Node {
1183
+ return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
1184
+ Context: props.Context,
1185
+ Functor: props.Functor,
1186
+ Metadata: next.Metadata,
1187
+ Input: next.Input,
1188
+ Explore: jsonStringifyProgrammer_checker_explore(next.Explore),
1189
+ })
1190
+ },
1191
+ Decoder: func(next nativeinternal.FeatureProgrammer_ObjectorDecoderProps) *shimast.Node {
1192
+ return jsonStringifyProgrammer_decode_object(struct {
1193
+ Functor *nativehelpers.FunctionProgrammer
1194
+ Input *shimast.Node
1195
+ Object *schemametadata.MetadataObjectType
1196
+ Explore nativeinternal.FeatureProgrammer_IExplore
1197
+ }{Functor: props.Functor, Input: next.Input, Object: next.Object, Explore: next.Explore})
1198
+ },
1199
+ Joiner: func(next nativeinternal.FeatureProgrammer_ObjectorJoinerProps) *shimast.Node {
1200
+ return nativehelpers.StringifyJoiner.Object(nativehelpers.StringifyJoiner_ObjectProps{
1201
+ Context: props.Context,
1202
+ Entries: next.Entries,
1203
+ })
1204
+ },
1205
+ Unionizer: func(next nativeinternal.FeatureProgrammer_ObjectorUnionizerProps) *shimast.Node {
1206
+ return nativeiterate.Decode_union_object(nativeiterate.Decode_union_objectProps{
1207
+ Checker: func(v nativeiterate.Decode_union_object_next) *shimast.Node {
1208
+ return nativeprogrammers.IsProgrammer.Decode_object(nativeprogrammers.IsProgrammer_DecodeObjectProps{
1209
+ Context: props.Context,
1210
+ Functor: props.Functor,
1211
+ Input: v.Input,
1212
+ Object: v.Object,
1213
+ Explore: jsonStringifyProgrammer_feature_explore(v.Explore),
1214
+ })
1215
+ },
1216
+ Decoder: func(v nativeiterate.Decode_union_object_next) *shimast.Node {
1217
+ return jsonStringifyProgrammer_decode_object(struct {
1218
+ Functor *nativehelpers.FunctionProgrammer
1219
+ Input *shimast.Node
1220
+ Object *schemametadata.MetadataObjectType
1221
+ Explore nativeinternal.FeatureProgrammer_IExplore
1222
+ }{Functor: props.Functor, Input: v.Input, Object: v.Object, Explore: jsonStringifyProgrammer_feature_explore(v.Explore)})
1223
+ },
1224
+ Success: func(exp *shimast.Expression) *shimast.Node {
1225
+ return exp
1226
+ },
1227
+ Escaper: func(v nativeiterate.Decode_union_object_escape) *shimast.Node {
1228
+ return jsonStringifyProgrammer_create_throw_error(jsonStringifyProgrammer_throwProps{
1229
+ Context: props.Context,
1230
+ Functor: props.Functor,
1231
+ Expected: v.Expected,
1232
+ Input: v.Input,
1233
+ })
1234
+ },
1235
+ Objects: next.Objects,
1236
+ Explore: next.Explore,
1237
+ Input: next.Input,
1238
+ })
1239
+ },
1240
+ Failure: func(next nativeinternal.FeatureProgrammer_ObjectorFailureProps) *shimast.Node {
1241
+ return jsonStringifyProgrammer_create_throw_error(jsonStringifyProgrammer_throwProps{
1242
+ Context: props.Context,
1243
+ Functor: props.Functor,
1244
+ Expected: next.Expected,
1245
+ Input: next.Input,
1246
+ })
1247
+ },
1248
+ },
1249
+ Generator: nativeinternal.FeatureProgrammer_IConfig_IGenerator{
1250
+ Arrays: func(collection *schemametadata.MetadataCollection) []*shimast.Node {
1251
+ return jsonStringifyProgrammer_write_array_functions(struct {
1252
+ Config nativeinternal.FeatureProgrammer_IConfig
1253
+ Functor *nativehelpers.FunctionProgrammer
1254
+ Collection *schemametadata.MetadataCollection
1255
+ }{Config: config, Functor: props.Functor, Collection: collection})
1256
+ },
1257
+ Tuples: func(collection *schemametadata.MetadataCollection) []*shimast.Node {
1258
+ return jsonStringifyProgrammer_write_tuple_functions(struct {
1259
+ Context nativecontext.ITypiaContext
1260
+ Config nativeinternal.FeatureProgrammer_IConfig
1261
+ Functor *nativehelpers.FunctionProgrammer
1262
+ Collection *schemametadata.MetadataCollection
1263
+ Validated bool
1264
+ }{Context: props.Context, Config: config, Functor: props.Functor, Collection: collection, Validated: props.Validated})
1265
+ },
1266
+ },
1267
+ }
1268
+ return config
1269
1269
  }
1270
1270
 
1271
1271
  func jsonStringifyProgrammer_initializer(props nativeinternal.FeatureProgrammer_InitializerProps) nativeinternal.FeatureProgrammer_InitializerOutput {
1272
- result := nativefactories.JsonMetadataFactory.Analyze(nativefactories.JsonMetadataFactory_IProps{
1273
- Method: props.Functor.Method,
1274
- Checker: props.Context.Checker,
1275
- Transformer: props.Context.Transformer,
1276
- Type: props.Type,
1277
- })
1278
- return nativeinternal.FeatureProgrammer_InitializerOutput{
1279
- Collection: result.Collection,
1280
- Metadata: result.Metadata,
1281
- }
1272
+ result := nativefactories.JsonMetadataFactory.Analyze(nativefactories.JsonMetadataFactory_IProps{
1273
+ Method: props.Functor.Method,
1274
+ Checker: props.Context.Checker,
1275
+ Transformer: props.Context.Transformer,
1276
+ Type: props.Type,
1277
+ })
1278
+ return nativeinternal.FeatureProgrammer_InitializerOutput{
1279
+ Collection: result.Collection,
1280
+ Metadata: result.Metadata,
1281
+ }
1282
1282
  }
1283
1283
 
1284
1284
  type jsonStringifyProgrammer_throwProps struct {
1285
- Context nativecontext.ITypiaContext
1286
- Functor *nativehelpers.FunctionProgrammer
1287
- Expected string
1288
- Input *shimast.Node
1285
+ Context nativecontext.ITypiaContext
1286
+ Functor *nativehelpers.FunctionProgrammer
1287
+ Expected string
1288
+ Input *shimast.Node
1289
1289
  }
1290
1290
 
1291
1291
  func jsonStringifyProgrammer_create_throw_error(props jsonStringifyProgrammer_throwProps) *shimast.Node {
1292
- return jsonStringifyProgrammer_factory.NewExpressionStatement(
1293
- jsonStringifyProgrammer_factory.NewCallExpression(
1294
- jsonStringifyProgrammer_internal(props.Context, "throwTypeGuardError"),
1295
- nil,
1296
- jsonStringifyProgrammer_factory.NewNodeList(nil),
1297
- jsonStringifyProgrammer_factory.NewNodeList([]*shimast.Node{
1298
- jsonStringifyProgrammer_factory.NewObjectLiteralExpression(
1299
- jsonStringifyProgrammer_factory.NewNodeList([]*shimast.Node{
1300
- jsonStringifyProgrammer_factory.NewPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier("method"), nil, nil, jsonStringifyProgrammer_factory.NewStringLiteral(props.Functor.Method, shimast.TokenFlagsNone)),
1301
- jsonStringifyProgrammer_factory.NewPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier("expected"), nil, nil, jsonStringifyProgrammer_factory.NewStringLiteral(props.Expected, shimast.TokenFlagsNone)),
1302
- jsonStringifyProgrammer_factory.NewPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier("value"), nil, nil, props.Input),
1303
- }),
1304
- true,
1305
- ),
1306
- }),
1307
- shimast.NodeFlagsNone,
1308
- ),
1309
- )
1292
+ return jsonStringifyProgrammer_factory.NewExpressionStatement(
1293
+ jsonStringifyProgrammer_factory.NewCallExpression(
1294
+ jsonStringifyProgrammer_internal(props.Context, "throwTypeGuardError"),
1295
+ nil,
1296
+ jsonStringifyProgrammer_factory.NewNodeList(nil),
1297
+ jsonStringifyProgrammer_factory.NewNodeList([]*shimast.Node{
1298
+ jsonStringifyProgrammer_factory.NewObjectLiteralExpression(
1299
+ jsonStringifyProgrammer_factory.NewNodeList([]*shimast.Node{
1300
+ jsonStringifyProgrammer_factory.NewPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier("method"), nil, nil, jsonStringifyProgrammer_factory.NewStringLiteral(props.Functor.Method, shimast.TokenFlagsNone)),
1301
+ jsonStringifyProgrammer_factory.NewPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier("expected"), nil, nil, jsonStringifyProgrammer_factory.NewStringLiteral(props.Expected, shimast.TokenFlagsNone)),
1302
+ jsonStringifyProgrammer_factory.NewPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier("value"), nil, nil, props.Input),
1303
+ }),
1304
+ true,
1305
+ ),
1306
+ }),
1307
+ shimast.NodeFlagsNone,
1308
+ ),
1309
+ )
1310
1310
  }
1311
1311
 
1312
1312
  type jsonStringifyProgrammer_IUnion struct {
1313
- Type string
1314
- Is func() *shimast.Node
1315
- Value func() *shimast.Node
1313
+ Type string
1314
+ Is func() *shimast.Node
1315
+ Value func() *shimast.Node
1316
1316
  }
1317
1317
 
1318
1318
  func jsonStringifyProgrammer_binary(left *shimast.Node, operator shimast.Kind, right *shimast.Node) *shimast.Node {
1319
- return jsonStringifyProgrammer_factory.NewBinaryExpression(nil, left, nil, jsonStringifyProgrammer_factory.NewToken(operator), right)
1319
+ return jsonStringifyProgrammer_factory.NewBinaryExpression(nil, left, nil, jsonStringifyProgrammer_factory.NewToken(operator), right)
1320
1320
  }
1321
1321
 
1322
1322
  func jsonStringifyProgrammer_internal(context nativecontext.ITypiaContext, name string) *shimast.Node {
1323
- if importer, ok := context.Importer.(interface{ Internal(string) *shimast.Node }); ok {
1324
- return importer.Internal(name)
1325
- }
1326
- return jsonStringifyProgrammer_factory.NewIdentifier(name)
1323
+ if importer, ok := context.Importer.(interface{ Internal(string) *shimast.Node }); ok {
1324
+ return importer.Internal(name)
1325
+ }
1326
+ return jsonStringifyProgrammer_factory.NewIdentifier(name)
1327
1327
  }
1328
1328
 
1329
1329
  func jsonStringifyProgrammer_method_text(modulo *shimast.Node) string {
1330
- if modulo == nil {
1331
- return ""
1332
- }
1333
- return modulo.Text()
1330
+ if modulo == nil {
1331
+ return ""
1332
+ }
1333
+ return modulo.Text()
1334
1334
  }
1335
1335
 
1336
1336
  func jsonStringifyProgrammer_feature_explore(input any) nativeinternal.FeatureProgrammer_IExplore {
1337
- switch v := input.(type) {
1338
- case nativeinternal.FeatureProgrammer_IExplore:
1339
- return v
1340
- case *nativeinternal.FeatureProgrammer_IExplore:
1341
- return *v
1342
- default:
1343
- return nativeinternal.FeatureProgrammer_IExplore{}
1344
- }
1337
+ switch v := input.(type) {
1338
+ case nativeinternal.FeatureProgrammer_IExplore:
1339
+ return v
1340
+ case *nativeinternal.FeatureProgrammer_IExplore:
1341
+ return *v
1342
+ default:
1343
+ return nativeinternal.FeatureProgrammer_IExplore{}
1344
+ }
1345
1345
  }
1346
1346
 
1347
1347
  func jsonStringifyProgrammer_checker_explore(input any) nativeinternal.CheckerProgrammer_IExplore {
1348
- v := jsonStringifyProgrammer_feature_explore(input)
1349
- return nativeinternal.CheckerProgrammer_IExplore{
1350
- Tracable: v.Tracable,
1351
- Source: v.Source,
1352
- From: v.From,
1353
- Postfix: v.Postfix,
1354
- Start: v.Start,
1355
- }
1348
+ v := jsonStringifyProgrammer_feature_explore(input)
1349
+ return nativeinternal.CheckerProgrammer_IExplore{
1350
+ Tracable: v.Tracable,
1351
+ Source: v.Source,
1352
+ From: v.From,
1353
+ Postfix: v.Postfix,
1354
+ Start: v.Start,
1355
+ }
1356
1356
  }
1357
1357
 
1358
1358
  func jsonStringifyProgrammer_explore_with(explore nativeinternal.FeatureProgrammer_IExplore, source string, from string) nativeinternal.FeatureProgrammer_IExplore {
1359
- explore.Source = source
1360
- explore.From = from
1361
- return explore
1359
+ explore.Source = source
1360
+ explore.From = from
1361
+ return explore
1362
1362
  }
1363
1363
 
1364
1364
  func jsonStringifyProgrammer_some_arrays(values []*schemametadata.MetadataArray, pred func(*schemametadata.MetadataArray) bool) bool {
1365
- for _, value := range values {
1366
- if pred(value) {
1367
- return true
1368
- }
1369
- }
1370
- return false
1365
+ for _, value := range values {
1366
+ if pred(value) {
1367
+ return true
1368
+ }
1369
+ }
1370
+ return false
1371
1371
  }
1372
1372
 
1373
1373
  func jsonStringifyProgrammer_some_objects(values []*schemametadata.MetadataObject, pred func(*schemametadata.MetadataObject) bool) bool {
1374
- for _, value := range values {
1375
- if pred(value) {
1376
- return true
1377
- }
1378
- }
1379
- return false
1374
+ for _, value := range values {
1375
+ if pred(value) {
1376
+ return true
1377
+ }
1378
+ }
1379
+ return false
1380
1380
  }
1381
1381
 
1382
1382
  func jsonStringifyProgrammer_every_properties(values []*schemametadata.MetadataProperty, pred func(*schemametadata.MetadataProperty) bool) bool {
1383
- for _, value := range values {
1384
- if pred(value) == false {
1385
- return false
1386
- }
1387
- }
1388
- return true
1383
+ for _, value := range values {
1384
+ if pred(value) == false {
1385
+ return false
1386
+ }
1387
+ }
1388
+ return true
1389
1389
  }
1390
1390
 
1391
1391
  func jsonStringifyProgrammer_every_strings(values []string, pred func(string) bool) bool {
1392
- for _, value := range values {
1393
- if pred(value) == false {
1394
- return false
1395
- }
1396
- }
1397
- return true
1392
+ for _, value := range values {
1393
+ if pred(value) == false {
1394
+ return false
1395
+ }
1396
+ }
1397
+ return true
1398
1398
  }
1399
1399
 
1400
1400
  func jsonStringifyProgrammer_array_like_names[T interface {
1401
- *schemametadata.MetadataArray | *schemametadata.MetadataTuple
1401
+ *schemametadata.MetadataArray | *schemametadata.MetadataTuple
1402
1402
  }](values []T) string {
1403
- names := make([]string, 0, len(values))
1404
- for _, value := range values {
1405
- switch typed := any(value).(type) {
1406
- case *schemametadata.MetadataArray:
1407
- names = append(names, typed.Type.Name)
1408
- case *schemametadata.MetadataTuple:
1409
- names = append(names, typed.Type.Name)
1410
- }
1411
- }
1412
- return strings.Join(names, " | ")
1403
+ names := make([]string, 0, len(values))
1404
+ for _, value := range values {
1405
+ switch typed := any(value).(type) {
1406
+ case *schemametadata.MetadataArray:
1407
+ names = append(names, typed.Type.Name)
1408
+ case *schemametadata.MetadataTuple:
1409
+ names = append(names, typed.Type.Name)
1410
+ }
1411
+ }
1412
+ return strings.Join(names, " | ")
1413
1413
  }
1414
1414
 
1415
1415
  func jsonStringifyProgrammer_merge_functions(groups ...map[string]*shimast.Node) map[string]*shimast.Node {
1416
- output := map[string]*shimast.Node{}
1417
- for _, group := range groups {
1418
- for key, value := range group {
1419
- output[key] = value
1420
- }
1421
- }
1422
- return output
1416
+ output := map[string]*shimast.Node{}
1417
+ for _, group := range groups {
1418
+ for key, value := range group {
1419
+ output[key] = value
1420
+ }
1421
+ }
1422
+ return output
1423
1423
  }