typia 15.1.0 → 15.2.0
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/TypeGuardError.js.map +1 -1
- package/lib/basic.js.map +1 -1
- package/lib/compare.js.map +1 -1
- package/lib/functional.js.map +1 -1
- package/lib/http.js.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/internal/_IProtobufWriter.js.map +1 -1
- package/lib/internal/_ProtobufReader.js.map +1 -1
- package/lib/internal/_ProtobufSizer.js.map +1 -1
- package/lib/internal/_ProtobufWriter.js.map +1 -1
- package/lib/internal/_accessExpressionAsString.js.map +1 -1
- package/lib/internal/_assertGuard.js.map +1 -1
- package/lib/internal/_coerceLlmArguments.js.map +1 -1
- package/lib/internal/_createLlmEvaluation.js.map +1 -1
- package/lib/internal/_createStandardSchema.js.map +1 -1
- package/lib/internal/_decimal.js.map +1 -1
- package/lib/internal/_functionalTypeGuardErrorFactory.js.map +1 -1
- package/lib/internal/_httpFormDataReadArray.js.map +1 -1
- package/lib/internal/_httpFormDataReadBigint.js.map +1 -1
- package/lib/internal/_httpFormDataReadBlob.js.map +1 -1
- package/lib/internal/_httpFormDataReadBoolean.js.map +1 -1
- package/lib/internal/_httpFormDataReadFile.js.map +1 -1
- package/lib/internal/_httpFormDataReadNumber.js.map +1 -1
- package/lib/internal/_httpFormDataReadString.js.map +1 -1
- package/lib/internal/_httpHeaderReadBigint.js.map +1 -1
- package/lib/internal/_httpHeaderReadBoolean.js.map +1 -1
- package/lib/internal/_httpHeaderReadNumber.js.map +1 -1
- package/lib/internal/_httpParameterReadBigint.js.map +1 -1
- package/lib/internal/_httpParameterReadBoolean.js.map +1 -1
- package/lib/internal/_httpParameterReadNumber.js.map +1 -1
- package/lib/internal/_httpParameterReadString.js.map +1 -1
- package/lib/internal/_httpQueryParseURLSearchParams.js.map +1 -1
- package/lib/internal/_httpQueryReadArray.js.map +1 -1
- package/lib/internal/_httpQueryReadBigint.js.map +1 -1
- package/lib/internal/_httpQueryReadBoolean.js.map +1 -1
- package/lib/internal/_httpQueryReadNumber.js.map +1 -1
- package/lib/internal/_httpQueryReadString.js.map +1 -1
- package/lib/internal/_isBetween.js.map +1 -1
- package/lib/internal/_isBigintString.js.map +1 -1
- package/lib/internal/_isFormatByte.js.map +1 -1
- package/lib/internal/_isFormatDate.js.map +1 -1
- package/lib/internal/_isFormatDateTime.js.map +1 -1
- package/lib/internal/_isFormatDuration.js.map +1 -1
- package/lib/internal/_isFormatEmail.js.map +1 -1
- package/lib/internal/_isFormatHostname.js.map +1 -1
- package/lib/internal/_isFormatIdnEmail.js.map +1 -1
- package/lib/internal/_isFormatIdnHostname.js.map +1 -1
- package/lib/internal/_isFormatIpv4.js.map +1 -1
- package/lib/internal/_isFormatIpv6.js.map +1 -1
- package/lib/internal/_isFormatIri.js.map +1 -1
- package/lib/internal/_isFormatIriReference.js.map +1 -1
- package/lib/internal/_isFormatJsonPointer.js.map +1 -1
- package/lib/internal/_isFormatPassword.js.map +1 -1
- package/lib/internal/_isFormatRegex.js.map +1 -1
- package/lib/internal/_isFormatRelativeJsonPointer.js.map +1 -1
- package/lib/internal/_isFormatTime.js.map +1 -1
- package/lib/internal/_isFormatUri.js.map +1 -1
- package/lib/internal/_isFormatUriReference.js.map +1 -1
- package/lib/internal/_isFormatUriTemplate.js.map +1 -1
- package/lib/internal/_isFormatUrl.js.map +1 -1
- package/lib/internal/_isFormatUuid.js.map +1 -1
- package/lib/internal/_isMultipleOf.js.map +1 -1
- package/lib/internal/_isTypeFloat.js.map +1 -1
- package/lib/internal/_isTypeInt16.js.map +1 -1
- package/lib/internal/_isTypeInt32.js.map +1 -1
- package/lib/internal/_isTypeInt64.js.map +1 -1
- package/lib/internal/_isTypeInt64Bigint.js.map +1 -1
- package/lib/internal/_isTypeInt8.js.map +1 -1
- package/lib/internal/_isTypeUint16.js.map +1 -1
- package/lib/internal/_isTypeUint32.js.map +1 -1
- package/lib/internal/_isTypeUint64.js.map +1 -1
- package/lib/internal/_isTypeUint64Bigint.js.map +1 -1
- package/lib/internal/_isTypeUint8.js.map +1 -1
- package/lib/internal/_isUniqueItems.js.map +1 -1
- package/lib/internal/_jsonStringifyArray.js.map +1 -1
- package/lib/internal/_jsonStringifyElement.js.map +1 -1
- package/lib/internal/_jsonStringifyNumber.js.map +1 -1
- package/lib/internal/_jsonStringifyProperty.js.map +1 -1
- package/lib/internal/_jsonStringifyRest.js.map +1 -1
- package/lib/internal/_jsonStringifyString.js.map +1 -1
- package/lib/internal/_jsonStringifyTail.js.map +1 -1
- package/lib/internal/_llmApplicationFinalize.js +8 -1
- package/lib/internal/_llmApplicationFinalize.js.map +1 -1
- package/lib/internal/_notationAny.js.map +1 -1
- package/lib/internal/_notationAssign.js.map +1 -1
- package/lib/internal/_notationCamel.js.map +1 -1
- package/lib/internal/_notationKebab.js.map +1 -1
- package/lib/internal/_notationKeyCollision.js.map +1 -1
- package/lib/internal/_notationPascal.js.map +1 -1
- package/lib/internal/_notationSnake.js.map +1 -1
- package/lib/internal/_parseLlmArguments.js.map +1 -1
- package/lib/internal/_plainCloneAny.js.map +1 -1
- package/lib/internal/_randomArray.js.map +1 -1
- package/lib/internal/_randomBigint.js.map +1 -1
- package/lib/internal/_randomBoolean.js.map +1 -1
- package/lib/internal/_randomFormatByte.js.map +1 -1
- package/lib/internal/_randomFormatDate.js.map +1 -1
- package/lib/internal/_randomFormatDatetime.js.map +1 -1
- package/lib/internal/_randomFormatDuration.js.map +1 -1
- package/lib/internal/_randomFormatEmail.js.map +1 -1
- package/lib/internal/_randomFormatHostname.js.map +1 -1
- package/lib/internal/_randomFormatIdnEmail.js.map +1 -1
- package/lib/internal/_randomFormatIdnHostname.js.map +1 -1
- package/lib/internal/_randomFormatIpv4.js.map +1 -1
- package/lib/internal/_randomFormatIpv6.js.map +1 -1
- package/lib/internal/_randomFormatIri.js.map +1 -1
- package/lib/internal/_randomFormatIriReference.js.map +1 -1
- package/lib/internal/_randomFormatJsonPointer.js.map +1 -1
- package/lib/internal/_randomFormatPassword.js.map +1 -1
- package/lib/internal/_randomFormatRegex.js.map +1 -1
- package/lib/internal/_randomFormatRelativeJsonPointer.js.map +1 -1
- package/lib/internal/_randomFormatTime.js.map +1 -1
- package/lib/internal/_randomFormatUri.js.map +1 -1
- package/lib/internal/_randomFormatUriReference.js.map +1 -1
- package/lib/internal/_randomFormatUriTemplate.js.map +1 -1
- package/lib/internal/_randomFormatUrl.js.map +1 -1
- package/lib/internal/_randomFormatUuid.js.map +1 -1
- package/lib/internal/_randomInteger.js.map +1 -1
- package/lib/internal/_randomMultiple.js.map +1 -1
- package/lib/internal/_randomNumber.js.map +1 -1
- package/lib/internal/_randomPattern.js.map +1 -1
- package/lib/internal/_randomPick.js.map +1 -1
- package/lib/internal/_randomString.js.map +1 -1
- package/lib/internal/_randomStringLength.js.map +1 -1
- package/lib/internal/_stringLength.js.map +1 -1
- package/lib/internal/_stringLengthGte.js.map +1 -1
- package/lib/internal/_stringLengthLte.js.map +1 -1
- package/lib/internal/_throwTypeGuardError.js.map +1 -1
- package/lib/internal/_validateReport.js.map +1 -1
- package/lib/internal/private/__notationRename.js.map +1 -1
- package/lib/internal/private/__randomComposition.js.map +1 -1
- package/lib/internal/private/__randomEpoch.js.map +1 -1
- package/lib/json.js.map +1 -1
- package/lib/llm.js.map +1 -1
- package/lib/module.js.map +1 -1
- package/lib/notations.js.map +1 -1
- package/lib/plain.js.map +1 -1
- package/lib/protobuf.js.map +1 -1
- package/lib/re-exports.js.map +1 -1
- package/lib/reflect.js.map +1 -1
- package/lib/transform.d.ts +5 -2
- package/lib/transform.js +6 -2
- package/lib/transform.js.map +1 -1
- package/lib/transform.mjs +7 -3
- package/lib/transform.mjs.map +1 -1
- package/lib/transformers/NoTransformConfigurationError.js.map +1 -1
- package/native/cmd/ttsc-typia/build.go +3 -1
- package/native/cmd/ttsc-typia/content_mapper_transform_ts71_test.go +102 -0
- package/native/cmd/ttsc-typia/diagnostics.go +1 -1
- package/native/cmd/ttsc-typia/distinct_programs_concurrent_emit_test.go +167 -0
- package/native/cmd/ttsc-typia/exact_optional_family_emission_contract_test.go +2 -1
- package/native/cmd/ttsc-typia/project_dependencies_heritage_forms_transform_test.go +84 -0
- package/native/cmd/ttsc-typia/schema_literal_helpers_test.go +2 -1
- package/native/cmd/ttsc-typia/transform.go +7 -6
- package/native/core/context/EmitFactory.go +20 -29
- package/native/core/context/ImportProgrammer.go +5 -7
- package/native/core/context/NodeFactory.go +25 -0
- package/native/core/context/node_factory_ownership_test.go +45 -0
- package/native/core/factories/ExpressionFactory.go +13 -14
- package/native/core/factories/IdentifierFactory.go +3 -5
- package/native/core/factories/LiteralFactory.go +6 -8
- package/native/core/factories/NumericRangeFactory.go +8 -10
- package/native/core/factories/StatementFactory.go +5 -7
- package/native/core/factories/TemplateFactory.go +1 -3
- package/native/core/factories/TypeFactory.go +7 -9
- package/native/core/factories/ValueFactory.go +5 -7
- package/native/core/factories/factory_utility_coverage_test.go +21 -20
- package/native/core/factories/internal/metadata/MetadataHelper.go +13 -13
- package/native/core/factories/internal/metadata/comment_tags_coverage_test.go +7 -16
- package/native/core/factories/internal/metadata/emplace_metadata_object.go +36 -27
- package/native/core/factories/internal/metadata/iterate_metadata_alias.go +2 -2
- package/native/core/factories/internal/metadata/iterate_metadata_constant.go +4 -4
- package/native/core/factories/internal/metadata/iterate_metadata_function.go +2 -2
- package/native/core/factories/internal/metadata/iterate_metadata_intersection.go +11 -11
- package/native/core/factories/internal/metadata/js_doc_link_text_test.go +6 -16
- package/native/core/factories/internal/metadata/js_doc_parameter_name_reads_qualified_name_test.go +2 -1
- package/native/core/factories/internal/metadata/js_doc_source_helpers_test.go +44 -0
- package/native/core/factories/internal/metadata/js_doc_type_tag_blank_separation_test.go +16 -22
- package/native/core/factories/numeric_range_factory_enforces_64bit_bounds_test.go +2 -1
- package/native/core/programmers/AssertProgrammer.go +16 -18
- package/native/core/programmers/IsProgrammer.go +10 -12
- package/native/core/programmers/RandomProgrammer.go +29 -31
- package/native/core/programmers/ValidateProgrammer.go +20 -22
- package/native/core/programmers/compare/CompareEqualProgrammer.go +1 -3
- package/native/core/programmers/compare/CompareLessProgrammer.go +1 -3
- package/native/core/programmers/functional/FunctionalAssertFunctionProgrammer.go +3 -5
- package/native/core/programmers/functional/FunctionalAssertParametersProgrammer.go +2 -2
- package/native/core/programmers/functional/FunctionalAssertReturnProgrammer.go +2 -2
- package/native/core/programmers/functional/FunctionalIsFunctionProgrammer.go +2 -2
- package/native/core/programmers/functional/FunctionalIsParametersProgrammer.go +8 -10
- package/native/core/programmers/functional/FunctionalIsReturnProgrammer.go +2 -2
- package/native/core/programmers/functional/FunctionalValidateFunctionProgrammer.go +4 -6
- package/native/core/programmers/functional/FunctionalValidateParametersProgrammer.go +2 -2
- package/native/core/programmers/functional/FunctionalValidateReturnProgrammer.go +2 -2
- package/native/core/programmers/helpers/ClassifyJoiner.go +1 -3
- package/native/core/programmers/helpers/CloneJoiner.go +8 -14
- package/native/core/programmers/helpers/FunctionProgrammer.go +3 -5
- package/native/core/programmers/helpers/NotationJoiner.go +6 -12
- package/native/core/programmers/helpers/PruneJoiner.go +10 -12
- package/native/core/programmers/helpers/RandomJoiner.go +5 -7
- package/native/core/programmers/helpers/StringifyJoinder.go +15 -17
- package/native/core/programmers/helpers/UnionExplorer.go +24 -26
- package/native/core/programmers/http/HttpAssertFormDataProgrammer.go +2 -4
- package/native/core/programmers/http/HttpAssertHeadersProgrammer.go +1 -1
- package/native/core/programmers/http/HttpAssertQueryProgrammer.go +1 -1
- package/native/core/programmers/http/HttpFormDataProgrammer.go +9 -11
- package/native/core/programmers/http/HttpHeadersProgrammer.go +7 -9
- package/native/core/programmers/http/HttpIsFormDataProgrammer.go +2 -4
- package/native/core/programmers/http/HttpIsHeadersProgrammer.go +1 -1
- package/native/core/programmers/http/HttpIsQueryProgrammer.go +1 -1
- package/native/core/programmers/http/HttpParameterProgrammer.go +2 -4
- package/native/core/programmers/http/HttpQueryProgrammer.go +8 -10
- package/native/core/programmers/http/HttpValidateFormDataProgrammer.go +2 -4
- package/native/core/programmers/http/HttpValidateHeadersProgrammer.go +1 -1
- package/native/core/programmers/http/HttpValidateQueryProgrammer.go +1 -1
- package/native/core/programmers/internal/CheckerProgrammer.go +26 -28
- package/native/core/programmers/internal/FeatureProgrammer.go +32 -34
- package/native/core/programmers/iterate/check_array_length.go +1 -1
- package/native/core/programmers/iterate/check_bigint.go +2 -4
- package/native/core/programmers/iterate/check_dynamic_key.go +5 -7
- package/native/core/programmers/iterate/check_dynamic_properties.go +43 -57
- package/native/core/programmers/iterate/check_everything.go +3 -5
- package/native/core/programmers/iterate/check_exclude.go +2 -4
- package/native/core/programmers/iterate/check_native.go +2 -4
- package/native/core/programmers/iterate/check_number.go +2 -4
- package/native/core/programmers/iterate/check_object.go +3 -5
- package/native/core/programmers/iterate/check_object_type_tags.go +1 -1
- package/native/core/programmers/iterate/check_string.go +2 -4
- package/native/core/programmers/iterate/check_template.go +7 -9
- package/native/core/programmers/iterate/decode_union_object.go +2 -4
- package/native/core/programmers/iterate/feature_object_entries.go +2 -4
- package/native/core/programmers/json/JsonAssertParseProgrammer.go +2 -2
- package/native/core/programmers/json/JsonAssertStringifyProgrammer.go +2 -4
- package/native/core/programmers/json/JsonIsParseProgrammer.go +4 -6
- package/native/core/programmers/json/JsonIsStringifyProgrammer.go +2 -4
- package/native/core/programmers/json/JsonStringifyProgrammer.go +37 -39
- package/native/core/programmers/json/JsonValidateParseProgrammer.go +2 -2
- package/native/core/programmers/json/JsonValidateStringifyProgrammer.go +2 -4
- package/native/core/programmers/llm/LlmApplicationProgrammer.go +1 -3
- package/native/core/programmers/llm/LlmCoerceProgrammer.go +2 -4
- package/native/core/programmers/llm/LlmControllerProgrammer.go +1 -3
- package/native/core/programmers/llm/LlmEvaluationProgrammer.go +1 -3
- package/native/core/programmers/llm/LlmParametersProgrammer.go +1 -3
- package/native/core/programmers/llm/LlmParseProgrammer.go +3 -5
- package/native/core/programmers/llm/LlmSchemaProgrammer.go +5 -7
- package/native/core/programmers/llm/LlmStructuredOutputProgrammer.go +2 -4
- package/native/core/programmers/llm/llm_schema_programmer_coverage_test.go +1 -1
- package/native/core/programmers/notations/NotationAssertGeneralProgrammer.go +1 -3
- package/native/core/programmers/notations/NotationGeneralProgrammer.go +26 -28
- package/native/core/programmers/notations/NotationIsGeneralProgrammer.go +1 -3
- package/native/core/programmers/notations/NotationValidateGeneralProgrammer.go +1 -3
- package/native/core/programmers/plain/PlainAssertClassifyProgrammer.go +2 -4
- package/native/core/programmers/plain/PlainAssertCloneProgrammer.go +2 -4
- package/native/core/programmers/plain/PlainAssertPruneProgrammer.go +2 -4
- package/native/core/programmers/plain/PlainClassifyProgrammer.go +44 -46
- package/native/core/programmers/plain/PlainCloneProgrammer.go +30 -32
- package/native/core/programmers/plain/PlainIsCloneProgrammer.go +2 -4
- package/native/core/programmers/plain/PlainIsPruneProgrammer.go +2 -4
- package/native/core/programmers/plain/PlainPruneProgrammer.go +26 -28
- package/native/core/programmers/plain/PlainValidateClassifyProgrammer.go +2 -4
- package/native/core/programmers/plain/PlainValidateCloneProgrammer.go +2 -4
- package/native/core/programmers/plain/PlainValidatePruneProgrammer.go +2 -4
- package/native/core/programmers/protobuf/ProtobufAssertDecodeProgrammer.go +2 -4
- package/native/core/programmers/protobuf/ProtobufAssertEncodeProgrammer.go +2 -4
- package/native/core/programmers/protobuf/ProtobufDecodeProgrammer.go +24 -25
- package/native/core/programmers/protobuf/ProtobufEncodeProgrammer.go +23 -25
- package/native/core/programmers/protobuf/ProtobufIsDecodeProgrammer.go +2 -4
- package/native/core/programmers/protobuf/ProtobufIsEncodeProgrammer.go +2 -4
- package/native/core/programmers/protobuf/ProtobufMessageProgrammer.go +1 -3
- package/native/core/programmers/protobuf/ProtobufValidateDecodeProgrammer.go +2 -4
- package/native/core/programmers/protobuf/ProtobufValidateEncodeProgrammer.go +3 -5
- package/native/core/programmers/protobuf/protobuf_programmer_helper_coverage_test.go +1 -1
- package/native/core/programmers/reflect/ReflectLiteralsProgrammer.go +1 -3
- package/native/core/schemas/metadata/MetadataCollection.go +2 -2
- package/native/core/schemas/metadata/MetadataDefaultLibrary.go +1 -1
- package/native/core/schemas/metadata/MetadataDependency.go +13 -13
- package/native/core/utils/PromiseTypeFactory.go +3 -3
- package/native/go.mod +3 -4
- package/native/go.work +1 -1
- package/native/transform/CallExpressionTransformer.go +4 -4
- package/native/transform/FileTransformer.go +2 -4
- package/native/transform/features/RandomTransformer.go +1 -3
- package/native/transform/features/compare/CompareEqualTransformer.go +1 -1
- package/native/transform/features/compare/CompareLessTransformer.go +1 -1
- package/native/transform/features/functional/FunctionalGenericTransformer.go +2 -2
- package/native/transform/features/llm/LlmCoerceTransformer.go +1 -1
- package/native/transform/features/llm/LlmEvaluationProbabilityDeclarations.go +1 -1
- package/native/transform/features/llm/LlmEvaluationTransformer.go +1 -1
- package/native/transform/features/llm/LlmParseTransformer.go +1 -1
- package/native/transform/features/llm/LlmSchemaTransformer.go +1 -3
- package/native/transform/features/reflect/ReflectNameTransformer.go +1 -3
- package/native/transform/file_transformer_coverage_test.go +2 -1
- package/native/transform/internal/GenericTransformer.go +1 -3
- package/package.json +6 -6
- package/src/transform.ts +6 -2
|
@@ -42,15 +42,13 @@ type compareLessProgrammerGenerator struct {
|
|
|
42
42
|
Counter int
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
var compareLessProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
|
|
46
|
-
|
|
47
45
|
// Write emits an `(x, y) => boolean` predicate that reports whether `x`
|
|
48
46
|
// lexicographically precedes `y`. It builds a three-way comparator (negative /
|
|
49
47
|
// zero / positive) over the declared structure of the type and returns
|
|
50
48
|
// `cmp(x, y) < 0` so that `equal` and `less` together compose into an
|
|
51
49
|
// Array.prototype.sort comparator.
|
|
52
50
|
func (compareLessProgrammerNamespace) Write(props CompareLessProgrammer_IProps) *shimast.Node {
|
|
53
|
-
f := nativecontext.
|
|
51
|
+
f := nativecontext.NodeFactoryOf(props.Context.Emit)
|
|
54
52
|
method := nativehelpers.ModuloMethodText(props.Modulo)
|
|
55
53
|
collection := schemametadata.NewMetadataCollection()
|
|
56
54
|
result := nativefactories.MetadataFactory.Analyze(nativefactories.MetadataFactory_IProps{
|
|
@@ -70,8 +70,6 @@ type FunctionalAssertFunctionProgrammer_ErrorFactoryWrapperOutput struct {
|
|
|
70
70
|
Variable *shimast.Node
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
-
var functionalAssertProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
|
|
74
|
-
|
|
75
73
|
func (functionalAssertFunctionProgrammerNamespace) Write(props FunctionalAssertFunctionProgrammer_IProps) *shimast.Node {
|
|
76
74
|
wrapper := FunctionalAssertFunctionProgrammer.ErrorFactoryWrapper(struct {
|
|
77
75
|
Context nativecontext.ITypiaContext
|
|
@@ -97,7 +95,7 @@ func (functionalAssertFunctionProgrammerNamespace) Write(props FunctionalAssertF
|
|
|
97
95
|
Declaration: props.Declaration,
|
|
98
96
|
Wrapper: wrapper.Name,
|
|
99
97
|
})
|
|
100
|
-
f := nativecontext.
|
|
98
|
+
f := nativecontext.NodeFactoryOf(props.Context.Emit)
|
|
101
99
|
statements := []*shimast.Node{wrapper.Variable}
|
|
102
100
|
statements = append(statements, p.Functions...)
|
|
103
101
|
statements = append(statements, r.Functions...)
|
|
@@ -150,7 +148,7 @@ func (functionalAssertFunctionProgrammerNamespace) HookPath(props struct {
|
|
|
150
148
|
Wrapper string
|
|
151
149
|
Replacer string
|
|
152
150
|
}) *shimast.Node {
|
|
153
|
-
f := nativecontext.
|
|
151
|
+
f := nativecontext.NodeFactoryOf(props.Context.Emit)
|
|
154
152
|
path := nativefactories.IdentifierFactory.Access(props.Context.Emit, f.NewIdentifier("p"), "path")
|
|
155
153
|
return f.NewArrowFunction(
|
|
156
154
|
nil,
|
|
@@ -207,5 +205,5 @@ func functionalAssertProgrammer_internal(context nativecontext.ITypiaContext, na
|
|
|
207
205
|
if importer := context.Importer; importer != nil {
|
|
208
206
|
return importer.Internal(name)
|
|
209
207
|
}
|
|
210
|
-
return nativecontext.
|
|
208
|
+
return nativecontext.NodeFactoryOf(context.Emit).NewIdentifier(name)
|
|
211
209
|
}
|
|
@@ -107,7 +107,7 @@ func (functionalAssertParametersProgrammerNamespace) Write(props FunctionalAsser
|
|
|
107
107
|
Parameters: functionalIsProgrammer_parameterNodes(props.Declaration),
|
|
108
108
|
Init: props.Init,
|
|
109
109
|
})
|
|
110
|
-
f := nativecontext.
|
|
110
|
+
f := nativecontext.NodeFactoryOf(props.Context.Emit)
|
|
111
111
|
output := functionalinternal.FunctionalGeneralProgrammer.GetReturnType(functionalinternal.FunctionalGeneralProgrammer_IProps{
|
|
112
112
|
Checker: props.Context.Checker,
|
|
113
113
|
Declaration: props.Declaration,
|
|
@@ -142,7 +142,7 @@ func (functionalAssertParametersProgrammerNamespace) Write(props FunctionalAsser
|
|
|
142
142
|
}
|
|
143
143
|
|
|
144
144
|
func (functionalAssertParametersProgrammerNamespace) Decompose(props FunctionalAssertParametersProgrammer_IDecomposeProps) FunctionalAssertParametersProgrammer_IDecomposeOutput {
|
|
145
|
-
f := nativecontext.
|
|
145
|
+
f := nativecontext.NodeFactoryOf(props.Context.Emit)
|
|
146
146
|
functions := make([]*shimast.Node, 0, len(props.Parameters))
|
|
147
147
|
expressions := make([]*shimast.Node, 0, len(props.Parameters))
|
|
148
148
|
for i, p := range props.Parameters {
|
|
@@ -122,7 +122,7 @@ func (functionAssertReturnProgrammerNamespace) Write(props FunctionAssertReturnP
|
|
|
122
122
|
Declaration: props.Declaration,
|
|
123
123
|
Wrapper: wrapper.Name,
|
|
124
124
|
})
|
|
125
|
-
f := nativecontext.
|
|
125
|
+
f := nativecontext.NodeFactoryOf(props.Context.Emit)
|
|
126
126
|
statements := []*shimast.Node{wrapper.Variable}
|
|
127
127
|
statements = append(statements, result.Functions...)
|
|
128
128
|
statements = append(statements, f.NewReturnStatement(
|
|
@@ -141,7 +141,7 @@ func (functionAssertReturnProgrammerNamespace) Write(props FunctionAssertReturnP
|
|
|
141
141
|
}
|
|
142
142
|
|
|
143
143
|
func (functionAssertReturnProgrammerNamespace) Decompose(props FunctionAssertReturnProgrammer_IDecomposeProps) FunctionAssertReturnProgrammer_IDecomposeOutput {
|
|
144
|
-
f := nativecontext.
|
|
144
|
+
f := nativecontext.NodeFactoryOf(props.Context.Emit)
|
|
145
145
|
output := functionalinternal.FunctionalGeneralProgrammer.GetReturnType(functionalinternal.FunctionalGeneralProgrammer_IProps{
|
|
146
146
|
Checker: props.Context.Checker,
|
|
147
147
|
Declaration: props.Declaration,
|
|
@@ -50,7 +50,7 @@ type FunctionalIsFunctionProgrammer_IProps struct {
|
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
func (functionalIsFunctionProgrammerNamespace) Write(props FunctionalIsFunctionProgrammer_IProps) *shimast.Node {
|
|
53
|
-
f := nativecontext.
|
|
53
|
+
f := nativecontext.NodeFactoryOf(props.Context.Emit)
|
|
54
54
|
p := FunctionalIsParametersProgrammer.Decompose(FunctionalIsParametersProgrammer_IDecomposeProps{
|
|
55
55
|
Context: props.Context,
|
|
56
56
|
Config: FunctionalIsParametersProgrammer_IConfig{Equals: props.Config.Equals},
|
|
@@ -103,7 +103,7 @@ func (functionalIsFunctionProgrammerNamespace) GetReturnTypeNode(props struct {
|
|
|
103
103
|
if typ == nil {
|
|
104
104
|
return nil
|
|
105
105
|
}
|
|
106
|
-
f := nativecontext.
|
|
106
|
+
f := nativecontext.NodeFactoryOf(props.Context.Emit)
|
|
107
107
|
nullType := f.NewTypeReferenceNode(f.NewIdentifier("null"), nil)
|
|
108
108
|
if props.Async {
|
|
109
109
|
var inner *shimast.Node
|
|
@@ -92,10 +92,8 @@ type FunctionalIsParametersProgrammer_IDecomposeOutput struct {
|
|
|
92
92
|
Statements []*shimast.Node
|
|
93
93
|
}
|
|
94
94
|
|
|
95
|
-
var functionalIsProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
|
|
96
|
-
|
|
97
95
|
func (functionalIsParametersProgrammerNamespace) Write(props FunctionalIsParametersProgrammer_IProps) *shimast.Node {
|
|
98
|
-
f := nativecontext.
|
|
96
|
+
f := nativecontext.NodeFactoryOf(props.Context.Emit)
|
|
99
97
|
output := functionalinternal.FunctionalGeneralProgrammer.GetReturnType(functionalinternal.FunctionalGeneralProgrammer_IProps{
|
|
100
98
|
Checker: props.Context.Checker,
|
|
101
99
|
Declaration: props.Declaration,
|
|
@@ -134,7 +132,7 @@ func (functionalIsParametersProgrammerNamespace) Write(props FunctionalIsParamet
|
|
|
134
132
|
}
|
|
135
133
|
|
|
136
134
|
func (functionalIsParametersProgrammerNamespace) Decompose(props FunctionalIsParametersProgrammer_IDecomposeProps) FunctionalIsParametersProgrammer_IDecomposeOutput {
|
|
137
|
-
f := nativecontext.
|
|
135
|
+
f := nativecontext.NodeFactoryOf(props.Context.Emit)
|
|
138
136
|
parameters := functionalIsProgrammer_parameterNodes(props.Declaration)
|
|
139
137
|
functions := make([]*shimast.Node, 0, len(parameters))
|
|
140
138
|
statements := []*shimast.Node{}
|
|
@@ -176,7 +174,7 @@ func (functionalIsParametersProgrammerNamespace) Decompose(props FunctionalIsPar
|
|
|
176
174
|
|
|
177
175
|
func functionalIsProgrammer_parameters(declaration *shimast.Node, emit ...*shimprinter.EmitContext) *shimast.ParameterList {
|
|
178
176
|
if declaration == nil || declaration.FunctionLikeData() == nil || declaration.FunctionLikeData().Parameters == nil {
|
|
179
|
-
return nativecontext.
|
|
177
|
+
return nativecontext.NodeFactoryOf(emit...).NewNodeList(nil)
|
|
180
178
|
}
|
|
181
179
|
return declaration.FunctionLikeData().Parameters
|
|
182
180
|
}
|
|
@@ -203,7 +201,7 @@ func functionalIsProgrammer_function(
|
|
|
203
201
|
returnType *shimast.Node,
|
|
204
202
|
body *shimast.Node,
|
|
205
203
|
) *shimast.Node {
|
|
206
|
-
f := nativecontext.
|
|
204
|
+
f := nativecontext.NodeFactoryOf(context.Emit)
|
|
207
205
|
return f.NewFunctionExpression(
|
|
208
206
|
functionalIsProgrammer_asyncModifiers(async, context.Emit),
|
|
209
207
|
nil,
|
|
@@ -217,7 +215,7 @@ func functionalIsProgrammer_function(
|
|
|
217
215
|
}
|
|
218
216
|
|
|
219
217
|
func functionalIsProgrammer_call(context nativecontext.ITypiaContext, expression *shimast.Node, declaration *shimast.Node) *shimast.Node {
|
|
220
|
-
f := nativecontext.
|
|
218
|
+
f := nativecontext.NodeFactoryOf(context.Emit)
|
|
221
219
|
return f.NewCallExpression(
|
|
222
220
|
nativefactories.IdentifierFactory.Access(context.Emit, f.NewIdentifier("Reflect"), "apply"),
|
|
223
221
|
nil,
|
|
@@ -232,7 +230,7 @@ func functionalIsProgrammer_call(context nativecontext.ITypiaContext, expression
|
|
|
232
230
|
}
|
|
233
231
|
|
|
234
232
|
func functionalIsProgrammer_parameterIdentifiers(declaration *shimast.Node, emit ...*shimprinter.EmitContext) []*shimast.Node {
|
|
235
|
-
f := nativecontext.
|
|
233
|
+
f := nativecontext.NodeFactoryOf(emit...)
|
|
236
234
|
parameters := functionalIsProgrammer_parameterNodes(declaration)
|
|
237
235
|
output := make([]*shimast.Node, 0, len(parameters))
|
|
238
236
|
for _, p := range parameters {
|
|
@@ -251,7 +249,7 @@ func functionalIsProgrammer_parameterIdentifiers(declaration *shimast.Node, emit
|
|
|
251
249
|
// functionalIsProgrammer_parameterName gives it: the wrapper validates and
|
|
252
250
|
// forwards the whole argument, and a pattern names no single value.
|
|
253
251
|
func functionalIsProgrammer_wrapperParameters(declaration *shimast.Node, emit ...*shimprinter.EmitContext) *shimast.ParameterList {
|
|
254
|
-
f := nativecontext.
|
|
252
|
+
f := nativecontext.NodeFactoryOf(emit...)
|
|
255
253
|
list := functionalIsProgrammer_parameters(declaration, emit...)
|
|
256
254
|
if list == nil {
|
|
257
255
|
return list
|
|
@@ -357,7 +355,7 @@ func functionalIsProgrammer_asyncModifiers(async bool, emit ...*shimprinter.Emit
|
|
|
357
355
|
if async == false {
|
|
358
356
|
return nil
|
|
359
357
|
}
|
|
360
|
-
f := nativecontext.
|
|
358
|
+
f := nativecontext.NodeFactoryOf(emit...)
|
|
361
359
|
return f.NewModifierList([]*shimast.Node{
|
|
362
360
|
f.NewModifier(shimast.KindAsyncKeyword),
|
|
363
361
|
})
|
|
@@ -96,7 +96,7 @@ type FunctionalIsReturnProgrammer_IDecomposeOutput struct {
|
|
|
96
96
|
}
|
|
97
97
|
|
|
98
98
|
func (functionalIsReturnProgrammerNamespace) Write(props FunctionalIsReturnProgrammer_IProps) *shimast.Node {
|
|
99
|
-
f := nativecontext.
|
|
99
|
+
f := nativecontext.NodeFactoryOf(props.Context.Emit)
|
|
100
100
|
result := FunctionalIsReturnProgrammer.Decompose(FunctionalIsReturnProgrammer_IDecomposeProps{
|
|
101
101
|
Context: props.Context,
|
|
102
102
|
Modulo: props.Modulo,
|
|
@@ -129,7 +129,7 @@ func (functionalIsReturnProgrammerNamespace) Write(props FunctionalIsReturnProgr
|
|
|
129
129
|
}
|
|
130
130
|
|
|
131
131
|
func (functionalIsReturnProgrammerNamespace) Decompose(props FunctionalIsReturnProgrammer_IDecomposeProps) FunctionalIsReturnProgrammer_IDecomposeOutput {
|
|
132
|
-
f := nativecontext.
|
|
132
|
+
f := nativecontext.NodeFactoryOf(props.Context.Emit)
|
|
133
133
|
output := functionalinternal.FunctionalGeneralProgrammer.GetReturnType(functionalinternal.FunctionalGeneralProgrammer_IProps{
|
|
134
134
|
Checker: props.Context.Checker,
|
|
135
135
|
Declaration: props.Declaration,
|
|
@@ -49,8 +49,6 @@ type FunctionalValidateFunctionProgrammer_IProps struct {
|
|
|
49
49
|
Expression *shimast.Node
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
var functionalValidateProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
|
|
53
|
-
|
|
54
52
|
func (functionalValidateFunctionProgrammerNamespace) Write(props FunctionalValidateFunctionProgrammer_IProps) *shimast.Node {
|
|
55
53
|
p := FunctionalValidateParametersProgrammer.Decompose(FunctionalValidateParametersProgrammer_IDecomposeProps{
|
|
56
54
|
Context: props.Context,
|
|
@@ -65,7 +63,7 @@ func (functionalValidateFunctionProgrammerNamespace) Write(props FunctionalValid
|
|
|
65
63
|
Expression: props.Expression,
|
|
66
64
|
Declaration: props.Declaration,
|
|
67
65
|
})
|
|
68
|
-
f := nativecontext.
|
|
66
|
+
f := nativecontext.NodeFactoryOf(props.Context.Emit)
|
|
69
67
|
statements := append([]*shimast.Node{}, p.Functions...)
|
|
70
68
|
statements = append(statements, r.Functions...)
|
|
71
69
|
body := append([]*shimast.Node{}, p.Statements...)
|
|
@@ -98,7 +96,7 @@ func (functionalValidateFunctionProgrammerNamespace) HookErrors(props struct {
|
|
|
98
96
|
Expression *shimast.Node
|
|
99
97
|
Replacer *shimast.Node
|
|
100
98
|
}) *shimast.Node {
|
|
101
|
-
f := nativecontext.
|
|
99
|
+
f := nativecontext.NodeFactoryOf(props.Context.Emit)
|
|
102
100
|
return f.NewCallExpression(
|
|
103
101
|
nativefactories.IdentifierFactory.Access(props.Context.Emit, props.Expression, "map"),
|
|
104
102
|
nil,
|
|
@@ -154,7 +152,7 @@ func (functionalValidateFunctionProgrammerNamespace) GetReturnTypeNode(props str
|
|
|
154
152
|
if typ == nil {
|
|
155
153
|
return nil
|
|
156
154
|
}
|
|
157
|
-
f := nativecontext.
|
|
155
|
+
f := nativecontext.NodeFactoryOf(props.Context.Emit)
|
|
158
156
|
if props.Async {
|
|
159
157
|
var inner *shimast.Node
|
|
160
158
|
if typ.Kind == shimast.KindTypeReference {
|
|
@@ -189,7 +187,7 @@ func functionalValidateProgrammer_import_type(context nativecontext.ITypiaContex
|
|
|
189
187
|
return importer.Type(props)
|
|
190
188
|
}
|
|
191
189
|
if str, ok := props.Name.(string); ok {
|
|
192
|
-
f := nativecontext.
|
|
190
|
+
f := nativecontext.NodeFactoryOf(context.Emit)
|
|
193
191
|
return f.NewTypeReferenceNode(f.NewIdentifier(str), f.NewNodeList(props.Arguments))
|
|
194
192
|
}
|
|
195
193
|
return props.Name.(*shimast.Node)
|
|
@@ -101,7 +101,7 @@ func (functionalValidateParametersProgrammerNamespace) Write(props FunctionalVal
|
|
|
101
101
|
Config: props.Config,
|
|
102
102
|
Declaration: props.Declaration,
|
|
103
103
|
})
|
|
104
|
-
f := nativecontext.
|
|
104
|
+
f := nativecontext.NodeFactoryOf(props.Context.Emit)
|
|
105
105
|
caller := functionalIsProgrammer_call(props.Context, props.Expression, props.Declaration)
|
|
106
106
|
data := caller
|
|
107
107
|
if output.Async {
|
|
@@ -138,7 +138,7 @@ func (functionalValidateParametersProgrammerNamespace) Write(props FunctionalVal
|
|
|
138
138
|
}
|
|
139
139
|
|
|
140
140
|
func (functionalValidateParametersProgrammerNamespace) Decompose(props FunctionalValidateParametersProgrammer_IDecomposeProps) FunctionalValidateParametersProgrammer_IDecomposeOutput {
|
|
141
|
-
f := nativecontext.
|
|
141
|
+
f := nativecontext.NodeFactoryOf(props.Context.Emit)
|
|
142
142
|
parameters := functionalIsProgrammer_parameterNodes(props.Declaration)
|
|
143
143
|
resultName := functionalIsProgrammer_escapeDuplicate(functionalIsProgrammer_parameterNames(props.Declaration), "paramErrorResults")
|
|
144
144
|
functions := make([]*shimast.Node, 0, len(parameters))
|
|
@@ -104,7 +104,7 @@ func (functionalValidateReturnProgrammerNamespace) Write(props FunctionalValidat
|
|
|
104
104
|
Expression: props.Expression,
|
|
105
105
|
Declaration: props.Declaration,
|
|
106
106
|
})
|
|
107
|
-
f := nativecontext.
|
|
107
|
+
f := nativecontext.NodeFactoryOf(props.Context.Emit)
|
|
108
108
|
statements := append([]*shimast.Node{}, result.Functions...)
|
|
109
109
|
statements = append(statements, f.NewReturnStatement(
|
|
110
110
|
functionalIsProgrammer_function(
|
|
@@ -130,7 +130,7 @@ func (functionalValidateReturnProgrammerNamespace) Write(props FunctionalValidat
|
|
|
130
130
|
}
|
|
131
131
|
|
|
132
132
|
func (functionalValidateReturnProgrammerNamespace) Decompose(props FunctionalValidateReturnProgrammer_IDecomposeProps) FunctionalValidateReturnProgrammer_IDecomposeOutput {
|
|
133
|
-
f := nativecontext.
|
|
133
|
+
f := nativecontext.NodeFactoryOf(props.Context.Emit)
|
|
134
134
|
output := functionalinternal.FunctionalGeneralProgrammer.GetReturnType(functionalinternal.FunctionalGeneralProgrammer_IProps{
|
|
135
135
|
Checker: props.Context.Checker,
|
|
136
136
|
Declaration: props.Declaration,
|
|
@@ -33,8 +33,6 @@ type ClassifyJoiner_ObjectProps struct {
|
|
|
33
33
|
Emit *shimprinter.EmitContext
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
var classifyJoiner_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
|
|
37
|
-
|
|
38
36
|
// Object reconstructs an object value for plain.classify.
|
|
39
37
|
//
|
|
40
38
|
// For an anonymous / interface (literal) shape there is no class to
|
|
@@ -67,7 +65,7 @@ func (classifyJoinerNamespace) Object(props ClassifyJoiner_ObjectProps) *shimast
|
|
|
67
65
|
Emit: props.Emit,
|
|
68
66
|
})
|
|
69
67
|
}
|
|
70
|
-
f := nativecontext.
|
|
68
|
+
f := nativecontext.NodeFactoryOf(props.Emit)
|
|
71
69
|
|
|
72
70
|
regular := []IExpressionEntry{}
|
|
73
71
|
dynamic := []IExpressionEntry{}
|
|
@@ -70,10 +70,8 @@ type CloneJoiner_ArrayProps struct {
|
|
|
70
70
|
Emit *shimprinter.EmitContext
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
-
var cloneJoiner_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
|
|
74
|
-
|
|
75
73
|
func (cloneJoinerNamespace) Object(props CloneJoiner_ObjectProps) *shimast.Node {
|
|
76
|
-
f := nativecontext.
|
|
74
|
+
f := nativecontext.NodeFactoryOf(props.Emit)
|
|
77
75
|
if len(props.Entries) == 0 {
|
|
78
76
|
return f.NewIdentifier("{}")
|
|
79
77
|
}
|
|
@@ -192,7 +190,7 @@ func cloneJoiner_optional_condition(entry IExpressionEntry, input *shimast.Expre
|
|
|
192
190
|
if key == nil {
|
|
193
191
|
return nativefactories.ExpressionFactory.IsRequired(entry.Input, emit...)
|
|
194
192
|
}
|
|
195
|
-
f := nativecontext.
|
|
193
|
+
f := nativecontext.NodeFactoryOf(emit...)
|
|
196
194
|
return f.NewBinaryExpression(
|
|
197
195
|
nil,
|
|
198
196
|
nativefactories.ExpressionFactory.IsRequired(entry.Input, emit...),
|
|
@@ -209,7 +207,7 @@ func cloneJoiner_optional_condition(entry IExpressionEntry, input *shimast.Expre
|
|
|
209
207
|
}
|
|
210
208
|
|
|
211
209
|
func (cloneJoinerNamespace) Tuple(props CloneJoiner_TupleProps) *shimast.Node {
|
|
212
|
-
f := nativecontext.
|
|
210
|
+
f := nativecontext.NodeFactoryOf(props.Emit)
|
|
213
211
|
elements := make([]*shimast.Node, 0, len(props.Elements)+1)
|
|
214
212
|
for _, elem := range props.Elements {
|
|
215
213
|
elements = append(elements, elem)
|
|
@@ -233,7 +231,7 @@ func (cloneJoinerNamespace) Tuple(props CloneJoiner_TupleProps) *shimast.Node {
|
|
|
233
231
|
// for `[string, number?]` stays `["a"]` (length 1) and round-trips under
|
|
234
232
|
// `compare.equals`, while a present optional keeps its value.
|
|
235
233
|
func (cloneJoinerNamespace) OptionalTupleElement(props CloneJoiner_OptionalElementProps) *shimast.Node {
|
|
236
|
-
f := nativecontext.
|
|
234
|
+
f := nativecontext.NodeFactoryOf(props.Emit)
|
|
237
235
|
condition := f.NewBinaryExpression(
|
|
238
236
|
nil,
|
|
239
237
|
nativefactories.ExpressionFactory.Number(props.Index, props.Emit),
|
|
@@ -252,9 +250,9 @@ func (cloneJoinerNamespace) OptionalTupleElement(props CloneJoiner_OptionalEleme
|
|
|
252
250
|
}
|
|
253
251
|
|
|
254
252
|
func (cloneJoinerNamespace) Array(props CloneJoiner_ArrayProps) *shimast.Node {
|
|
255
|
-
f := nativecontext.
|
|
253
|
+
f := nativecontext.NodeFactoryOf(props.Emit)
|
|
256
254
|
return f.NewCallExpression(
|
|
257
|
-
nativefactories.IdentifierFactory.Access(
|
|
255
|
+
nativefactories.IdentifierFactory.Access(props.Emit, props.Input, "map"),
|
|
258
256
|
nil,
|
|
259
257
|
nil,
|
|
260
258
|
f.NewNodeList([]*shimast.Node{props.Arrow}),
|
|
@@ -263,18 +261,14 @@ func (cloneJoinerNamespace) Array(props CloneJoiner_ArrayProps) *shimast.Node {
|
|
|
263
261
|
}
|
|
264
262
|
|
|
265
263
|
func cloneJoiner_regular_skip(regular []IExpressionEntry, emit ...*shimprinter.EmitContext) *shimast.Node {
|
|
266
|
-
f := nativecontext.
|
|
264
|
+
f := nativecontext.NodeFactoryOf(emit...)
|
|
267
265
|
elements := make([]*shimast.Node, 0, len(regular))
|
|
268
266
|
for _, entry := range regular {
|
|
269
267
|
elements = append(elements, f.NewStringLiteral(*entry.Key.GetSoleLiteral(), shimast.TokenFlagsNone))
|
|
270
268
|
}
|
|
271
269
|
return f.NewIfStatement(
|
|
272
270
|
f.NewCallExpression(
|
|
273
|
-
|
|
274
|
-
nil,
|
|
275
|
-
f.NewArrayLiteralExpression(f.NewNodeList(elements), false),
|
|
276
|
-
"some",
|
|
277
|
-
),
|
|
271
|
+
f.NewPropertyAccessExpression(f.NewArrayLiteralExpression(f.NewNodeList(elements), false), nil, f.NewIdentifier("some"), shimast.NodeFlagsNone),
|
|
278
272
|
nil,
|
|
279
273
|
nil,
|
|
280
274
|
f.NewNodeList([]*shimast.Node{
|
|
@@ -55,8 +55,6 @@ type functionProgrammer_union struct {
|
|
|
55
55
|
value *shimast.Node
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
var functionProgrammer_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
|
|
59
|
-
|
|
60
58
|
// NewFunctionProgrammer returns an empty FunctionProgrammer labeled with the
|
|
61
59
|
// typia method text and bound to an optional emit context.
|
|
62
60
|
//
|
|
@@ -247,7 +245,7 @@ func (p *FunctionProgrammer) EmplaceVariable(name string, value *shimast.Express
|
|
|
247
245
|
p.variableOrder_ = append(p.variableOrder_, name)
|
|
248
246
|
}
|
|
249
247
|
p.variables_[name] = value
|
|
250
|
-
return nativecontext.
|
|
248
|
+
return nativecontext.NodeFactoryOf(p.emit_).NewIdentifier(name)
|
|
251
249
|
}
|
|
252
250
|
|
|
253
251
|
// EmplaceVariableByKey returns an identifier for the variable registered under
|
|
@@ -260,7 +258,7 @@ func (p *FunctionProgrammer) EmplaceVariable(name string, value *shimast.Express
|
|
|
260
258
|
func (p *FunctionProgrammer) EmplaceVariableByKey(prefix string, key string, factory func(name string) *shimast.Expression) *shimast.Node {
|
|
261
259
|
compound := prefix + "::" + key
|
|
262
260
|
if name, ok := p.variableKeys_[compound]; ok {
|
|
263
|
-
return nativecontext.
|
|
261
|
+
return nativecontext.NodeFactoryOf(p.emit_).NewIdentifier(name)
|
|
264
262
|
}
|
|
265
263
|
name := p.reserveGeneratedName(prefix)
|
|
266
264
|
p.variableKeys_[compound] = name
|
|
@@ -268,7 +266,7 @@ func (p *FunctionProgrammer) EmplaceVariableByKey(prefix string, key string, fac
|
|
|
268
266
|
p.variableOrder_ = append(p.variableOrder_, name)
|
|
269
267
|
}
|
|
270
268
|
p.variables_[name] = factory(name)
|
|
271
|
-
return nativecontext.
|
|
269
|
+
return nativecontext.NodeFactoryOf(p.emit_).NewIdentifier(name)
|
|
272
270
|
}
|
|
273
271
|
|
|
274
272
|
func (p *FunctionProgrammer) reserveGeneratedName(prefix string) string {
|
|
@@ -57,10 +57,8 @@ type NotationJoiner_ArrayProps struct {
|
|
|
57
57
|
Emit *shimprinter.EmitContext
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
-
var notationJoiner_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
|
|
61
|
-
|
|
62
60
|
func (notationJoinerNamespace) Object(props NotationJoiner_ObjectProps) *shimast.Node {
|
|
63
|
-
f := nativecontext.
|
|
61
|
+
f := nativecontext.NodeFactoryOf(props.Emit)
|
|
64
62
|
if len(props.Entries) == 0 {
|
|
65
63
|
return f.NewIdentifier("{}")
|
|
66
64
|
}
|
|
@@ -215,7 +213,7 @@ func (notationJoinerNamespace) Object(props NotationJoiner_ObjectProps) *shimast
|
|
|
215
213
|
}
|
|
216
214
|
|
|
217
215
|
func (notationJoinerNamespace) Tuple(props NotationJoiner_TupleProps) *shimast.Node {
|
|
218
|
-
f := nativecontext.
|
|
216
|
+
f := nativecontext.NodeFactoryOf(props.Emit)
|
|
219
217
|
elements := make([]*shimast.Node, 0, len(props.Elements)+1)
|
|
220
218
|
for _, elem := range props.Elements {
|
|
221
219
|
elements = append(elements, elem)
|
|
@@ -233,9 +231,9 @@ func (notationJoinerNamespace) Tuple(props NotationJoiner_TupleProps) *shimast.N
|
|
|
233
231
|
}
|
|
234
232
|
|
|
235
233
|
func (notationJoinerNamespace) Array(props NotationJoiner_ArrayProps) *shimast.Node {
|
|
236
|
-
f := nativecontext.
|
|
234
|
+
f := nativecontext.NodeFactoryOf(props.Emit)
|
|
237
235
|
return f.NewCallExpression(
|
|
238
|
-
nativefactories.IdentifierFactory.Access(
|
|
236
|
+
nativefactories.IdentifierFactory.Access(props.Emit, props.Input, "map"),
|
|
239
237
|
nil,
|
|
240
238
|
nil,
|
|
241
239
|
f.NewNodeList([]*shimast.Node{props.Arrow}),
|
|
@@ -244,18 +242,14 @@ func (notationJoinerNamespace) Array(props NotationJoiner_ArrayProps) *shimast.N
|
|
|
244
242
|
}
|
|
245
243
|
|
|
246
244
|
func notationJoiner_regular_skip(regular []IExpressionEntry, emit ...*shimprinter.EmitContext) *shimast.Node {
|
|
247
|
-
f := nativecontext.
|
|
245
|
+
f := nativecontext.NodeFactoryOf(emit...)
|
|
248
246
|
elements := make([]*shimast.Node, 0, len(regular))
|
|
249
247
|
for _, entry := range regular {
|
|
250
248
|
elements = append(elements, f.NewStringLiteral(*entry.Key.GetSoleLiteral(), shimast.TokenFlagsNone))
|
|
251
249
|
}
|
|
252
250
|
return f.NewIfStatement(
|
|
253
251
|
f.NewCallExpression(
|
|
254
|
-
|
|
255
|
-
nil,
|
|
256
|
-
f.NewArrayLiteralExpression(f.NewNodeList(elements), false),
|
|
257
|
-
"some",
|
|
258
|
-
),
|
|
252
|
+
f.NewPropertyAccessExpression(f.NewArrayLiteralExpression(f.NewNodeList(elements), false), nil, f.NewIdentifier("some"), shimast.NodeFlagsNone),
|
|
259
253
|
nil,
|
|
260
254
|
nil,
|
|
261
255
|
f.NewNodeList([]*shimast.Node{
|
|
@@ -52,10 +52,8 @@ type PruneJoiner_TupleProps struct {
|
|
|
52
52
|
Emit *shimprinter.EmitContext
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
var pruneJoiner_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
|
|
56
|
-
|
|
57
55
|
func (pruneJoinerNamespace) Object(props PruneJoiner_ObjectProps) *shimast.Node {
|
|
58
|
-
f := nativecontext.
|
|
56
|
+
f := nativecontext.NodeFactoryOf(props.Emit)
|
|
59
57
|
regular := []IExpressionEntry{}
|
|
60
58
|
dynamic := []IExpressionEntry{}
|
|
61
59
|
for _, entry := range props.Entries {
|
|
@@ -88,9 +86,9 @@ func (pruneJoinerNamespace) Object(props PruneJoiner_ObjectProps) *shimast.Node
|
|
|
88
86
|
}
|
|
89
87
|
|
|
90
88
|
func (pruneJoinerNamespace) Array(props PruneJoiner_ArrayProps) *shimast.Node {
|
|
91
|
-
f := nativecontext.
|
|
89
|
+
f := nativecontext.NodeFactoryOf(props.Emit)
|
|
92
90
|
return f.NewCallExpression(
|
|
93
|
-
nativefactories.IdentifierFactory.Access(
|
|
91
|
+
nativefactories.IdentifierFactory.Access(props.Emit, props.Input, "forEach"),
|
|
94
92
|
nil,
|
|
95
93
|
nil,
|
|
96
94
|
f.NewNodeList([]*shimast.Node{props.Arrow}),
|
|
@@ -99,7 +97,7 @@ func (pruneJoinerNamespace) Array(props PruneJoiner_ArrayProps) *shimast.Node {
|
|
|
99
97
|
}
|
|
100
98
|
|
|
101
99
|
func (pruneJoinerNamespace) Tuple(props PruneJoiner_TupleProps) *shimast.Node {
|
|
102
|
-
f := nativecontext.
|
|
100
|
+
f := nativecontext.NodeFactoryOf(props.Emit)
|
|
103
101
|
entire := make([]*shimast.Node, 0, len(props.Elements)+1)
|
|
104
102
|
for _, elem := range props.Elements {
|
|
105
103
|
entire = append(entire, elem)
|
|
@@ -118,7 +116,7 @@ func (pruneJoinerNamespace) Tuple(props PruneJoiner_TupleProps) *shimast.Node {
|
|
|
118
116
|
}
|
|
119
117
|
|
|
120
118
|
func pruneJoiner_statements(node *shimast.Node, emit ...*shimprinter.EmitContext) []*shimast.Node {
|
|
121
|
-
f := nativecontext.
|
|
119
|
+
f := nativecontext.NodeFactoryOf(emit...)
|
|
122
120
|
if node != nil && node.Kind == shimast.KindBlock {
|
|
123
121
|
return append([]*shimast.Node{}, node.Statements()...)
|
|
124
122
|
}
|
|
@@ -133,7 +131,7 @@ type pruneJoiner_iterate_dynamic_propertiesProps struct {
|
|
|
133
131
|
}
|
|
134
132
|
|
|
135
133
|
func pruneJoiner_iterate_dynamic_properties(props pruneJoiner_iterate_dynamic_propertiesProps) *shimast.Node {
|
|
136
|
-
f := nativecontext.
|
|
134
|
+
f := nativecontext.NodeFactoryOf(props.Emit)
|
|
137
135
|
statements := []*shimast.Node{
|
|
138
136
|
f.NewIfStatement(
|
|
139
137
|
f.NewBinaryExpression(
|
|
@@ -190,7 +188,7 @@ func pruneJoiner_iterate_dynamic_properties(props pruneJoiner_iterate_dynamic_pr
|
|
|
190
188
|
}
|
|
191
189
|
return f.NewCallExpression(
|
|
192
190
|
nativefactories.IdentifierFactory.Access(
|
|
193
|
-
|
|
191
|
+
props.Emit,
|
|
194
192
|
f.NewCallExpression(
|
|
195
193
|
f.NewIdentifier("Object.entries"),
|
|
196
194
|
nil,
|
|
@@ -220,7 +218,7 @@ func pruneJoiner_iterate_dynamic_properties(props pruneJoiner_iterate_dynamic_pr
|
|
|
220
218
|
}
|
|
221
219
|
|
|
222
220
|
func pruneJoiner_binding_pattern(emit ...*shimprinter.EmitContext) *shimast.Node {
|
|
223
|
-
f := nativecontext.
|
|
221
|
+
f := nativecontext.NodeFactoryOf(emit...)
|
|
224
222
|
return f.NewBindingPattern(
|
|
225
223
|
shimast.KindArrayBindingPattern,
|
|
226
224
|
f.NewNodeList([]*shimast.Node{
|
|
@@ -231,7 +229,7 @@ func pruneJoiner_binding_pattern(emit ...*shimprinter.EmitContext) *shimast.Node
|
|
|
231
229
|
}
|
|
232
230
|
|
|
233
231
|
func pruneJoiner_prune_object_properties(object *nativemetadata.MetadataObjectType, emit ...*shimprinter.EmitContext) *shimast.Node {
|
|
234
|
-
f := nativecontext.
|
|
232
|
+
f := nativecontext.NodeFactoryOf(emit...)
|
|
235
233
|
input := f.NewIdentifier("input")
|
|
236
234
|
key := f.NewIdentifier("key")
|
|
237
235
|
conditions := []*shimast.Node{}
|
|
@@ -296,7 +294,7 @@ func pruneJoiner_prune_object_properties(object *nativemetadata.MetadataObjectTy
|
|
|
296
294
|
}
|
|
297
295
|
|
|
298
296
|
func pruneJoiner_reduce(expressions []*shimast.Node, operator shimast.Kind, emit ...*shimprinter.EmitContext) *shimast.Node {
|
|
299
|
-
f := nativecontext.
|
|
297
|
+
f := nativecontext.NodeFactoryOf(emit...)
|
|
300
298
|
output := expressions[0]
|
|
301
299
|
for _, next := range expressions[1:] {
|
|
302
300
|
output = f.NewBinaryExpression(
|
|
@@ -113,10 +113,8 @@ type randomJoiner_DynamicPropertyProps struct {
|
|
|
113
113
|
Emit *shimprinter.EmitContext
|
|
114
114
|
}
|
|
115
115
|
|
|
116
|
-
var randomJoiner_factory = shimast.NewNodeFactory(shimast.NodeFactoryHooks{})
|
|
117
|
-
|
|
118
116
|
func (randomJoinerNamespace) Array(props RandomJoiner_ArrayProps) *shimast.Node {
|
|
119
|
-
f := nativecontext.
|
|
117
|
+
f := nativecontext.NodeFactoryOf(props.Emit)
|
|
120
118
|
properties := []*shimast.Node{}
|
|
121
119
|
if props.Schema != nil {
|
|
122
120
|
keys := make([]string, 0, len(props.Schema))
|
|
@@ -728,7 +726,7 @@ func randomJoiner_is_recursive_metadata(
|
|
|
728
726
|
}
|
|
729
727
|
|
|
730
728
|
func (randomJoinerNamespace) Tuple(props RandomJoiner_TupleProps) *shimast.Node {
|
|
731
|
-
f := nativecontext.
|
|
729
|
+
f := nativecontext.NodeFactoryOf(props.Emit)
|
|
732
730
|
elements := make([]*shimast.Node, 0, len(props.Elements))
|
|
733
731
|
for _, elem := range props.Elements {
|
|
734
732
|
if elem != nil && elem.Rest != nil {
|
|
@@ -763,7 +761,7 @@ func (randomJoinerNamespace) Tuple(props RandomJoiner_TupleProps) *shimast.Node
|
|
|
763
761
|
}
|
|
764
762
|
|
|
765
763
|
func (randomJoinerNamespace) Object(props RandomJoiner_ObjectProps) *shimast.Node {
|
|
766
|
-
f := nativecontext.
|
|
764
|
+
f := nativecontext.NodeFactoryOf(props.Emit)
|
|
767
765
|
if len(props.Object.Properties) == 0 {
|
|
768
766
|
return nativefactories.LiteralFactory.Write(map[string]any{}, props.Emit)
|
|
769
767
|
}
|
|
@@ -822,7 +820,7 @@ func (randomJoinerNamespace) Object(props RandomJoiner_ObjectProps) *shimast.Nod
|
|
|
822
820
|
}
|
|
823
821
|
|
|
824
822
|
func randomJoiner_dynamicProperty(props randomJoiner_DynamicPropertyProps) *shimast.Node {
|
|
825
|
-
f := nativecontext.
|
|
823
|
+
f := nativecontext.NodeFactoryOf(props.Emit)
|
|
826
824
|
tuple := nativemetadata.MetadataTuple_create(nativemetadata.MetadataTuple{
|
|
827
825
|
Type: nativemetadata.MetadataTupleType_create(nativemetadata.MetadataTupleType{
|
|
828
826
|
Name: fmt.Sprintf("[%s, %s]", props.Property.Key.GetName(), props.Property.Value.GetName()),
|
|
@@ -848,7 +846,7 @@ func randomJoiner_dynamicProperty(props randomJoiner_DynamicPropertyProps) *shim
|
|
|
848
846
|
metadata := nativemetadata.MetadataSchema_initialize()
|
|
849
847
|
metadata.Arrays = []*nativemetadata.MetadataArray{array}
|
|
850
848
|
return f.NewCallExpression(
|
|
851
|
-
nativefactories.IdentifierFactory.Access(
|
|
849
|
+
nativefactories.IdentifierFactory.Access(props.Emit, f.NewIdentifier("Object"), "fromEntries"),
|
|
852
850
|
nil,
|
|
853
851
|
nil,
|
|
854
852
|
f.NewNodeList([]*shimast.Node{
|