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 misc
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 miscCloneProgrammerNamespace struct{}
@@ -20,11 +20,11 @@ type miscCloneProgrammerNamespace struct{}
20
20
  var MiscCloneProgrammer = miscCloneProgrammerNamespace{}
21
21
 
22
22
  type MiscCloneProgrammer_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 miscCloneProgrammer_PREFIX = "_c"
@@ -32,1175 +32,1175 @@ const miscCloneProgrammer_PREFIX = "_c"
32
32
  var miscCloneProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
33
33
 
34
34
  func (miscCloneProgrammerNamespace) Decompose(props MiscCloneProgrammer_DecomposeProps) nativeinternal.FeatureProgrammer_IDecomposed {
35
- config := miscCloneProgrammer_configure(struct {
36
- Context nativecontext.ITypiaContext
37
- Functor *nativehelpers.FunctionProgrammer
38
- }{
39
- Context: props.Context,
40
- Functor: props.Functor,
41
- })
42
- if props.Validated == false {
43
- config.Addition = func(collection *schemametadata.MetadataCollection) []*shimast.Node {
44
- return nativeprogrammers.IsProgrammer.Write_function_statements(nativeprogrammers.IsProgrammer_WriteFunctionStatementsProps{
45
- Context: props.Context,
46
- Functor: props.Functor,
47
- Collection: collection,
48
- })
49
- }
50
- }
51
- composed := nativeinternal.FeatureProgrammer.Compose(nativeinternal.FeatureProgrammer_ComposeProps{
52
- Context: props.Context,
53
- Config: config,
54
- Functor: props.Functor,
55
- Type: props.Type,
56
- Name: props.Name,
57
- })
58
- return nativeinternal.FeatureProgrammer_IDecomposed{
59
- Functions: composed.Functions,
60
- Statements: composed.Statements,
61
- Arrow: miscCloneProgrammer_factory.NewArrowFunction(
62
- nil,
63
- nil,
64
- miscCloneProgrammer_factory.NewNodeList(composed.Parameters),
65
- composed.Response,
66
- nil,
67
- miscCloneProgrammer_factory.NewToken(shimast.KindEqualsGreaterThanToken),
68
- composed.Body,
69
- ),
70
- }
35
+ config := miscCloneProgrammer_configure(struct {
36
+ Context nativecontext.ITypiaContext
37
+ Functor *nativehelpers.FunctionProgrammer
38
+ }{
39
+ Context: props.Context,
40
+ Functor: props.Functor,
41
+ })
42
+ if props.Validated == false {
43
+ config.Addition = func(collection *schemametadata.MetadataCollection) []*shimast.Node {
44
+ return nativeprogrammers.IsProgrammer.Write_function_statements(nativeprogrammers.IsProgrammer_WriteFunctionStatementsProps{
45
+ Context: props.Context,
46
+ Functor: props.Functor,
47
+ Collection: collection,
48
+ })
49
+ }
50
+ }
51
+ composed := nativeinternal.FeatureProgrammer.Compose(nativeinternal.FeatureProgrammer_ComposeProps{
52
+ Context: props.Context,
53
+ Config: config,
54
+ Functor: props.Functor,
55
+ Type: props.Type,
56
+ Name: props.Name,
57
+ })
58
+ return nativeinternal.FeatureProgrammer_IDecomposed{
59
+ Functions: composed.Functions,
60
+ Statements: composed.Statements,
61
+ Arrow: miscCloneProgrammer_factory.NewArrowFunction(
62
+ nil,
63
+ nil,
64
+ miscCloneProgrammer_factory.NewNodeList(composed.Parameters),
65
+ composed.Response,
66
+ nil,
67
+ miscCloneProgrammer_factory.NewToken(shimast.KindEqualsGreaterThanToken),
68
+ composed.Body,
69
+ ),
70
+ }
71
71
  }
72
72
 
73
73
  func (miscCloneProgrammerNamespace) Write(props nativecontext.IProgrammerProps) *shimast.Node {
74
- functor := nativehelpers.NewFunctionProgrammer(miscCloneProgrammer_method_text(props.Modulo))
75
- result := MiscCloneProgrammer.Decompose(MiscCloneProgrammer_DecomposeProps{
76
- Context: props.Context,
77
- Functor: functor,
78
- Type: props.Type,
79
- Name: props.Name,
80
- Validated: false,
81
- })
82
- return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{
83
- Modulo: props.Modulo,
84
- Functor: functor,
85
- Result: result,
86
- })
74
+ functor := nativehelpers.NewFunctionProgrammer(miscCloneProgrammer_method_text(props.Modulo))
75
+ result := MiscCloneProgrammer.Decompose(MiscCloneProgrammer_DecomposeProps{
76
+ Context: props.Context,
77
+ Functor: functor,
78
+ Type: props.Type,
79
+ Name: props.Name,
80
+ Validated: false,
81
+ })
82
+ return nativeinternal.FeatureProgrammer.WriteDecomposed(nativeinternal.FeatureProgrammer_WriteDecomposedProps{
83
+ Modulo: props.Modulo,
84
+ Functor: functor,
85
+ Result: result,
86
+ })
87
87
  }
88
88
 
89
89
  func miscCloneProgrammer_write_array_functions(props struct {
90
- Config nativeinternal.FeatureProgrammer_IConfig
91
- Functor *nativehelpers.FunctionProgrammer
92
- Collection *schemametadata.MetadataCollection
90
+ Config nativeinternal.FeatureProgrammer_IConfig
91
+ Functor *nativehelpers.FunctionProgrammer
92
+ Collection *schemametadata.MetadataCollection
93
93
  }) []*shimast.Node {
94
- output := []*shimast.Node{}
95
- for i, typ := range props.Collection.Arrays() {
96
- if typ.Recursive == false {
97
- continue
98
- }
99
- output = append(output, nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
100
- Name: fmt.Sprintf("%sa%d", props.Config.Prefix, i),
101
- Value: miscCloneProgrammer_factory.NewArrowFunction(
102
- nil,
103
- nil,
104
- miscCloneProgrammer_factory.NewNodeList(nativeinternal.FeatureProgrammer.ParameterDeclarations(nativeinternal.FeatureProgrammer_ParameterDeclarationsProps{
105
- Config: nativeinternal.FeatureProgrammer_ParameterConfig{Path: props.Config.Path, Trace: props.Config.Trace},
106
- Type: nativefactories.TypeFactory.Keyword("any"),
107
- Input: miscCloneProgrammer_factory.NewIdentifier("input"),
108
- })),
109
- nativefactories.TypeFactory.Keyword("any"),
110
- nil,
111
- miscCloneProgrammer_factory.NewToken(shimast.KindEqualsGreaterThanToken),
112
- miscCloneProgrammer_decode_array_inline(miscCloneProgrammer_decodeArrayProps{
113
- Config: props.Config,
114
- Functor: props.Functor,
115
- Input: miscCloneProgrammer_factory.NewIdentifier("input"),
116
- Array: schemametadata.MetadataArray_create(schemametadata.MetadataArray{
117
- Type: typ,
118
- Tags: [][]schemametadata.IMetadataTypeTag{},
119
- }),
120
- Explore: nativeinternal.FeatureProgrammer_IExplore{
121
- Tracable: props.Config.Trace,
122
- Source: "function",
123
- From: "array",
124
- Postfix: "",
125
- },
126
- }),
127
- ),
128
- }))
129
- }
130
- return output
94
+ output := []*shimast.Node{}
95
+ for i, typ := range props.Collection.Arrays() {
96
+ if typ.Recursive == false {
97
+ continue
98
+ }
99
+ output = append(output, nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
100
+ Name: fmt.Sprintf("%sa%d", props.Config.Prefix, i),
101
+ Value: miscCloneProgrammer_factory.NewArrowFunction(
102
+ nil,
103
+ nil,
104
+ miscCloneProgrammer_factory.NewNodeList(nativeinternal.FeatureProgrammer.ParameterDeclarations(nativeinternal.FeatureProgrammer_ParameterDeclarationsProps{
105
+ Config: nativeinternal.FeatureProgrammer_ParameterConfig{Path: props.Config.Path, Trace: props.Config.Trace},
106
+ Type: nativefactories.TypeFactory.Keyword("any"),
107
+ Input: miscCloneProgrammer_factory.NewIdentifier("input"),
108
+ })),
109
+ nativefactories.TypeFactory.Keyword("any"),
110
+ nil,
111
+ miscCloneProgrammer_factory.NewToken(shimast.KindEqualsGreaterThanToken),
112
+ miscCloneProgrammer_decode_array_inline(miscCloneProgrammer_decodeArrayProps{
113
+ Config: props.Config,
114
+ Functor: props.Functor,
115
+ Input: miscCloneProgrammer_factory.NewIdentifier("input"),
116
+ Array: schemametadata.MetadataArray_create(schemametadata.MetadataArray{
117
+ Type: typ,
118
+ Tags: [][]schemametadata.IMetadataTypeTag{},
119
+ }),
120
+ Explore: nativeinternal.FeatureProgrammer_IExplore{
121
+ Tracable: props.Config.Trace,
122
+ Source: "function",
123
+ From: "array",
124
+ Postfix: "",
125
+ },
126
+ }),
127
+ ),
128
+ }))
129
+ }
130
+ return output
131
131
  }
132
132
 
133
133
  func miscCloneProgrammer_write_tuple_functions(props struct {
134
- Context nativecontext.ITypiaContext
135
- Config nativeinternal.FeatureProgrammer_IConfig
136
- Functor *nativehelpers.FunctionProgrammer
137
- Collection *schemametadata.MetadataCollection
134
+ Context nativecontext.ITypiaContext
135
+ Config nativeinternal.FeatureProgrammer_IConfig
136
+ Functor *nativehelpers.FunctionProgrammer
137
+ Collection *schemametadata.MetadataCollection
138
138
  }) []*shimast.Node {
139
- output := []*shimast.Node{}
140
- for i, tuple := range props.Collection.Tuples() {
141
- if tuple.Recursive == false {
142
- continue
143
- }
144
- output = append(output, nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
145
- Name: fmt.Sprintf("%st%d", props.Config.Prefix, i),
146
- Value: miscCloneProgrammer_factory.NewArrowFunction(
147
- nil,
148
- nil,
149
- miscCloneProgrammer_factory.NewNodeList(nativeinternal.FeatureProgrammer.ParameterDeclarations(nativeinternal.FeatureProgrammer_ParameterDeclarationsProps{
150
- Config: nativeinternal.FeatureProgrammer_ParameterConfig{Path: props.Config.Path, Trace: props.Config.Trace},
151
- Type: nativefactories.TypeFactory.Keyword("any"),
152
- Input: miscCloneProgrammer_factory.NewIdentifier("input"),
153
- })),
154
- nativefactories.TypeFactory.Keyword("any"),
155
- nil,
156
- miscCloneProgrammer_factory.NewToken(shimast.KindEqualsGreaterThanToken),
157
- miscCloneProgrammer_decode_tuple_inline(miscCloneProgrammer_decodeTupleInlineProps{
158
- Context: props.Context,
159
- Config: props.Config,
160
- Functor: props.Functor,
161
- Input: miscCloneProgrammer_factory.NewIdentifier("input"),
162
- Tuple: tuple,
163
- Explore: nativeinternal.FeatureProgrammer_IExplore{
164
- Tracable: props.Config.Trace,
165
- Source: "function",
166
- From: "array",
167
- Postfix: "",
168
- },
169
- }),
170
- ),
171
- }))
172
- }
173
- return output
139
+ output := []*shimast.Node{}
140
+ for i, tuple := range props.Collection.Tuples() {
141
+ if tuple.Recursive == false {
142
+ continue
143
+ }
144
+ output = append(output, nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
145
+ Name: fmt.Sprintf("%st%d", props.Config.Prefix, i),
146
+ Value: miscCloneProgrammer_factory.NewArrowFunction(
147
+ nil,
148
+ nil,
149
+ miscCloneProgrammer_factory.NewNodeList(nativeinternal.FeatureProgrammer.ParameterDeclarations(nativeinternal.FeatureProgrammer_ParameterDeclarationsProps{
150
+ Config: nativeinternal.FeatureProgrammer_ParameterConfig{Path: props.Config.Path, Trace: props.Config.Trace},
151
+ Type: nativefactories.TypeFactory.Keyword("any"),
152
+ Input: miscCloneProgrammer_factory.NewIdentifier("input"),
153
+ })),
154
+ nativefactories.TypeFactory.Keyword("any"),
155
+ nil,
156
+ miscCloneProgrammer_factory.NewToken(shimast.KindEqualsGreaterThanToken),
157
+ miscCloneProgrammer_decode_tuple_inline(miscCloneProgrammer_decodeTupleInlineProps{
158
+ Context: props.Context,
159
+ Config: props.Config,
160
+ Functor: props.Functor,
161
+ Input: miscCloneProgrammer_factory.NewIdentifier("input"),
162
+ Tuple: tuple,
163
+ Explore: nativeinternal.FeatureProgrammer_IExplore{
164
+ Tracable: props.Config.Trace,
165
+ Source: "function",
166
+ From: "array",
167
+ Postfix: "",
168
+ },
169
+ }),
170
+ ),
171
+ }))
172
+ }
173
+ return output
174
174
  }
175
175
 
176
176
  func miscCloneProgrammer_decode(props struct {
177
- Context nativecontext.ITypiaContext
178
- Config nativeinternal.FeatureProgrammer_IConfig
179
- Functor *nativehelpers.FunctionProgrammer
180
- Input *shimast.Node
181
- Metadata *schemametadata.MetadataSchema
182
- Explore nativeinternal.FeatureProgrammer_IExplore
177
+ Context nativecontext.ITypiaContext
178
+ Config nativeinternal.FeatureProgrammer_IConfig
179
+ Functor *nativehelpers.FunctionProgrammer
180
+ Input *shimast.Node
181
+ Metadata *schemametadata.MetadataSchema
182
+ Explore nativeinternal.FeatureProgrammer_IExplore
183
183
  }) *shimast.Node {
184
- if props.Metadata.Any ||
185
- miscCloneProgrammer_some_arrays(props.Metadata.Arrays, func(a *schemametadata.MetadataArray) bool { return a.Type.Value.Any }) ||
186
- miscCloneProgrammer_some_tuples(props.Metadata.Tuples, func(t *schemametadata.MetadataTuple) bool {
187
- return len(t.Type.Elements) != 0 && miscCloneProgrammer_every_schema(t.Type.Elements, func(e *schemametadata.MetadataSchema) bool { return e.Any })
188
- }) {
189
- return miscCloneProgrammer_factory.NewCallExpression(
190
- miscCloneProgrammer_internal(props.Context, "miscCloneAny"),
191
- nil,
192
- nil,
193
- miscCloneProgrammer_factory.NewNodeList([]*shimast.Node{props.Input}),
194
- shimast.NodeFlagsNone,
195
- )
196
- }
184
+ if props.Metadata.Any ||
185
+ miscCloneProgrammer_some_arrays(props.Metadata.Arrays, func(a *schemametadata.MetadataArray) bool { return a.Type.Value.Any }) ||
186
+ miscCloneProgrammer_some_tuples(props.Metadata.Tuples, func(t *schemametadata.MetadataTuple) bool {
187
+ return len(t.Type.Elements) != 0 && miscCloneProgrammer_every_schema(t.Type.Elements, func(e *schemametadata.MetadataSchema) bool { return e.Any })
188
+ }) {
189
+ return miscCloneProgrammer_factory.NewCallExpression(
190
+ miscCloneProgrammer_internal(props.Context, "miscCloneAny"),
191
+ nil,
192
+ nil,
193
+ miscCloneProgrammer_factory.NewNodeList([]*shimast.Node{props.Input}),
194
+ shimast.NodeFlagsNone,
195
+ )
196
+ }
197
197
 
198
- unions := []miscCloneProgrammer_IUnion{}
199
- if len(props.Metadata.Functions) != 0 {
200
- unions = append(unions, miscCloneProgrammer_IUnion{
201
- Type: "functional",
202
- Is: func() *shimast.Node {
203
- return miscCloneProgrammer_factory.NewBinaryExpression(
204
- nil,
205
- miscCloneProgrammer_factory.NewStringLiteral("function", shimast.TokenFlagsNone),
206
- nil,
207
- miscCloneProgrammer_factory.NewToken(shimast.KindEqualsEqualsEqualsToken),
208
- miscCloneProgrammer_factory.NewTypeOfExpression(props.Input),
209
- )
210
- },
211
- Value: func() *shimast.Node {
212
- return miscCloneProgrammer_factory.NewIdentifier("undefined")
213
- },
214
- })
215
- }
216
- for _, tuple := range props.Metadata.Tuples {
217
- tuple := tuple
218
- unions = append(unions, miscCloneProgrammer_IUnion{
219
- Type: "tuple",
220
- Is: func() *shimast.Node {
221
- partial := schemametadata.MetadataSchema_initialize()
222
- partial.Tuples = append(partial.Tuples, tuple)
223
- return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
224
- Context: props.Context,
225
- Functor: props.Functor,
226
- Metadata: partial,
227
- Input: props.Input,
228
- Explore: nativeinternal.CheckerProgrammer_IExplore{
229
- Tracable: props.Explore.Tracable,
230
- Source: props.Explore.Source,
231
- From: props.Explore.From,
232
- Postfix: props.Explore.Postfix,
233
- Start: props.Explore.Start,
234
- },
235
- })
236
- },
237
- Value: func() *shimast.Node {
238
- return miscCloneProgrammer_decode_tuple(miscCloneProgrammer_decodeTupleProps{
239
- Context: props.Context,
240
- Config: props.Config,
241
- Functor: props.Functor,
242
- Input: props.Input,
243
- Tuple: tuple,
244
- Explore: props.Explore,
245
- })
246
- },
247
- })
248
- }
249
- if len(props.Metadata.Arrays) != 0 {
250
- unions = append(unions, miscCloneProgrammer_IUnion{
251
- Type: "array",
252
- Is: func() *shimast.Node {
253
- return nativefactories.ExpressionFactory.IsArray(props.Input)
254
- },
255
- Value: func() *shimast.Node {
256
- explore := props.Explore
257
- explore.From = "array"
258
- return miscCloneProgrammer_explore_arrays(miscCloneProgrammer_exploreArraysProps{
259
- Context: props.Context,
260
- Config: props.Config,
261
- Functor: props.Functor,
262
- Input: props.Input,
263
- Arrays: props.Metadata.Arrays,
264
- Explore: explore,
265
- })
266
- },
267
- })
268
- }
269
- if len(props.Metadata.Sets) != 0 {
270
- unions = append(unions, miscCloneProgrammer_IUnion{
271
- Type: "set",
272
- Is: func() *shimast.Node {
273
- return nativefactories.ExpressionFactory.IsInstanceOf("Set", props.Input)
274
- },
275
- Value: func() *shimast.Node {
276
- explore := props.Explore
277
- explore.From = "array"
278
- return miscCloneProgrammer_explore_sets(miscCloneProgrammer_exploreSetsProps{
279
- Context: props.Context,
280
- Config: props.Config,
281
- Functor: props.Functor,
282
- Input: props.Input,
283
- Sets: props.Metadata.Sets,
284
- Explore: explore,
285
- })
286
- },
287
- })
288
- }
289
- if len(props.Metadata.Maps) != 0 {
290
- unions = append(unions, miscCloneProgrammer_IUnion{
291
- Type: "map",
292
- Is: func() *shimast.Node {
293
- return nativefactories.ExpressionFactory.IsInstanceOf("Map", props.Input)
294
- },
295
- Value: func() *shimast.Node {
296
- explore := props.Explore
297
- explore.From = "array"
298
- return miscCloneProgrammer_explore_maps(miscCloneProgrammer_exploreMapsProps{
299
- Context: props.Context,
300
- Config: props.Config,
301
- Functor: props.Functor,
302
- Input: props.Input,
303
- Maps: props.Metadata.Maps,
304
- Explore: explore,
305
- })
306
- },
307
- })
308
- }
309
- for _, native := range props.Metadata.Natives {
310
- native := native
311
- unions = append(unions, miscCloneProgrammer_IUnion{
312
- Type: "native",
313
- Is: func() *shimast.Node {
314
- return nativefactories.ExpressionFactory.IsInstanceOf(native.Name, props.Input)
315
- },
316
- Value: func() *shimast.Node {
317
- if native.Name == "Boolean" || native.Name == "Number" || native.Name == "String" {
318
- return miscCloneProgrammer_factory.NewCallExpression(
319
- nativefactories.IdentifierFactory.Access(props.Input, "valueOf"),
320
- nil,
321
- nil,
322
- nil,
323
- shimast.NodeFlagsNone,
324
- )
325
- }
326
- return miscCloneProgrammer_decode_native(struct {
327
- Type string
328
- Input *shimast.Node
329
- }{Type: native.Name, Input: props.Input})
330
- },
331
- })
332
- }
333
- if len(props.Metadata.Objects) != 0 {
334
- unions = append(unions, miscCloneProgrammer_IUnion{
335
- Type: "object",
336
- Is: func() *shimast.Node {
337
- return nativefactories.ExpressionFactory.IsObject(nativefactories.ExpressionFactory_IsObjectProps{
338
- CheckNull: true,
339
- CheckArray: false,
340
- Input: props.Input,
341
- })
342
- },
343
- Value: func() *shimast.Node {
344
- explore := props.Explore
345
- explore.From = "object"
346
- return miscCloneProgrammer_explore_objects(miscCloneProgrammer_exploreObjectsProps{
347
- Config: props.Config,
348
- Functor: props.Functor,
349
- Input: props.Input,
350
- Metadata: props.Metadata,
351
- Explore: explore,
352
- })
353
- },
354
- })
355
- }
198
+ unions := []miscCloneProgrammer_IUnion{}
199
+ if len(props.Metadata.Functions) != 0 {
200
+ unions = append(unions, miscCloneProgrammer_IUnion{
201
+ Type: "functional",
202
+ Is: func() *shimast.Node {
203
+ return miscCloneProgrammer_factory.NewBinaryExpression(
204
+ nil,
205
+ miscCloneProgrammer_factory.NewStringLiteral("function", shimast.TokenFlagsNone),
206
+ nil,
207
+ miscCloneProgrammer_factory.NewToken(shimast.KindEqualsEqualsEqualsToken),
208
+ miscCloneProgrammer_factory.NewTypeOfExpression(props.Input),
209
+ )
210
+ },
211
+ Value: func() *shimast.Node {
212
+ return miscCloneProgrammer_factory.NewIdentifier("undefined")
213
+ },
214
+ })
215
+ }
216
+ for _, tuple := range props.Metadata.Tuples {
217
+ tuple := tuple
218
+ unions = append(unions, miscCloneProgrammer_IUnion{
219
+ Type: "tuple",
220
+ Is: func() *shimast.Node {
221
+ partial := schemametadata.MetadataSchema_initialize()
222
+ partial.Tuples = append(partial.Tuples, tuple)
223
+ return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
224
+ Context: props.Context,
225
+ Functor: props.Functor,
226
+ Metadata: partial,
227
+ Input: props.Input,
228
+ Explore: nativeinternal.CheckerProgrammer_IExplore{
229
+ Tracable: props.Explore.Tracable,
230
+ Source: props.Explore.Source,
231
+ From: props.Explore.From,
232
+ Postfix: props.Explore.Postfix,
233
+ Start: props.Explore.Start,
234
+ },
235
+ })
236
+ },
237
+ Value: func() *shimast.Node {
238
+ return miscCloneProgrammer_decode_tuple(miscCloneProgrammer_decodeTupleProps{
239
+ Context: props.Context,
240
+ Config: props.Config,
241
+ Functor: props.Functor,
242
+ Input: props.Input,
243
+ Tuple: tuple,
244
+ Explore: props.Explore,
245
+ })
246
+ },
247
+ })
248
+ }
249
+ if len(props.Metadata.Arrays) != 0 {
250
+ unions = append(unions, miscCloneProgrammer_IUnion{
251
+ Type: "array",
252
+ Is: func() *shimast.Node {
253
+ return nativefactories.ExpressionFactory.IsArray(props.Input)
254
+ },
255
+ Value: func() *shimast.Node {
256
+ explore := props.Explore
257
+ explore.From = "array"
258
+ return miscCloneProgrammer_explore_arrays(miscCloneProgrammer_exploreArraysProps{
259
+ Context: props.Context,
260
+ Config: props.Config,
261
+ Functor: props.Functor,
262
+ Input: props.Input,
263
+ Arrays: props.Metadata.Arrays,
264
+ Explore: explore,
265
+ })
266
+ },
267
+ })
268
+ }
269
+ if len(props.Metadata.Sets) != 0 {
270
+ unions = append(unions, miscCloneProgrammer_IUnion{
271
+ Type: "set",
272
+ Is: func() *shimast.Node {
273
+ return nativefactories.ExpressionFactory.IsInstanceOf("Set", props.Input)
274
+ },
275
+ Value: func() *shimast.Node {
276
+ explore := props.Explore
277
+ explore.From = "array"
278
+ return miscCloneProgrammer_explore_sets(miscCloneProgrammer_exploreSetsProps{
279
+ Context: props.Context,
280
+ Config: props.Config,
281
+ Functor: props.Functor,
282
+ Input: props.Input,
283
+ Sets: props.Metadata.Sets,
284
+ Explore: explore,
285
+ })
286
+ },
287
+ })
288
+ }
289
+ if len(props.Metadata.Maps) != 0 {
290
+ unions = append(unions, miscCloneProgrammer_IUnion{
291
+ Type: "map",
292
+ Is: func() *shimast.Node {
293
+ return nativefactories.ExpressionFactory.IsInstanceOf("Map", props.Input)
294
+ },
295
+ Value: func() *shimast.Node {
296
+ explore := props.Explore
297
+ explore.From = "array"
298
+ return miscCloneProgrammer_explore_maps(miscCloneProgrammer_exploreMapsProps{
299
+ Context: props.Context,
300
+ Config: props.Config,
301
+ Functor: props.Functor,
302
+ Input: props.Input,
303
+ Maps: props.Metadata.Maps,
304
+ Explore: explore,
305
+ })
306
+ },
307
+ })
308
+ }
309
+ for _, native := range props.Metadata.Natives {
310
+ native := native
311
+ unions = append(unions, miscCloneProgrammer_IUnion{
312
+ Type: "native",
313
+ Is: func() *shimast.Node {
314
+ return nativefactories.ExpressionFactory.IsInstanceOf(native.Name, props.Input)
315
+ },
316
+ Value: func() *shimast.Node {
317
+ if native.Name == "Boolean" || native.Name == "Number" || native.Name == "String" {
318
+ return miscCloneProgrammer_factory.NewCallExpression(
319
+ nativefactories.IdentifierFactory.Access(props.Input, "valueOf"),
320
+ nil,
321
+ nil,
322
+ nil,
323
+ shimast.NodeFlagsNone,
324
+ )
325
+ }
326
+ return miscCloneProgrammer_decode_native(struct {
327
+ Type string
328
+ Input *shimast.Node
329
+ }{Type: native.Name, Input: props.Input})
330
+ },
331
+ })
332
+ }
333
+ if len(props.Metadata.Objects) != 0 {
334
+ unions = append(unions, miscCloneProgrammer_IUnion{
335
+ Type: "object",
336
+ Is: func() *shimast.Node {
337
+ return nativefactories.ExpressionFactory.IsObject(nativefactories.ExpressionFactory_IsObjectProps{
338
+ CheckNull: true,
339
+ CheckArray: false,
340
+ Input: props.Input,
341
+ })
342
+ },
343
+ Value: func() *shimast.Node {
344
+ explore := props.Explore
345
+ explore.From = "object"
346
+ return miscCloneProgrammer_explore_objects(miscCloneProgrammer_exploreObjectsProps{
347
+ Config: props.Config,
348
+ Functor: props.Functor,
349
+ Input: props.Input,
350
+ Metadata: props.Metadata,
351
+ Explore: explore,
352
+ })
353
+ },
354
+ })
355
+ }
356
356
 
357
- if len(unions) == 0 {
358
- return props.Input
359
- }
360
- if len(unions) == 1 && props.Metadata.Size() == 1 {
361
- value := unions[0].Value()
362
- if (props.Metadata.Nullable || props.Metadata.IsRequired() == false) && miscCloneProgrammer_is_instance(props.Metadata) {
363
- value = miscCloneProgrammer_factory.NewConditionalExpression(
364
- props.Input,
365
- nil,
366
- value,
367
- nil,
368
- props.Input,
369
- )
370
- }
371
- return miscCloneProgrammer_factory.NewAsExpression(value, nativefactories.TypeFactory.Keyword("any"))
372
- }
373
- last := props.Input
374
- for i := len(unions) - 1; i >= 0; i-- {
375
- u := unions[i]
376
- last = miscCloneProgrammer_factory.NewConditionalExpression(u.Is(), nil, u.Value(), nil, last)
377
- }
378
- return miscCloneProgrammer_factory.NewAsExpression(last, nativefactories.TypeFactory.Keyword("any"))
357
+ if len(unions) == 0 {
358
+ return props.Input
359
+ }
360
+ if len(unions) == 1 && props.Metadata.Size() == 1 {
361
+ value := unions[0].Value()
362
+ if (props.Metadata.Nullable || props.Metadata.IsRequired() == false) && miscCloneProgrammer_is_instance(props.Metadata) {
363
+ value = miscCloneProgrammer_factory.NewConditionalExpression(
364
+ props.Input,
365
+ nil,
366
+ value,
367
+ nil,
368
+ props.Input,
369
+ )
370
+ }
371
+ return miscCloneProgrammer_factory.NewAsExpression(value, nativefactories.TypeFactory.Keyword("any"))
372
+ }
373
+ last := props.Input
374
+ for i := len(unions) - 1; i >= 0; i-- {
375
+ u := unions[i]
376
+ last = miscCloneProgrammer_factory.NewConditionalExpression(u.Is(), nil, u.Value(), nil, last)
377
+ }
378
+ return miscCloneProgrammer_factory.NewAsExpression(last, nativefactories.TypeFactory.Keyword("any"))
379
379
  }
380
380
 
381
381
  type miscCloneProgrammer_IUnion struct {
382
- Type string
383
- Is func() *shimast.Node
384
- Value func() *shimast.Node
382
+ Type string
383
+ Is func() *shimast.Node
384
+ Value func() *shimast.Node
385
385
  }
386
386
 
387
387
  func miscCloneProgrammer_decode_object(props struct {
388
- Functor *nativehelpers.FunctionProgrammer
389
- Input *shimast.Node
390
- Object *schemametadata.MetadataObjectType
391
- Explore nativeinternal.FeatureProgrammer_IExplore
388
+ Functor *nativehelpers.FunctionProgrammer
389
+ Input *shimast.Node
390
+ Object *schemametadata.MetadataObjectType
391
+ Explore nativeinternal.FeatureProgrammer_IExplore
392
392
  }) *shimast.Node {
393
- return nativeinternal.FeatureProgrammer.Decode_object(nativeinternal.FeatureProgrammer_DecodeObjectProps{
394
- Config: nativeinternal.FeatureProgrammer_DecodeObjectConfig{
395
- Trace: false,
396
- Path: false,
397
- Prefix: miscCloneProgrammer_PREFIX,
398
- },
399
- Functor: props.Functor,
400
- Input: props.Input,
401
- Object: props.Object,
402
- Explore: props.Explore,
403
- })
393
+ return nativeinternal.FeatureProgrammer.Decode_object(nativeinternal.FeatureProgrammer_DecodeObjectProps{
394
+ Config: nativeinternal.FeatureProgrammer_DecodeObjectConfig{
395
+ Trace: false,
396
+ Path: false,
397
+ Prefix: miscCloneProgrammer_PREFIX,
398
+ },
399
+ Functor: props.Functor,
400
+ Input: props.Input,
401
+ Object: props.Object,
402
+ Explore: props.Explore,
403
+ })
404
404
  }
405
405
 
406
406
  type miscCloneProgrammer_decodeArrayProps struct {
407
- Config nativeinternal.FeatureProgrammer_IConfig
408
- Functor *nativehelpers.FunctionProgrammer
409
- Input *shimast.Node
410
- Array *schemametadata.MetadataArray
411
- Explore nativeinternal.FeatureProgrammer_IExplore
407
+ Config nativeinternal.FeatureProgrammer_IConfig
408
+ Functor *nativehelpers.FunctionProgrammer
409
+ Input *shimast.Node
410
+ Array *schemametadata.MetadataArray
411
+ Explore nativeinternal.FeatureProgrammer_IExplore
412
412
  }
413
413
 
414
414
  func miscCloneProgrammer_decode_array(props miscCloneProgrammer_decodeArrayProps) *shimast.Node {
415
- if props.Array.Type.Recursive {
416
- return miscCloneProgrammer_factory.NewCallExpression(
417
- miscCloneProgrammer_factory.NewIdentifier(props.Functor.UseLocal(fmt.Sprintf("%sa%d", props.Config.Prefix, *props.Array.Type.Index))),
418
- nil,
419
- nil,
420
- miscCloneProgrammer_factory.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
421
- Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace},
422
- Explore: miscCloneProgrammer_explore_with(props.Explore, "function", "array"),
423
- Input: props.Input,
424
- })),
425
- shimast.NodeFlagsNone,
426
- )
427
- }
428
- return miscCloneProgrammer_decode_array_inline(props)
415
+ if props.Array.Type.Recursive {
416
+ return miscCloneProgrammer_factory.NewCallExpression(
417
+ miscCloneProgrammer_factory.NewIdentifier(props.Functor.UseLocal(fmt.Sprintf("%sa%d", props.Config.Prefix, *props.Array.Type.Index))),
418
+ nil,
419
+ nil,
420
+ miscCloneProgrammer_factory.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
421
+ Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace},
422
+ Explore: miscCloneProgrammer_explore_with(props.Explore, "function", "array"),
423
+ Input: props.Input,
424
+ })),
425
+ shimast.NodeFlagsNone,
426
+ )
427
+ }
428
+ return miscCloneProgrammer_decode_array_inline(props)
429
429
  }
430
430
 
431
431
  func miscCloneProgrammer_decode_array_inline(props miscCloneProgrammer_decodeArrayProps) *shimast.Node {
432
- return nativeinternal.FeatureProgrammer.Decode_array(nativeinternal.FeatureProgrammer_DecodeArrayProps{
433
- Config: nativeinternal.FeatureProgrammer_DecodeArrayConfig{
434
- Trace: props.Config.Trace,
435
- Path: props.Config.Path,
436
- Prefix: props.Config.Prefix,
437
- Decoder: props.Config.Decoder,
438
- },
439
- Functor: props.Functor,
440
- Combiner: func(next struct {
441
- Input *shimast.Expression
442
- Arrow *shimast.Node
443
- }) *shimast.Node {
444
- return nativehelpers.CloneJoiner.Array(nativehelpers.CloneJoiner_ArrayProps{
445
- Input: next.Input,
446
- Arrow: next.Arrow,
447
- })
448
- },
449
- Array: props.Array,
450
- Input: props.Input,
451
- Explore: props.Explore,
452
- })
432
+ return nativeinternal.FeatureProgrammer.Decode_array(nativeinternal.FeatureProgrammer_DecodeArrayProps{
433
+ Config: nativeinternal.FeatureProgrammer_DecodeArrayConfig{
434
+ Trace: props.Config.Trace,
435
+ Path: props.Config.Path,
436
+ Prefix: props.Config.Prefix,
437
+ Decoder: props.Config.Decoder,
438
+ },
439
+ Functor: props.Functor,
440
+ Combiner: func(next struct {
441
+ Input *shimast.Expression
442
+ Arrow *shimast.Node
443
+ }) *shimast.Node {
444
+ return nativehelpers.CloneJoiner.Array(nativehelpers.CloneJoiner_ArrayProps{
445
+ Input: next.Input,
446
+ Arrow: next.Arrow,
447
+ })
448
+ },
449
+ Array: props.Array,
450
+ Input: props.Input,
451
+ Explore: props.Explore,
452
+ })
453
453
  }
454
454
 
455
455
  type miscCloneProgrammer_decodeTupleProps struct {
456
- Context nativecontext.ITypiaContext
457
- Config nativeinternal.FeatureProgrammer_IConfig
458
- Functor *nativehelpers.FunctionProgrammer
459
- Input *shimast.Node
460
- Tuple *schemametadata.MetadataTuple
461
- Explore nativeinternal.FeatureProgrammer_IExplore
456
+ Context nativecontext.ITypiaContext
457
+ Config nativeinternal.FeatureProgrammer_IConfig
458
+ Functor *nativehelpers.FunctionProgrammer
459
+ Input *shimast.Node
460
+ Tuple *schemametadata.MetadataTuple
461
+ Explore nativeinternal.FeatureProgrammer_IExplore
462
462
  }
463
463
 
464
464
  func miscCloneProgrammer_decode_tuple(props miscCloneProgrammer_decodeTupleProps) *shimast.Node {
465
- if props.Tuple.Type.Recursive {
466
- return miscCloneProgrammer_factory.NewCallExpression(
467
- miscCloneProgrammer_factory.NewIdentifier(props.Functor.UseLocal(fmt.Sprintf("%st%d", props.Config.Prefix, *props.Tuple.Type.Index))),
468
- nil,
469
- nil,
470
- miscCloneProgrammer_factory.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
471
- Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace},
472
- Explore: miscCloneProgrammer_explore_with(props.Explore, "function", props.Explore.From),
473
- Input: props.Input,
474
- })),
475
- shimast.NodeFlagsNone,
476
- )
477
- }
478
- return miscCloneProgrammer_decode_tuple_inline(miscCloneProgrammer_decodeTupleInlineProps{
479
- Context: props.Context,
480
- Config: props.Config,
481
- Functor: props.Functor,
482
- Input: props.Input,
483
- Tuple: props.Tuple.Type,
484
- Explore: props.Explore,
485
- })
465
+ if props.Tuple.Type.Recursive {
466
+ return miscCloneProgrammer_factory.NewCallExpression(
467
+ miscCloneProgrammer_factory.NewIdentifier(props.Functor.UseLocal(fmt.Sprintf("%st%d", props.Config.Prefix, *props.Tuple.Type.Index))),
468
+ nil,
469
+ nil,
470
+ miscCloneProgrammer_factory.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
471
+ Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace},
472
+ Explore: miscCloneProgrammer_explore_with(props.Explore, "function", props.Explore.From),
473
+ Input: props.Input,
474
+ })),
475
+ shimast.NodeFlagsNone,
476
+ )
477
+ }
478
+ return miscCloneProgrammer_decode_tuple_inline(miscCloneProgrammer_decodeTupleInlineProps{
479
+ Context: props.Context,
480
+ Config: props.Config,
481
+ Functor: props.Functor,
482
+ Input: props.Input,
483
+ Tuple: props.Tuple.Type,
484
+ Explore: props.Explore,
485
+ })
486
486
  }
487
487
 
488
488
  type miscCloneProgrammer_decodeTupleInlineProps struct {
489
- Context nativecontext.ITypiaContext
490
- Config nativeinternal.FeatureProgrammer_IConfig
491
- Functor *nativehelpers.FunctionProgrammer
492
- Input *shimast.Node
493
- Tuple *schemametadata.MetadataTupleType
494
- Explore nativeinternal.FeatureProgrammer_IExplore
489
+ Context nativecontext.ITypiaContext
490
+ Config nativeinternal.FeatureProgrammer_IConfig
491
+ Functor *nativehelpers.FunctionProgrammer
492
+ Input *shimast.Node
493
+ Tuple *schemametadata.MetadataTupleType
494
+ Explore nativeinternal.FeatureProgrammer_IExplore
495
495
  }
496
496
 
497
497
  func miscCloneProgrammer_decode_tuple_inline(props miscCloneProgrammer_decodeTupleInlineProps) *shimast.Node {
498
- elements := []*shimast.Node{}
499
- for index, elem := range props.Tuple.Elements {
500
- if elem.Rest != nil {
501
- continue
502
- }
503
- postfix := fmt.Sprintf("\"[%d]\"", index)
504
- if props.Explore.Postfix != "" {
505
- postfix = fmt.Sprintf("%s[%d]\"", nativeiterate.Postfix_of_tuple_export(props.Explore.Postfix), index)
506
- }
507
- explore := props.Explore
508
- explore.From = "array"
509
- explore.Postfix = postfix
510
- elements = append(elements, miscCloneProgrammer_decode(struct {
511
- Context nativecontext.ITypiaContext
512
- Config nativeinternal.FeatureProgrammer_IConfig
513
- Functor *nativehelpers.FunctionProgrammer
514
- Input *shimast.Node
515
- Metadata *schemametadata.MetadataSchema
516
- Explore nativeinternal.FeatureProgrammer_IExplore
517
- }{
518
- Context: props.Context,
519
- Config: props.Config,
520
- Functor: props.Functor,
521
- Input: miscCloneProgrammer_factory.NewElementAccessExpression(props.Input, nil, nativefactories.ExpressionFactory.Number(index), shimast.NodeFlagsNone),
522
- Metadata: elem,
523
- Explore: explore,
524
- }))
525
- }
526
- var rest *shimast.Node
527
- if len(props.Tuple.Elements) != 0 {
528
- last := props.Tuple.Elements[len(props.Tuple.Elements)-1]
529
- if last.Rest != nil {
530
- start := len(props.Tuple.Elements) - 1
531
- explore := props.Explore
532
- explore.Start = &start
533
- rest = miscCloneProgrammer_decode(struct {
534
- Context nativecontext.ITypiaContext
535
- Config nativeinternal.FeatureProgrammer_IConfig
536
- Functor *nativehelpers.FunctionProgrammer
537
- Input *shimast.Node
538
- Metadata *schemametadata.MetadataSchema
539
- Explore nativeinternal.FeatureProgrammer_IExplore
540
- }{
541
- Context: props.Context,
542
- Config: props.Config,
543
- Functor: props.Functor,
544
- Input: miscCloneProgrammer_factory.NewCallExpression(
545
- nativefactories.IdentifierFactory.Access(props.Input, "slice"),
546
- nil,
547
- nil,
548
- miscCloneProgrammer_factory.NewNodeList([]*shimast.Node{nativefactories.ExpressionFactory.Number(start)}),
549
- shimast.NodeFlagsNone,
550
- ),
551
- Metadata: nativeiterate.Wrap_metadata_rest_tuple_export(last.Rest),
552
- Explore: explore,
553
- })
554
- }
555
- }
556
- return nativehelpers.CloneJoiner.Tuple(nativehelpers.CloneJoiner_TupleProps{
557
- Elements: elements,
558
- Rest: rest,
559
- })
498
+ elements := []*shimast.Node{}
499
+ for index, elem := range props.Tuple.Elements {
500
+ if elem.Rest != nil {
501
+ continue
502
+ }
503
+ postfix := fmt.Sprintf("\"[%d]\"", index)
504
+ if props.Explore.Postfix != "" {
505
+ postfix = fmt.Sprintf("%s[%d]\"", nativeiterate.Postfix_of_tuple_export(props.Explore.Postfix), index)
506
+ }
507
+ explore := props.Explore
508
+ explore.From = "array"
509
+ explore.Postfix = postfix
510
+ elements = append(elements, miscCloneProgrammer_decode(struct {
511
+ Context nativecontext.ITypiaContext
512
+ Config nativeinternal.FeatureProgrammer_IConfig
513
+ Functor *nativehelpers.FunctionProgrammer
514
+ Input *shimast.Node
515
+ Metadata *schemametadata.MetadataSchema
516
+ Explore nativeinternal.FeatureProgrammer_IExplore
517
+ }{
518
+ Context: props.Context,
519
+ Config: props.Config,
520
+ Functor: props.Functor,
521
+ Input: miscCloneProgrammer_factory.NewElementAccessExpression(props.Input, nil, nativefactories.ExpressionFactory.Number(index), shimast.NodeFlagsNone),
522
+ Metadata: elem,
523
+ Explore: explore,
524
+ }))
525
+ }
526
+ var rest *shimast.Node
527
+ if len(props.Tuple.Elements) != 0 {
528
+ last := props.Tuple.Elements[len(props.Tuple.Elements)-1]
529
+ if last.Rest != nil {
530
+ start := len(props.Tuple.Elements) - 1
531
+ explore := props.Explore
532
+ explore.Start = &start
533
+ rest = miscCloneProgrammer_decode(struct {
534
+ Context nativecontext.ITypiaContext
535
+ Config nativeinternal.FeatureProgrammer_IConfig
536
+ Functor *nativehelpers.FunctionProgrammer
537
+ Input *shimast.Node
538
+ Metadata *schemametadata.MetadataSchema
539
+ Explore nativeinternal.FeatureProgrammer_IExplore
540
+ }{
541
+ Context: props.Context,
542
+ Config: props.Config,
543
+ Functor: props.Functor,
544
+ Input: miscCloneProgrammer_factory.NewCallExpression(
545
+ nativefactories.IdentifierFactory.Access(props.Input, "slice"),
546
+ nil,
547
+ nil,
548
+ miscCloneProgrammer_factory.NewNodeList([]*shimast.Node{nativefactories.ExpressionFactory.Number(start)}),
549
+ shimast.NodeFlagsNone,
550
+ ),
551
+ Metadata: nativeiterate.Wrap_metadata_rest_tuple_export(last.Rest),
552
+ Explore: explore,
553
+ })
554
+ }
555
+ }
556
+ return nativehelpers.CloneJoiner.Tuple(nativehelpers.CloneJoiner_TupleProps{
557
+ Elements: elements,
558
+ Rest: rest,
559
+ })
560
560
  }
561
561
 
562
562
  func miscCloneProgrammer_decode_native(props struct {
563
- Type string
564
- Input *shimast.Node
563
+ Type string
564
+ Input *shimast.Node
565
565
  }) *shimast.Node {
566
- switch props.Type {
567
- case "Date", "Uint8Array", "Uint8ClampedArray", "Uint16Array", "Uint32Array", "BigUint64Array", "Int8Array", "Int16Array", "Int32Array", "BigInt64Array", "Float32Array", "Float64Array", "RegExp":
568
- return miscCloneProgrammer_factory.NewNewExpression(
569
- miscCloneProgrammer_factory.NewIdentifier(props.Type),
570
- nil,
571
- miscCloneProgrammer_factory.NewNodeList([]*shimast.Node{props.Input}),
572
- )
573
- case "ArrayBuffer", "SharedArrayBuffer":
574
- return miscCloneProgrammer_decode_native_buffer(props.Type, props.Input)
575
- case "DataView":
576
- return miscCloneProgrammer_factory.NewNewExpression(
577
- miscCloneProgrammer_factory.NewIdentifier("DataView"),
578
- nil,
579
- miscCloneProgrammer_factory.NewNodeList([]*shimast.Node{nativefactories.IdentifierFactory.Access(props.Input, "buffer")}),
580
- )
581
- default:
582
- return miscCloneProgrammer_factory.NewCallExpression(
583
- miscCloneProgrammer_factory.NewIdentifier(props.Type),
584
- nil,
585
- nil,
586
- nil,
587
- shimast.NodeFlagsNone,
588
- )
589
- }
566
+ switch props.Type {
567
+ case "Date", "Uint8Array", "Uint8ClampedArray", "Uint16Array", "Uint32Array", "BigUint64Array", "Int8Array", "Int16Array", "Int32Array", "BigInt64Array", "Float32Array", "Float64Array", "RegExp":
568
+ return miscCloneProgrammer_factory.NewNewExpression(
569
+ miscCloneProgrammer_factory.NewIdentifier(props.Type),
570
+ nil,
571
+ miscCloneProgrammer_factory.NewNodeList([]*shimast.Node{props.Input}),
572
+ )
573
+ case "ArrayBuffer", "SharedArrayBuffer":
574
+ return miscCloneProgrammer_decode_native_buffer(props.Type, props.Input)
575
+ case "DataView":
576
+ return miscCloneProgrammer_factory.NewNewExpression(
577
+ miscCloneProgrammer_factory.NewIdentifier("DataView"),
578
+ nil,
579
+ miscCloneProgrammer_factory.NewNodeList([]*shimast.Node{nativefactories.IdentifierFactory.Access(props.Input, "buffer")}),
580
+ )
581
+ default:
582
+ return miscCloneProgrammer_factory.NewCallExpression(
583
+ miscCloneProgrammer_factory.NewIdentifier(props.Type),
584
+ nil,
585
+ nil,
586
+ nil,
587
+ shimast.NodeFlagsNone,
588
+ )
589
+ }
590
590
  }
591
591
 
592
592
  func miscCloneProgrammer_decode_native_buffer(typ string, input *shimast.Node) *shimast.Node {
593
- return nativefactories.ExpressionFactory.SelfCall(
594
- miscCloneProgrammer_factory.NewBlock(miscCloneProgrammer_factory.NewNodeList([]*shimast.Node{
595
- nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
596
- Name: "buffer",
597
- Value: miscCloneProgrammer_factory.NewNewExpression(
598
- miscCloneProgrammer_factory.NewIdentifier(typ),
599
- nil,
600
- miscCloneProgrammer_factory.NewNodeList([]*shimast.Node{nativefactories.IdentifierFactory.Access(input, "byteLength")}),
601
- ),
602
- }),
603
- miscCloneProgrammer_factory.NewExpressionStatement(miscCloneProgrammer_factory.NewCallExpression(
604
- nativefactories.IdentifierFactory.Access(
605
- miscCloneProgrammer_factory.NewNewExpression(
606
- miscCloneProgrammer_factory.NewIdentifier("Uint8Array"),
607
- nil,
608
- miscCloneProgrammer_factory.NewNodeList([]*shimast.Node{miscCloneProgrammer_factory.NewIdentifier("buffer")}),
609
- ),
610
- "set",
611
- ),
612
- nil,
613
- nil,
614
- miscCloneProgrammer_factory.NewNodeList([]*shimast.Node{
615
- miscCloneProgrammer_factory.NewNewExpression(
616
- miscCloneProgrammer_factory.NewIdentifier("Uint8Array"),
617
- nil,
618
- miscCloneProgrammer_factory.NewNodeList([]*shimast.Node{input}),
619
- ),
620
- }),
621
- shimast.NodeFlagsNone,
622
- )),
623
- miscCloneProgrammer_factory.NewReturnStatement(miscCloneProgrammer_factory.NewIdentifier("buffer")),
624
- }), true),
625
- )
593
+ return nativefactories.ExpressionFactory.SelfCall(
594
+ miscCloneProgrammer_factory.NewBlock(miscCloneProgrammer_factory.NewNodeList([]*shimast.Node{
595
+ nativefactories.StatementFactory.Constant(nativefactories.StatementFactory_ConstantProps{
596
+ Name: "buffer",
597
+ Value: miscCloneProgrammer_factory.NewNewExpression(
598
+ miscCloneProgrammer_factory.NewIdentifier(typ),
599
+ nil,
600
+ miscCloneProgrammer_factory.NewNodeList([]*shimast.Node{nativefactories.IdentifierFactory.Access(input, "byteLength")}),
601
+ ),
602
+ }),
603
+ miscCloneProgrammer_factory.NewExpressionStatement(miscCloneProgrammer_factory.NewCallExpression(
604
+ nativefactories.IdentifierFactory.Access(
605
+ miscCloneProgrammer_factory.NewNewExpression(
606
+ miscCloneProgrammer_factory.NewIdentifier("Uint8Array"),
607
+ nil,
608
+ miscCloneProgrammer_factory.NewNodeList([]*shimast.Node{miscCloneProgrammer_factory.NewIdentifier("buffer")}),
609
+ ),
610
+ "set",
611
+ ),
612
+ nil,
613
+ nil,
614
+ miscCloneProgrammer_factory.NewNodeList([]*shimast.Node{
615
+ miscCloneProgrammer_factory.NewNewExpression(
616
+ miscCloneProgrammer_factory.NewIdentifier("Uint8Array"),
617
+ nil,
618
+ miscCloneProgrammer_factory.NewNodeList([]*shimast.Node{input}),
619
+ ),
620
+ }),
621
+ shimast.NodeFlagsNone,
622
+ )),
623
+ miscCloneProgrammer_factory.NewReturnStatement(miscCloneProgrammer_factory.NewIdentifier("buffer")),
624
+ }), true),
625
+ )
626
626
  }
627
627
 
628
628
  type miscCloneProgrammer_exploreArraysProps struct {
629
- Context nativecontext.ITypiaContext
630
- Config nativeinternal.FeatureProgrammer_IConfig
631
- Functor *nativehelpers.FunctionProgrammer
632
- Input *shimast.Node
633
- Arrays []*schemametadata.MetadataArray
634
- Explore nativeinternal.FeatureProgrammer_IExplore
629
+ Context nativecontext.ITypiaContext
630
+ Config nativeinternal.FeatureProgrammer_IConfig
631
+ Functor *nativehelpers.FunctionProgrammer
632
+ Input *shimast.Node
633
+ Arrays []*schemametadata.MetadataArray
634
+ Explore nativeinternal.FeatureProgrammer_IExplore
635
635
  }
636
636
 
637
637
  func miscCloneProgrammer_explore_arrays(props miscCloneProgrammer_exploreArraysProps) *shimast.Node {
638
- return miscCloneProgrammer_factory.NewCallExpression(
639
- nativehelpers.UnionExplorer.Array(nativehelpers.UnionExplorer_ArrayProps{
640
- Config: nativehelpers.UnionExplorer_ArrayLikeConfig{
641
- Checker: func(v nativehelpers.UnionExplorer_ArrayLikeCheckerProps) *shimast.Node {
642
- return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
643
- Context: props.Context,
644
- Functor: props.Functor,
645
- Input: v.Input,
646
- Metadata: v.Definition.(*schemametadata.MetadataArray).Type.Value,
647
- Explore: miscCloneProgrammer_checker_explore(v.Explore),
648
- })
649
- },
650
- Decoder: func(v nativehelpers.UnionExplorer_ArrayLikeDecoderProps) *shimast.Node {
651
- return miscCloneProgrammer_decode_array(miscCloneProgrammer_decodeArrayProps{
652
- Config: props.Config,
653
- Functor: props.Functor,
654
- Input: v.Input,
655
- Array: v.Definition.(*schemametadata.MetadataArray),
656
- Explore: miscCloneProgrammer_feature_explore(v.Explore),
657
- })
658
- },
659
- Empty: miscCloneProgrammer_factory.NewIdentifier("[]"),
660
- Success: miscCloneProgrammer_factory.NewKeywordExpression(shimast.KindTrueKeyword),
661
- Failure: func(v nativehelpers.UnionExplorer_ArrayLikeFailureProps) *shimast.Node {
662
- return miscCloneProgrammer_create_throw_error(miscCloneProgrammer_throwProps{
663
- Context: props.Context,
664
- Functor: props.Functor,
665
- Expected: v.Expected,
666
- Input: v.Input,
667
- })
668
- },
669
- },
670
- Parameters: nil,
671
- Input: props.Input,
672
- Arrays: props.Arrays,
673
- Explore: props.Explore,
674
- }),
675
- nil,
676
- nil,
677
- nil,
678
- shimast.NodeFlagsNone,
679
- )
638
+ return miscCloneProgrammer_factory.NewCallExpression(
639
+ nativehelpers.UnionExplorer.Array(nativehelpers.UnionExplorer_ArrayProps{
640
+ Config: nativehelpers.UnionExplorer_ArrayLikeConfig{
641
+ Checker: func(v nativehelpers.UnionExplorer_ArrayLikeCheckerProps) *shimast.Node {
642
+ return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
643
+ Context: props.Context,
644
+ Functor: props.Functor,
645
+ Input: v.Input,
646
+ Metadata: v.Definition.(*schemametadata.MetadataArray).Type.Value,
647
+ Explore: miscCloneProgrammer_checker_explore(v.Explore),
648
+ })
649
+ },
650
+ Decoder: func(v nativehelpers.UnionExplorer_ArrayLikeDecoderProps) *shimast.Node {
651
+ return miscCloneProgrammer_decode_array(miscCloneProgrammer_decodeArrayProps{
652
+ Config: props.Config,
653
+ Functor: props.Functor,
654
+ Input: v.Input,
655
+ Array: v.Definition.(*schemametadata.MetadataArray),
656
+ Explore: miscCloneProgrammer_feature_explore(v.Explore),
657
+ })
658
+ },
659
+ Empty: miscCloneProgrammer_factory.NewIdentifier("[]"),
660
+ Success: miscCloneProgrammer_factory.NewKeywordExpression(shimast.KindTrueKeyword),
661
+ Failure: func(v nativehelpers.UnionExplorer_ArrayLikeFailureProps) *shimast.Node {
662
+ return miscCloneProgrammer_create_throw_error(miscCloneProgrammer_throwProps{
663
+ Context: props.Context,
664
+ Functor: props.Functor,
665
+ Expected: v.Expected,
666
+ Input: v.Input,
667
+ })
668
+ },
669
+ },
670
+ Parameters: nil,
671
+ Input: props.Input,
672
+ Arrays: props.Arrays,
673
+ Explore: props.Explore,
674
+ }),
675
+ nil,
676
+ nil,
677
+ nil,
678
+ shimast.NodeFlagsNone,
679
+ )
680
680
  }
681
681
 
682
682
  type miscCloneProgrammer_exploreSetsProps struct {
683
- Context nativecontext.ITypiaContext
684
- Config nativeinternal.FeatureProgrammer_IConfig
685
- Functor *nativehelpers.FunctionProgrammer
686
- Input *shimast.Node
687
- Sets []*schemametadata.MetadataSet
688
- Explore nativeinternal.FeatureProgrammer_IExplore
683
+ Context nativecontext.ITypiaContext
684
+ Config nativeinternal.FeatureProgrammer_IConfig
685
+ Functor *nativehelpers.FunctionProgrammer
686
+ Input *shimast.Node
687
+ Sets []*schemametadata.MetadataSet
688
+ Explore nativeinternal.FeatureProgrammer_IExplore
689
689
  }
690
690
 
691
691
  func miscCloneProgrammer_explore_sets(props miscCloneProgrammer_exploreSetsProps) *shimast.Node {
692
- return miscCloneProgrammer_factory.NewCallExpression(
693
- nativehelpers.UnionExplorer.Set(nativehelpers.UnionExplorer_SetProps{
694
- Config: nativehelpers.UnionExplorer_ArrayLikeConfig{
695
- Checker: func(v nativehelpers.UnionExplorer_ArrayLikeCheckerProps) *shimast.Node {
696
- return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
697
- Context: props.Context,
698
- Functor: props.Functor,
699
- Input: v.Input,
700
- Metadata: v.Definition.(*schemametadata.MetadataArray).Type.Value,
701
- Explore: miscCloneProgrammer_checker_explore(v.Explore),
702
- })
703
- },
704
- Decoder: func(v nativehelpers.UnionExplorer_ArrayLikeDecoderProps) *shimast.Node {
705
- return miscCloneProgrammer_factory.NewNewExpression(
706
- miscCloneProgrammer_factory.NewIdentifier("Set"),
707
- miscCloneProgrammer_factory.NewNodeList([]*shimast.Node{nativefactories.TypeFactory.Keyword("any")}),
708
- miscCloneProgrammer_factory.NewNodeList([]*shimast.Node{
709
- miscCloneProgrammer_decode_array(miscCloneProgrammer_decodeArrayProps{
710
- Config: props.Config,
711
- Functor: props.Functor,
712
- Input: v.Input,
713
- Array: v.Definition.(*schemametadata.MetadataArray),
714
- Explore: miscCloneProgrammer_feature_explore(v.Explore),
715
- }),
716
- }),
717
- )
718
- },
719
- Empty: miscCloneProgrammer_factory.NewNewExpression(
720
- miscCloneProgrammer_factory.NewIdentifier("Set"),
721
- miscCloneProgrammer_factory.NewNodeList([]*shimast.Node{nativefactories.TypeFactory.Keyword("any")}),
722
- nil,
723
- ),
724
- Success: miscCloneProgrammer_factory.NewKeywordExpression(shimast.KindTrueKeyword),
725
- Failure: func(v nativehelpers.UnionExplorer_ArrayLikeFailureProps) *shimast.Node {
726
- return miscCloneProgrammer_create_throw_error(miscCloneProgrammer_throwProps{
727
- Context: props.Context,
728
- Functor: props.Functor,
729
- Expected: v.Expected,
730
- Input: v.Input,
731
- })
732
- },
733
- },
734
- Parameters: nil,
735
- Input: props.Input,
736
- Sets: props.Sets,
737
- Explore: props.Explore,
738
- }),
739
- nil,
740
- nil,
741
- nil,
742
- shimast.NodeFlagsNone,
743
- )
692
+ return miscCloneProgrammer_factory.NewCallExpression(
693
+ nativehelpers.UnionExplorer.Set(nativehelpers.UnionExplorer_SetProps{
694
+ Config: nativehelpers.UnionExplorer_ArrayLikeConfig{
695
+ Checker: func(v nativehelpers.UnionExplorer_ArrayLikeCheckerProps) *shimast.Node {
696
+ return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
697
+ Context: props.Context,
698
+ Functor: props.Functor,
699
+ Input: v.Input,
700
+ Metadata: v.Definition.(*schemametadata.MetadataArray).Type.Value,
701
+ Explore: miscCloneProgrammer_checker_explore(v.Explore),
702
+ })
703
+ },
704
+ Decoder: func(v nativehelpers.UnionExplorer_ArrayLikeDecoderProps) *shimast.Node {
705
+ return miscCloneProgrammer_factory.NewNewExpression(
706
+ miscCloneProgrammer_factory.NewIdentifier("Set"),
707
+ miscCloneProgrammer_factory.NewNodeList([]*shimast.Node{nativefactories.TypeFactory.Keyword("any")}),
708
+ miscCloneProgrammer_factory.NewNodeList([]*shimast.Node{
709
+ miscCloneProgrammer_decode_array(miscCloneProgrammer_decodeArrayProps{
710
+ Config: props.Config,
711
+ Functor: props.Functor,
712
+ Input: v.Input,
713
+ Array: v.Definition.(*schemametadata.MetadataArray),
714
+ Explore: miscCloneProgrammer_feature_explore(v.Explore),
715
+ }),
716
+ }),
717
+ )
718
+ },
719
+ Empty: miscCloneProgrammer_factory.NewNewExpression(
720
+ miscCloneProgrammer_factory.NewIdentifier("Set"),
721
+ miscCloneProgrammer_factory.NewNodeList([]*shimast.Node{nativefactories.TypeFactory.Keyword("any")}),
722
+ nil,
723
+ ),
724
+ Success: miscCloneProgrammer_factory.NewKeywordExpression(shimast.KindTrueKeyword),
725
+ Failure: func(v nativehelpers.UnionExplorer_ArrayLikeFailureProps) *shimast.Node {
726
+ return miscCloneProgrammer_create_throw_error(miscCloneProgrammer_throwProps{
727
+ Context: props.Context,
728
+ Functor: props.Functor,
729
+ Expected: v.Expected,
730
+ Input: v.Input,
731
+ })
732
+ },
733
+ },
734
+ Parameters: nil,
735
+ Input: props.Input,
736
+ Sets: props.Sets,
737
+ Explore: props.Explore,
738
+ }),
739
+ nil,
740
+ nil,
741
+ nil,
742
+ shimast.NodeFlagsNone,
743
+ )
744
744
  }
745
745
 
746
746
  type miscCloneProgrammer_exploreMapsProps struct {
747
- Context nativecontext.ITypiaContext
748
- Config nativeinternal.FeatureProgrammer_IConfig
749
- Functor *nativehelpers.FunctionProgrammer
750
- Input *shimast.Node
751
- Maps []*schemametadata.MetadataMap
752
- Explore nativeinternal.FeatureProgrammer_IExplore
747
+ Context nativecontext.ITypiaContext
748
+ Config nativeinternal.FeatureProgrammer_IConfig
749
+ Functor *nativehelpers.FunctionProgrammer
750
+ Input *shimast.Node
751
+ Maps []*schemametadata.MetadataMap
752
+ Explore nativeinternal.FeatureProgrammer_IExplore
753
753
  }
754
754
 
755
755
  func miscCloneProgrammer_explore_maps(props miscCloneProgrammer_exploreMapsProps) *shimast.Node {
756
- return miscCloneProgrammer_factory.NewCallExpression(
757
- nativehelpers.UnionExplorer.Map(nativehelpers.UnionExplorer_MapProps{
758
- Config: nativehelpers.UnionExplorer_ArrayLikeConfig{
759
- Checker: func(v nativehelpers.UnionExplorer_ArrayLikeCheckerProps) *shimast.Node {
760
- pair := v.Definition.(*schemametadata.MetadataArray).Type.Value.Tuples[0].Type.Elements
761
- first := nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
762
- Context: props.Context,
763
- Functor: props.Functor,
764
- Input: miscCloneProgrammer_factory.NewElementAccessExpression(v.Input, nil, nativefactories.ExpressionFactory.Number(0), shimast.NodeFlagsNone),
765
- Metadata: pair[0],
766
- Explore: miscCloneProgrammer_checker_explore_with_postfix(v.Explore, "[0]"),
767
- })
768
- second := nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
769
- Context: props.Context,
770
- Functor: props.Functor,
771
- Input: miscCloneProgrammer_factory.NewElementAccessExpression(v.Input, nil, nativefactories.ExpressionFactory.Number(1), shimast.NodeFlagsNone),
772
- Metadata: pair[1],
773
- Explore: miscCloneProgrammer_checker_explore_with_postfix(v.Explore, "[1]"),
774
- })
775
- return miscCloneProgrammer_factory.NewBinaryExpression(nil, first, nil, miscCloneProgrammer_factory.NewToken(shimast.KindAmpersandAmpersandToken), second)
776
- },
777
- Decoder: func(v nativehelpers.UnionExplorer_ArrayLikeDecoderProps) *shimast.Node {
778
- return miscCloneProgrammer_factory.NewNewExpression(
779
- miscCloneProgrammer_factory.NewIdentifier("Map"),
780
- miscCloneProgrammer_factory.NewNodeList([]*shimast.Node{
781
- nativefactories.TypeFactory.Keyword("any"),
782
- nativefactories.TypeFactory.Keyword("any"),
783
- }),
784
- miscCloneProgrammer_factory.NewNodeList([]*shimast.Node{
785
- miscCloneProgrammer_decode_array(miscCloneProgrammer_decodeArrayProps{
786
- Config: props.Config,
787
- Functor: props.Functor,
788
- Input: v.Input,
789
- Array: v.Definition.(*schemametadata.MetadataArray),
790
- Explore: miscCloneProgrammer_feature_explore(v.Explore),
791
- }),
792
- }),
793
- )
794
- },
795
- Empty: miscCloneProgrammer_factory.NewNewExpression(
796
- miscCloneProgrammer_factory.NewIdentifier("Map"),
797
- miscCloneProgrammer_factory.NewNodeList([]*shimast.Node{
798
- nativefactories.TypeFactory.Keyword("any"),
799
- nativefactories.TypeFactory.Keyword("any"),
800
- }),
801
- nil,
802
- ),
803
- Success: miscCloneProgrammer_factory.NewKeywordExpression(shimast.KindTrueKeyword),
804
- Failure: func(v nativehelpers.UnionExplorer_ArrayLikeFailureProps) *shimast.Node {
805
- return miscCloneProgrammer_create_throw_error(miscCloneProgrammer_throwProps{
806
- Context: props.Context,
807
- Functor: props.Functor,
808
- Expected: v.Expected,
809
- Input: v.Input,
810
- })
811
- },
812
- },
813
- Parameters: nil,
814
- Input: props.Input,
815
- Maps: props.Maps,
816
- Explore: props.Explore,
817
- }),
818
- nil,
819
- nil,
820
- nil,
821
- shimast.NodeFlagsNone,
822
- )
756
+ return miscCloneProgrammer_factory.NewCallExpression(
757
+ nativehelpers.UnionExplorer.Map(nativehelpers.UnionExplorer_MapProps{
758
+ Config: nativehelpers.UnionExplorer_ArrayLikeConfig{
759
+ Checker: func(v nativehelpers.UnionExplorer_ArrayLikeCheckerProps) *shimast.Node {
760
+ pair := v.Definition.(*schemametadata.MetadataArray).Type.Value.Tuples[0].Type.Elements
761
+ first := nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
762
+ Context: props.Context,
763
+ Functor: props.Functor,
764
+ Input: miscCloneProgrammer_factory.NewElementAccessExpression(v.Input, nil, nativefactories.ExpressionFactory.Number(0), shimast.NodeFlagsNone),
765
+ Metadata: pair[0],
766
+ Explore: miscCloneProgrammer_checker_explore_with_postfix(v.Explore, "[0]"),
767
+ })
768
+ second := nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
769
+ Context: props.Context,
770
+ Functor: props.Functor,
771
+ Input: miscCloneProgrammer_factory.NewElementAccessExpression(v.Input, nil, nativefactories.ExpressionFactory.Number(1), shimast.NodeFlagsNone),
772
+ Metadata: pair[1],
773
+ Explore: miscCloneProgrammer_checker_explore_with_postfix(v.Explore, "[1]"),
774
+ })
775
+ return miscCloneProgrammer_factory.NewBinaryExpression(nil, first, nil, miscCloneProgrammer_factory.NewToken(shimast.KindAmpersandAmpersandToken), second)
776
+ },
777
+ Decoder: func(v nativehelpers.UnionExplorer_ArrayLikeDecoderProps) *shimast.Node {
778
+ return miscCloneProgrammer_factory.NewNewExpression(
779
+ miscCloneProgrammer_factory.NewIdentifier("Map"),
780
+ miscCloneProgrammer_factory.NewNodeList([]*shimast.Node{
781
+ nativefactories.TypeFactory.Keyword("any"),
782
+ nativefactories.TypeFactory.Keyword("any"),
783
+ }),
784
+ miscCloneProgrammer_factory.NewNodeList([]*shimast.Node{
785
+ miscCloneProgrammer_decode_array(miscCloneProgrammer_decodeArrayProps{
786
+ Config: props.Config,
787
+ Functor: props.Functor,
788
+ Input: v.Input,
789
+ Array: v.Definition.(*schemametadata.MetadataArray),
790
+ Explore: miscCloneProgrammer_feature_explore(v.Explore),
791
+ }),
792
+ }),
793
+ )
794
+ },
795
+ Empty: miscCloneProgrammer_factory.NewNewExpression(
796
+ miscCloneProgrammer_factory.NewIdentifier("Map"),
797
+ miscCloneProgrammer_factory.NewNodeList([]*shimast.Node{
798
+ nativefactories.TypeFactory.Keyword("any"),
799
+ nativefactories.TypeFactory.Keyword("any"),
800
+ }),
801
+ nil,
802
+ ),
803
+ Success: miscCloneProgrammer_factory.NewKeywordExpression(shimast.KindTrueKeyword),
804
+ Failure: func(v nativehelpers.UnionExplorer_ArrayLikeFailureProps) *shimast.Node {
805
+ return miscCloneProgrammer_create_throw_error(miscCloneProgrammer_throwProps{
806
+ Context: props.Context,
807
+ Functor: props.Functor,
808
+ Expected: v.Expected,
809
+ Input: v.Input,
810
+ })
811
+ },
812
+ },
813
+ Parameters: nil,
814
+ Input: props.Input,
815
+ Maps: props.Maps,
816
+ Explore: props.Explore,
817
+ }),
818
+ nil,
819
+ nil,
820
+ nil,
821
+ shimast.NodeFlagsNone,
822
+ )
823
823
  }
824
824
 
825
825
  type miscCloneProgrammer_exploreObjectsProps struct {
826
- Config nativeinternal.FeatureProgrammer_IConfig
827
- Functor *nativehelpers.FunctionProgrammer
828
- Input *shimast.Node
829
- Metadata *schemametadata.MetadataSchema
830
- Explore nativeinternal.FeatureProgrammer_IExplore
826
+ Config nativeinternal.FeatureProgrammer_IConfig
827
+ Functor *nativehelpers.FunctionProgrammer
828
+ Input *shimast.Node
829
+ Metadata *schemametadata.MetadataSchema
830
+ Explore nativeinternal.FeatureProgrammer_IExplore
831
831
  }
832
832
 
833
833
  func miscCloneProgrammer_explore_objects(props miscCloneProgrammer_exploreObjectsProps) *shimast.Node {
834
- if len(props.Metadata.Objects) == 1 {
835
- return miscCloneProgrammer_decode_object(struct {
836
- Functor *nativehelpers.FunctionProgrammer
837
- Input *shimast.Node
838
- Object *schemametadata.MetadataObjectType
839
- Explore nativeinternal.FeatureProgrammer_IExplore
840
- }{
841
- Functor: props.Functor,
842
- Input: props.Input,
843
- Object: props.Metadata.Objects[0].Type,
844
- Explore: props.Explore,
845
- })
846
- }
847
- index := 0
848
- if props.Metadata.Union_index != nil {
849
- index = *props.Metadata.Union_index
850
- }
851
- return miscCloneProgrammer_factory.NewCallExpression(
852
- miscCloneProgrammer_factory.NewIdentifier(props.Functor.UseLocal(fmt.Sprintf("%su%d", miscCloneProgrammer_PREFIX, index))),
853
- nil,
854
- nil,
855
- miscCloneProgrammer_factory.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
856
- Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace},
857
- Input: props.Input,
858
- Explore: props.Explore,
859
- })),
860
- shimast.NodeFlagsNone,
861
- )
834
+ if len(props.Metadata.Objects) == 1 {
835
+ return miscCloneProgrammer_decode_object(struct {
836
+ Functor *nativehelpers.FunctionProgrammer
837
+ Input *shimast.Node
838
+ Object *schemametadata.MetadataObjectType
839
+ Explore nativeinternal.FeatureProgrammer_IExplore
840
+ }{
841
+ Functor: props.Functor,
842
+ Input: props.Input,
843
+ Object: props.Metadata.Objects[0].Type,
844
+ Explore: props.Explore,
845
+ })
846
+ }
847
+ index := 0
848
+ if props.Metadata.Union_index != nil {
849
+ index = *props.Metadata.Union_index
850
+ }
851
+ return miscCloneProgrammer_factory.NewCallExpression(
852
+ miscCloneProgrammer_factory.NewIdentifier(props.Functor.UseLocal(fmt.Sprintf("%su%d", miscCloneProgrammer_PREFIX, index))),
853
+ nil,
854
+ nil,
855
+ miscCloneProgrammer_factory.NewNodeList(nativeinternal.FeatureProgrammer.ArgumentsArray(nativeinternal.FeatureProgrammer_ArgumentsArrayProps{
856
+ Config: nativeinternal.FeatureProgrammer_ArgumentsArrayConfig{Path: props.Config.Path, Trace: props.Config.Trace},
857
+ Input: props.Input,
858
+ Explore: props.Explore,
859
+ })),
860
+ shimast.NodeFlagsNone,
861
+ )
862
862
  }
863
863
 
864
864
  func miscCloneProgrammer_configure(props struct {
865
- Context nativecontext.ITypiaContext
866
- Functor *nativehelpers.FunctionProgrammer
865
+ Context nativecontext.ITypiaContext
866
+ Functor *nativehelpers.FunctionProgrammer
867
867
  }) nativeinternal.FeatureProgrammer_IConfig {
868
- config := nativeinternal.FeatureProgrammer_IConfig{}
869
- config.Types = nativeinternal.FeatureProgrammer_IConfig_ITypes{
870
- Input: func(t *shimchecker.Type, name *string) *shimast.TypeNode {
871
- return miscCloneProgrammer_factory.NewTypeReferenceNode(miscCloneProgrammer_factory.NewIdentifier(miscCloneProgrammer_type_name(props.Context, t, name)), nil)
872
- },
873
- Output: func(t *shimchecker.Type, name *string) *shimast.TypeNode {
874
- return miscCloneProgrammer_import_type(props.Context, nativeprogrammers.ImportProgrammer_TypeProps{
875
- File: "typia",
876
- Name: "Resolved",
877
- Arguments: []*shimast.TypeNode{
878
- miscCloneProgrammer_factory.NewTypeReferenceNode(miscCloneProgrammer_factory.NewIdentifier(miscCloneProgrammer_type_name(props.Context, t, name)), nil),
879
- },
880
- })
881
- },
882
- }
883
- config.Prefix = miscCloneProgrammer_PREFIX
884
- config.Trace = false
885
- config.Path = false
886
- config.Initializer = miscCloneProgrammer_initializer
887
- config.Decoder = func(next nativeinternal.FeatureProgrammer_DecoderProps) *shimast.Node {
888
- return miscCloneProgrammer_decode(struct {
889
- Context nativecontext.ITypiaContext
890
- Config nativeinternal.FeatureProgrammer_IConfig
891
- Functor *nativehelpers.FunctionProgrammer
892
- Input *shimast.Node
893
- Metadata *schemametadata.MetadataSchema
894
- Explore nativeinternal.FeatureProgrammer_IExplore
895
- }{
896
- Context: props.Context,
897
- Config: config,
898
- Functor: props.Functor,
899
- Input: next.Input,
900
- Metadata: next.Metadata,
901
- Explore: next.Explore,
902
- })
903
- }
904
- config.Objector = nativeinternal.FeatureProgrammer_IConfig_IObjector{
905
- Checker: func(next nativeinternal.FeatureProgrammer_ObjectorCheckerProps) *shimast.Node {
906
- return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
907
- Context: props.Context,
908
- Functor: props.Functor,
909
- Input: next.Input,
910
- Metadata: next.Metadata,
911
- Explore: miscCloneProgrammer_checker_explore(next.Explore),
912
- })
913
- },
914
- Decoder: func(next nativeinternal.FeatureProgrammer_ObjectorDecoderProps) *shimast.Node {
915
- return miscCloneProgrammer_decode_object(struct {
916
- Functor *nativehelpers.FunctionProgrammer
917
- Input *shimast.Node
918
- Object *schemametadata.MetadataObjectType
919
- Explore nativeinternal.FeatureProgrammer_IExplore
920
- }{
921
- Functor: props.Functor,
922
- Input: next.Input,
923
- Object: next.Object,
924
- Explore: next.Explore,
925
- })
926
- },
927
- Joiner: func(next nativeinternal.FeatureProgrammer_ObjectorJoinerProps) *shimast.Node {
928
- return nativehelpers.CloneJoiner.Object(nativehelpers.CloneJoiner_ObjectProps{
929
- Input: next.Input,
930
- Entries: next.Entries,
931
- })
932
- },
933
- Unionizer: func(next nativeinternal.FeatureProgrammer_ObjectorUnionizerProps) *shimast.Node {
934
- return nativeiterate.Decode_union_object(nativeiterate.Decode_union_objectProps{
935
- Checker: func(v nativeiterate.Decode_union_object_next) *shimast.Node {
936
- return nativeprogrammers.IsProgrammer.Decode_object(nativeprogrammers.IsProgrammer_DecodeObjectProps{
937
- Context: props.Context,
938
- Functor: props.Functor,
939
- Input: v.Input,
940
- Object: v.Object,
941
- Explore: miscCloneProgrammer_feature_explore(v.Explore),
942
- })
943
- },
944
- Decoder: func(v nativeiterate.Decode_union_object_next) *shimast.Node {
945
- return miscCloneProgrammer_decode_object(struct {
946
- Functor *nativehelpers.FunctionProgrammer
947
- Input *shimast.Node
948
- Object *schemametadata.MetadataObjectType
949
- Explore nativeinternal.FeatureProgrammer_IExplore
950
- }{
951
- Functor: props.Functor,
952
- Input: v.Input,
953
- Object: v.Object,
954
- Explore: miscCloneProgrammer_feature_explore(v.Explore),
955
- })
956
- },
957
- Success: func(exp *shimast.Node) *shimast.Node { return exp },
958
- Escaper: func(v nativeiterate.Decode_union_object_escape) *shimast.Node {
959
- return miscCloneProgrammer_create_throw_error(miscCloneProgrammer_throwProps{
960
- Context: props.Context,
961
- Functor: props.Functor,
962
- Expected: v.Expected,
963
- Input: v.Input,
964
- })
965
- },
966
- Input: next.Input,
967
- Objects: next.Objects,
968
- Explore: next.Explore,
969
- })
970
- },
971
- Failure: func(next nativeinternal.FeatureProgrammer_ObjectorFailureProps) *shimast.Node {
972
- return miscCloneProgrammer_create_throw_error(miscCloneProgrammer_throwProps{
973
- Context: props.Context,
974
- Functor: props.Functor,
975
- Expected: next.Expected,
976
- Input: next.Input,
977
- })
978
- },
979
- }
980
- config.Generator = nativeinternal.FeatureProgrammer_IConfig_IGenerator{
981
- Arrays: func(collection *schemametadata.MetadataCollection) []*shimast.Node {
982
- return miscCloneProgrammer_write_array_functions(struct {
983
- Config nativeinternal.FeatureProgrammer_IConfig
984
- Functor *nativehelpers.FunctionProgrammer
985
- Collection *schemametadata.MetadataCollection
986
- }{Config: config, Functor: props.Functor, Collection: collection})
987
- },
988
- Tuples: func(collection *schemametadata.MetadataCollection) []*shimast.Node {
989
- return miscCloneProgrammer_write_tuple_functions(struct {
990
- Context nativecontext.ITypiaContext
991
- Config nativeinternal.FeatureProgrammer_IConfig
992
- Functor *nativehelpers.FunctionProgrammer
993
- Collection *schemametadata.MetadataCollection
994
- }{Context: props.Context, Config: config, Functor: props.Functor, Collection: collection})
995
- },
996
- }
997
- return config
868
+ config := nativeinternal.FeatureProgrammer_IConfig{}
869
+ config.Types = nativeinternal.FeatureProgrammer_IConfig_ITypes{
870
+ Input: func(t *shimchecker.Type, name *string) *shimast.TypeNode {
871
+ return miscCloneProgrammer_factory.NewTypeReferenceNode(miscCloneProgrammer_factory.NewIdentifier(miscCloneProgrammer_type_name(props.Context, t, name)), nil)
872
+ },
873
+ Output: func(t *shimchecker.Type, name *string) *shimast.TypeNode {
874
+ return miscCloneProgrammer_import_type(props.Context, nativeprogrammers.ImportProgrammer_TypeProps{
875
+ File: "typia",
876
+ Name: "Resolved",
877
+ Arguments: []*shimast.TypeNode{
878
+ miscCloneProgrammer_factory.NewTypeReferenceNode(miscCloneProgrammer_factory.NewIdentifier(miscCloneProgrammer_type_name(props.Context, t, name)), nil),
879
+ },
880
+ })
881
+ },
882
+ }
883
+ config.Prefix = miscCloneProgrammer_PREFIX
884
+ config.Trace = false
885
+ config.Path = false
886
+ config.Initializer = miscCloneProgrammer_initializer
887
+ config.Decoder = func(next nativeinternal.FeatureProgrammer_DecoderProps) *shimast.Node {
888
+ return miscCloneProgrammer_decode(struct {
889
+ Context nativecontext.ITypiaContext
890
+ Config nativeinternal.FeatureProgrammer_IConfig
891
+ Functor *nativehelpers.FunctionProgrammer
892
+ Input *shimast.Node
893
+ Metadata *schemametadata.MetadataSchema
894
+ Explore nativeinternal.FeatureProgrammer_IExplore
895
+ }{
896
+ Context: props.Context,
897
+ Config: config,
898
+ Functor: props.Functor,
899
+ Input: next.Input,
900
+ Metadata: next.Metadata,
901
+ Explore: next.Explore,
902
+ })
903
+ }
904
+ config.Objector = nativeinternal.FeatureProgrammer_IConfig_IObjector{
905
+ Checker: func(next nativeinternal.FeatureProgrammer_ObjectorCheckerProps) *shimast.Node {
906
+ return nativeprogrammers.IsProgrammer.Decode(nativeprogrammers.IsProgrammer_DecodeProps{
907
+ Context: props.Context,
908
+ Functor: props.Functor,
909
+ Input: next.Input,
910
+ Metadata: next.Metadata,
911
+ Explore: miscCloneProgrammer_checker_explore(next.Explore),
912
+ })
913
+ },
914
+ Decoder: func(next nativeinternal.FeatureProgrammer_ObjectorDecoderProps) *shimast.Node {
915
+ return miscCloneProgrammer_decode_object(struct {
916
+ Functor *nativehelpers.FunctionProgrammer
917
+ Input *shimast.Node
918
+ Object *schemametadata.MetadataObjectType
919
+ Explore nativeinternal.FeatureProgrammer_IExplore
920
+ }{
921
+ Functor: props.Functor,
922
+ Input: next.Input,
923
+ Object: next.Object,
924
+ Explore: next.Explore,
925
+ })
926
+ },
927
+ Joiner: func(next nativeinternal.FeatureProgrammer_ObjectorJoinerProps) *shimast.Node {
928
+ return nativehelpers.CloneJoiner.Object(nativehelpers.CloneJoiner_ObjectProps{
929
+ Input: next.Input,
930
+ Entries: next.Entries,
931
+ })
932
+ },
933
+ Unionizer: func(next nativeinternal.FeatureProgrammer_ObjectorUnionizerProps) *shimast.Node {
934
+ return nativeiterate.Decode_union_object(nativeiterate.Decode_union_objectProps{
935
+ Checker: func(v nativeiterate.Decode_union_object_next) *shimast.Node {
936
+ return nativeprogrammers.IsProgrammer.Decode_object(nativeprogrammers.IsProgrammer_DecodeObjectProps{
937
+ Context: props.Context,
938
+ Functor: props.Functor,
939
+ Input: v.Input,
940
+ Object: v.Object,
941
+ Explore: miscCloneProgrammer_feature_explore(v.Explore),
942
+ })
943
+ },
944
+ Decoder: func(v nativeiterate.Decode_union_object_next) *shimast.Node {
945
+ return miscCloneProgrammer_decode_object(struct {
946
+ Functor *nativehelpers.FunctionProgrammer
947
+ Input *shimast.Node
948
+ Object *schemametadata.MetadataObjectType
949
+ Explore nativeinternal.FeatureProgrammer_IExplore
950
+ }{
951
+ Functor: props.Functor,
952
+ Input: v.Input,
953
+ Object: v.Object,
954
+ Explore: miscCloneProgrammer_feature_explore(v.Explore),
955
+ })
956
+ },
957
+ Success: func(exp *shimast.Node) *shimast.Node { return exp },
958
+ Escaper: func(v nativeiterate.Decode_union_object_escape) *shimast.Node {
959
+ return miscCloneProgrammer_create_throw_error(miscCloneProgrammer_throwProps{
960
+ Context: props.Context,
961
+ Functor: props.Functor,
962
+ Expected: v.Expected,
963
+ Input: v.Input,
964
+ })
965
+ },
966
+ Input: next.Input,
967
+ Objects: next.Objects,
968
+ Explore: next.Explore,
969
+ })
970
+ },
971
+ Failure: func(next nativeinternal.FeatureProgrammer_ObjectorFailureProps) *shimast.Node {
972
+ return miscCloneProgrammer_create_throw_error(miscCloneProgrammer_throwProps{
973
+ Context: props.Context,
974
+ Functor: props.Functor,
975
+ Expected: next.Expected,
976
+ Input: next.Input,
977
+ })
978
+ },
979
+ }
980
+ config.Generator = nativeinternal.FeatureProgrammer_IConfig_IGenerator{
981
+ Arrays: func(collection *schemametadata.MetadataCollection) []*shimast.Node {
982
+ return miscCloneProgrammer_write_array_functions(struct {
983
+ Config nativeinternal.FeatureProgrammer_IConfig
984
+ Functor *nativehelpers.FunctionProgrammer
985
+ Collection *schemametadata.MetadataCollection
986
+ }{Config: config, Functor: props.Functor, Collection: collection})
987
+ },
988
+ Tuples: func(collection *schemametadata.MetadataCollection) []*shimast.Node {
989
+ return miscCloneProgrammer_write_tuple_functions(struct {
990
+ Context nativecontext.ITypiaContext
991
+ Config nativeinternal.FeatureProgrammer_IConfig
992
+ Functor *nativehelpers.FunctionProgrammer
993
+ Collection *schemametadata.MetadataCollection
994
+ }{Context: props.Context, Config: config, Functor: props.Functor, Collection: collection})
995
+ },
996
+ }
997
+ return config
998
998
  }
999
999
 
1000
1000
  func miscCloneProgrammer_initializer(props nativeinternal.FeatureProgrammer_InitializerProps) nativeinternal.FeatureProgrammer_InitializerOutput {
1001
- collection := schemametadata.NewMetadataCollection()
1002
- result := nativefactories.MetadataFactory.Analyze(nativefactories.MetadataFactory_IProps{
1003
- Checker: props.Context.Checker,
1004
- Transformer: props.Context.Transformer,
1005
- Options: nativefactories.MetadataFactory_IOptions{
1006
- Escape: false,
1007
- Constant: true,
1008
- Absorb: true,
1009
- Validate: func(next struct {
1010
- Metadata *schemametadata.MetadataSchema
1011
- Explore nativefactories.MetadataFactory_IExplore
1012
- Top *schemametadata.MetadataSchema
1013
- }) []string {
1014
- output := []string{}
1015
- for _, native := range next.Metadata.Natives {
1016
- if native.Name == "WeakSet" {
1017
- output = append(output, "unable to clone WeakSet")
1018
- } else if native.Name == "WeakMap" {
1019
- output = append(output, "unable to clone WeakMap")
1020
- }
1021
- }
1022
- return output
1023
- },
1024
- },
1025
- Components: collection,
1026
- Type: props.Type,
1027
- })
1028
- if result.Success == false {
1029
- panic(nativecontext.TransformerError_from(struct {
1030
- Code string
1031
- Errors []nativecontext.TransformerError_MetadataFactory_IError
1032
- }{
1033
- Code: props.Functor.Method,
1034
- Errors: miscCloneProgrammer_errors(result.Errors),
1035
- }))
1036
- }
1037
- return nativeinternal.FeatureProgrammer_InitializerOutput{
1038
- Collection: collection,
1039
- Metadata: result.Data,
1040
- }
1001
+ collection := schemametadata.NewMetadataCollection()
1002
+ result := nativefactories.MetadataFactory.Analyze(nativefactories.MetadataFactory_IProps{
1003
+ Checker: props.Context.Checker,
1004
+ Transformer: props.Context.Transformer,
1005
+ Options: nativefactories.MetadataFactory_IOptions{
1006
+ Escape: false,
1007
+ Constant: true,
1008
+ Absorb: true,
1009
+ Validate: func(next struct {
1010
+ Metadata *schemametadata.MetadataSchema
1011
+ Explore nativefactories.MetadataFactory_IExplore
1012
+ Top *schemametadata.MetadataSchema
1013
+ }) []string {
1014
+ output := []string{}
1015
+ for _, native := range next.Metadata.Natives {
1016
+ if native.Name == "WeakSet" {
1017
+ output = append(output, "unable to clone WeakSet")
1018
+ } else if native.Name == "WeakMap" {
1019
+ output = append(output, "unable to clone WeakMap")
1020
+ }
1021
+ }
1022
+ return output
1023
+ },
1024
+ },
1025
+ Components: collection,
1026
+ Type: props.Type,
1027
+ })
1028
+ if result.Success == false {
1029
+ panic(nativecontext.TransformerError_from(struct {
1030
+ Code string
1031
+ Errors []nativecontext.TransformerError_MetadataFactory_IError
1032
+ }{
1033
+ Code: props.Functor.Method,
1034
+ Errors: miscCloneProgrammer_errors(result.Errors),
1035
+ }))
1036
+ }
1037
+ return nativeinternal.FeatureProgrammer_InitializerOutput{
1038
+ Collection: collection,
1039
+ Metadata: result.Data,
1040
+ }
1041
1041
  }
1042
1042
 
1043
1043
  type miscCloneProgrammer_throwProps struct {
1044
- Context nativecontext.ITypiaContext
1045
- Functor *nativehelpers.FunctionProgrammer
1046
- Expected string
1047
- Input *shimast.Node
1044
+ Context nativecontext.ITypiaContext
1045
+ Functor *nativehelpers.FunctionProgrammer
1046
+ Expected string
1047
+ Input *shimast.Node
1048
1048
  }
1049
1049
 
1050
1050
  func miscCloneProgrammer_create_throw_error(props miscCloneProgrammer_throwProps) *shimast.Node {
1051
- return miscCloneProgrammer_factory.NewExpressionStatement(
1052
- miscCloneProgrammer_factory.NewCallExpression(
1053
- miscCloneProgrammer_internal(props.Context, "throwTypeGuardError"),
1054
- nil,
1055
- nil,
1056
- miscCloneProgrammer_factory.NewNodeList([]*shimast.Node{
1057
- miscCloneProgrammer_factory.NewObjectLiteralExpression(
1058
- miscCloneProgrammer_factory.NewNodeList([]*shimast.Node{
1059
- miscCloneProgrammer_factory.NewPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier("method"), nil, nil, miscCloneProgrammer_factory.NewStringLiteral(props.Functor.Method, shimast.TokenFlagsNone)),
1060
- miscCloneProgrammer_factory.NewPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier("expected"), nil, nil, miscCloneProgrammer_factory.NewStringLiteral(props.Expected, shimast.TokenFlagsNone)),
1061
- miscCloneProgrammer_factory.NewPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier("value"), nil, nil, props.Input),
1062
- }),
1063
- true,
1064
- ),
1065
- }),
1066
- shimast.NodeFlagsNone,
1067
- ),
1068
- )
1051
+ return miscCloneProgrammer_factory.NewExpressionStatement(
1052
+ miscCloneProgrammer_factory.NewCallExpression(
1053
+ miscCloneProgrammer_internal(props.Context, "throwTypeGuardError"),
1054
+ nil,
1055
+ nil,
1056
+ miscCloneProgrammer_factory.NewNodeList([]*shimast.Node{
1057
+ miscCloneProgrammer_factory.NewObjectLiteralExpression(
1058
+ miscCloneProgrammer_factory.NewNodeList([]*shimast.Node{
1059
+ miscCloneProgrammer_factory.NewPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier("method"), nil, nil, miscCloneProgrammer_factory.NewStringLiteral(props.Functor.Method, shimast.TokenFlagsNone)),
1060
+ miscCloneProgrammer_factory.NewPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier("expected"), nil, nil, miscCloneProgrammer_factory.NewStringLiteral(props.Expected, shimast.TokenFlagsNone)),
1061
+ miscCloneProgrammer_factory.NewPropertyAssignment(nil, nativefactories.IdentifierFactory.Identifier("value"), nil, nil, props.Input),
1062
+ }),
1063
+ true,
1064
+ ),
1065
+ }),
1066
+ shimast.NodeFlagsNone,
1067
+ ),
1068
+ )
1069
1069
  }
1070
1070
 
1071
1071
  func miscCloneProgrammer_is_instance(metadata *schemametadata.MetadataSchema) bool {
1072
- if len(metadata.Objects) != 0 ||
1073
- len(metadata.Arrays) != 0 ||
1074
- len(metadata.Tuples) != 0 ||
1075
- len(metadata.Sets) != 0 ||
1076
- len(metadata.Maps) != 0 ||
1077
- len(metadata.Natives) != 0 {
1078
- return true
1079
- }
1080
- return metadata.Rest != nil && miscCloneProgrammer_is_instance(metadata.Rest)
1072
+ if len(metadata.Objects) != 0 ||
1073
+ len(metadata.Arrays) != 0 ||
1074
+ len(metadata.Tuples) != 0 ||
1075
+ len(metadata.Sets) != 0 ||
1076
+ len(metadata.Maps) != 0 ||
1077
+ len(metadata.Natives) != 0 {
1078
+ return true
1079
+ }
1080
+ return metadata.Rest != nil && miscCloneProgrammer_is_instance(metadata.Rest)
1081
1081
  }
1082
1082
 
1083
1083
  func miscCloneProgrammer_internal(context nativecontext.ITypiaContext, name string) *shimast.Node {
1084
- if importer, ok := context.Importer.(interface{ Internal(string) *shimast.Node }); ok {
1085
- return importer.Internal(name)
1086
- }
1087
- return miscCloneProgrammer_factory.NewIdentifier(name)
1084
+ if importer, ok := context.Importer.(interface{ Internal(string) *shimast.Node }); ok {
1085
+ return importer.Internal(name)
1086
+ }
1087
+ return miscCloneProgrammer_factory.NewIdentifier(name)
1088
1088
  }
1089
1089
 
1090
1090
  func miscCloneProgrammer_import_type(context nativecontext.ITypiaContext, props nativeprogrammers.ImportProgrammer_TypeProps) *shimast.Node {
1091
- if importer, ok := context.Importer.(interface {
1092
- Type(nativeprogrammers.ImportProgrammer_TypeProps) *shimast.Node
1093
- }); ok {
1094
- return importer.Type(props)
1095
- }
1096
- if str, ok := props.Name.(string); ok {
1097
- return miscCloneProgrammer_factory.NewTypeReferenceNode(miscCloneProgrammer_factory.NewIdentifier(str), miscCloneProgrammer_factory.NewNodeList(props.Arguments))
1098
- }
1099
- return props.Name.(*shimast.Node)
1091
+ if importer, ok := context.Importer.(interface {
1092
+ Type(nativeprogrammers.ImportProgrammer_TypeProps) *shimast.Node
1093
+ }); ok {
1094
+ return importer.Type(props)
1095
+ }
1096
+ if str, ok := props.Name.(string); ok {
1097
+ return miscCloneProgrammer_factory.NewTypeReferenceNode(miscCloneProgrammer_factory.NewIdentifier(str), miscCloneProgrammer_factory.NewNodeList(props.Arguments))
1098
+ }
1099
+ return props.Name.(*shimast.Node)
1100
1100
  }
1101
1101
 
1102
1102
  func miscCloneProgrammer_type_name(context nativecontext.ITypiaContext, typ *shimchecker.Type, name *string) string {
1103
- if name != nil {
1104
- return *name
1105
- }
1106
- return nativefactories.TypeFactory.GetFullName(nativefactories.TypeFactory_GetFullNameProps{
1107
- Checker: context.Checker,
1108
- Type: typ,
1109
- })
1103
+ if name != nil {
1104
+ return *name
1105
+ }
1106
+ return nativefactories.TypeFactory.GetFullName(nativefactories.TypeFactory_GetFullNameProps{
1107
+ Checker: context.Checker,
1108
+ Type: typ,
1109
+ })
1110
1110
  }
1111
1111
 
1112
1112
  func miscCloneProgrammer_method_text(modulo *shimast.Node) string {
1113
- if modulo == nil {
1114
- return ""
1115
- }
1116
- return modulo.Text()
1113
+ if modulo == nil {
1114
+ return ""
1115
+ }
1116
+ return modulo.Text()
1117
1117
  }
1118
1118
 
1119
1119
  func miscCloneProgrammer_errors(errors []nativefactories.MetadataFactory_IError) []nativecontext.TransformerError_MetadataFactory_IError {
1120
- output := make([]nativecontext.TransformerError_MetadataFactory_IError, 0, len(errors))
1121
- for _, err := range errors {
1122
- output = append(output, nativecontext.TransformerError_MetadataFactory_IError{
1123
- Name: err.Name,
1124
- Explore: nativecontext.TransformerError_MetadataFactory_IExplore{
1125
- Object: err.Explore.Object,
1126
- Property: err.Explore.Property,
1127
- Parameter: err.Explore.Parameter,
1128
- Output: err.Explore.Output,
1129
- },
1130
- Messages: append([]string{}, err.Messages...),
1131
- })
1132
- }
1133
- return output
1120
+ output := make([]nativecontext.TransformerError_MetadataFactory_IError, 0, len(errors))
1121
+ for _, err := range errors {
1122
+ output = append(output, nativecontext.TransformerError_MetadataFactory_IError{
1123
+ Name: err.Name,
1124
+ Explore: nativecontext.TransformerError_MetadataFactory_IExplore{
1125
+ Object: err.Explore.Object,
1126
+ Property: err.Explore.Property,
1127
+ Parameter: err.Explore.Parameter,
1128
+ Output: err.Explore.Output,
1129
+ },
1130
+ Messages: append([]string{}, err.Messages...),
1131
+ })
1132
+ }
1133
+ return output
1134
1134
  }
1135
1135
 
1136
1136
  func miscCloneProgrammer_feature_explore(input any) nativeinternal.FeatureProgrammer_IExplore {
1137
- switch v := input.(type) {
1138
- case nativeinternal.FeatureProgrammer_IExplore:
1139
- return v
1140
- case *nativeinternal.FeatureProgrammer_IExplore:
1141
- return *v
1142
- default:
1143
- return nativeinternal.FeatureProgrammer_IExplore{}
1144
- }
1137
+ switch v := input.(type) {
1138
+ case nativeinternal.FeatureProgrammer_IExplore:
1139
+ return v
1140
+ case *nativeinternal.FeatureProgrammer_IExplore:
1141
+ return *v
1142
+ default:
1143
+ return nativeinternal.FeatureProgrammer_IExplore{}
1144
+ }
1145
1145
  }
1146
1146
 
1147
1147
  func miscCloneProgrammer_checker_explore(input any) nativeinternal.CheckerProgrammer_IExplore {
1148
- v := miscCloneProgrammer_feature_explore(input)
1149
- return nativeinternal.CheckerProgrammer_IExplore{
1150
- Tracable: v.Tracable,
1151
- Source: v.Source,
1152
- From: v.From,
1153
- Postfix: v.Postfix,
1154
- Start: v.Start,
1155
- }
1148
+ v := miscCloneProgrammer_feature_explore(input)
1149
+ return nativeinternal.CheckerProgrammer_IExplore{
1150
+ Tracable: v.Tracable,
1151
+ Source: v.Source,
1152
+ From: v.From,
1153
+ Postfix: v.Postfix,
1154
+ Start: v.Start,
1155
+ }
1156
1156
  }
1157
1157
 
1158
1158
  func miscCloneProgrammer_checker_explore_with_postfix(input any, postfix string) nativeinternal.CheckerProgrammer_IExplore {
1159
- v := miscCloneProgrammer_checker_explore(input)
1160
- v.Postfix = v.Postfix + postfix
1161
- return v
1159
+ v := miscCloneProgrammer_checker_explore(input)
1160
+ v.Postfix = v.Postfix + postfix
1161
+ return v
1162
1162
  }
1163
1163
 
1164
1164
  func miscCloneProgrammer_explore_with(explore nativeinternal.FeatureProgrammer_IExplore, source string, from string) nativeinternal.FeatureProgrammer_IExplore {
1165
- explore.Source = source
1166
- explore.From = from
1167
- return explore
1165
+ explore.Source = source
1166
+ explore.From = from
1167
+ return explore
1168
1168
  }
1169
1169
 
1170
1170
  func miscCloneProgrammer_some_arrays(values []*schemametadata.MetadataArray, pred func(*schemametadata.MetadataArray) bool) bool {
1171
- for _, value := range values {
1172
- if pred(value) {
1173
- return true
1174
- }
1175
- }
1176
- return false
1171
+ for _, value := range values {
1172
+ if pred(value) {
1173
+ return true
1174
+ }
1175
+ }
1176
+ return false
1177
1177
  }
1178
1178
 
1179
1179
  func miscCloneProgrammer_some_tuples(values []*schemametadata.MetadataTuple, pred func(*schemametadata.MetadataTuple) bool) bool {
1180
- for _, value := range values {
1181
- if pred(value) {
1182
- return true
1183
- }
1184
- }
1185
- return false
1180
+ for _, value := range values {
1181
+ if pred(value) {
1182
+ return true
1183
+ }
1184
+ }
1185
+ return false
1186
1186
  }
1187
1187
 
1188
1188
  func miscCloneProgrammer_every_schema(values []*schemametadata.MetadataSchema, pred func(*schemametadata.MetadataSchema) bool) bool {
1189
- if len(values) == 0 {
1190
- return false
1191
- }
1192
- for _, value := range values {
1193
- if pred(value) == false {
1194
- return false
1195
- }
1196
- }
1197
- return true
1189
+ if len(values) == 0 {
1190
+ return false
1191
+ }
1192
+ for _, value := range values {
1193
+ if pred(value) == false {
1194
+ return false
1195
+ }
1196
+ }
1197
+ return true
1198
1198
  }
1199
1199
 
1200
1200
  func miscCloneProgrammer_join_names[T any](values []T, name func(T) string) string {
1201
- names := make([]string, 0, len(values))
1202
- for _, value := range values {
1203
- names = append(names, name(value))
1204
- }
1205
- return strings.Join(names, " | ")
1201
+ names := make([]string, 0, len(values))
1202
+ for _, value := range values {
1203
+ names = append(names, name(value))
1204
+ }
1205
+ return strings.Join(names, " | ")
1206
1206
  }