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