@typespec/emitter-framework 0.11.0-dev.0 → 0.11.0-dev.10
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/dist/src/core/components/index.d.ts +2 -0
- package/dist/src/core/components/index.d.ts.map +1 -1
- package/dist/src/core/components/index.js +4 -1
- package/dist/src/core/components/index.js.map +1 -0
- package/dist/src/core/components/output.js +2 -1
- package/dist/src/core/components/output.js.map +1 -0
- package/dist/src/core/components/overrides/component-overrides.d.ts +64 -0
- package/dist/src/core/components/overrides/component-overrides.d.ts.map +1 -0
- package/dist/src/core/components/overrides/component-overrides.js +41 -0
- package/dist/src/core/components/overrides/component-overrides.js.map +1 -0
- package/dist/src/core/components/overrides/config.d.ts +28 -0
- package/dist/src/core/components/overrides/config.d.ts.map +1 -0
- package/dist/src/core/components/overrides/config.js +55 -0
- package/dist/src/core/components/overrides/config.js.map +1 -0
- package/dist/src/core/components/overrides/context.d.ts +11 -0
- package/dist/src/core/components/overrides/context.d.ts.map +1 -0
- package/dist/src/core/components/overrides/context.js +9 -0
- package/dist/src/core/components/overrides/context.js.map +1 -0
- package/dist/src/core/context/index.js +2 -1
- package/dist/src/core/context/index.js.map +1 -0
- package/dist/src/core/context/name-policy-context.js +2 -1
- package/dist/src/core/context/name-policy-context.js.map +1 -0
- package/dist/src/core/context/tsp-context.js +2 -1
- package/dist/src/core/context/tsp-context.js.map +1 -0
- package/dist/src/core/index.js +2 -1
- package/dist/src/core/index.js.map +1 -0
- package/dist/src/core/transport-name-policy.js +2 -1
- package/dist/src/core/transport-name-policy.js.map +1 -0
- package/dist/src/core/write-output.d.ts.map +1 -1
- package/dist/src/core/write-output.js +4 -3
- package/dist/src/core/write-output.js.map +1 -0
- package/dist/src/csharp/components/class/declaration.d.ts +1 -1
- package/dist/src/csharp/components/class/declaration.d.ts.map +1 -1
- package/dist/src/csharp/components/class/declaration.js +14 -5
- package/dist/src/csharp/components/class/declaration.js.map +1 -0
- package/dist/src/csharp/components/class/declaration.test.js +125 -92
- package/dist/src/csharp/components/class/declaration.test.js.map +1 -0
- package/dist/src/csharp/components/enum/declaration.js +2 -1
- package/dist/src/csharp/components/enum/declaration.js.map +1 -0
- package/dist/src/csharp/components/enum/declaration.test.js +52 -88
- package/dist/src/csharp/components/enum/declaration.test.js.map +1 -0
- package/dist/src/csharp/components/index.js +2 -1
- package/dist/src/csharp/components/index.js.map +1 -0
- package/dist/src/csharp/components/property/property.d.ts.map +1 -1
- package/dist/src/csharp/components/property/property.js +40 -14
- package/dist/src/csharp/components/property/property.js.map +1 -0
- package/dist/src/csharp/components/property/property.test.js +129 -29
- package/dist/src/csharp/components/property/property.test.js.map +1 -0
- package/dist/src/csharp/components/type-expression.d.ts.map +1 -1
- package/dist/src/csharp/components/type-expression.js +34 -6
- package/dist/src/csharp/components/type-expression.js.map +1 -0
- package/dist/src/csharp/components/type-expression.test.js +87 -54
- package/dist/src/csharp/components/type-expression.test.js.map +1 -0
- package/dist/src/csharp/components/utils/doc-comments.js +2 -1
- package/dist/src/csharp/components/utils/doc-comments.js.map +1 -0
- package/dist/src/csharp/components/utils/nullable-util.d.ts +4 -0
- package/dist/src/csharp/components/utils/nullable-util.d.ts.map +1 -0
- package/dist/src/csharp/components/utils/nullable-util.js +27 -0
- package/dist/src/csharp/components/utils/nullable-util.js.map +1 -0
- package/dist/src/csharp/components/utils/refkey.js +2 -1
- package/dist/src/csharp/components/utils/refkey.js.map +1 -0
- package/dist/src/csharp/index.js +2 -1
- package/dist/src/csharp/index.js.map +1 -0
- package/dist/src/lib.js +2 -1
- package/dist/src/lib.js.map +1 -0
- package/dist/src/testing/index.js +2 -1
- package/dist/src/testing/index.js.map +1 -0
- package/dist/src/testing/scenario-test/code-block-expectation.js +2 -1
- package/dist/src/testing/scenario-test/code-block-expectation.js.map +1 -0
- package/dist/src/testing/scenario-test/code-block-expectation.test.js +2 -1
- package/dist/src/testing/scenario-test/code-block-expectation.test.js.map +1 -0
- package/dist/src/testing/scenario-test/harness.js +8 -2
- package/dist/src/testing/scenario-test/harness.js.map +1 -0
- package/dist/src/testing/scenario-test/index.js +2 -1
- package/dist/src/testing/scenario-test/index.js.map +1 -0
- package/dist/src/testing/scenario-test/snippet-extractor.js +2 -1
- package/dist/src/testing/scenario-test/snippet-extractor.js.map +1 -0
- package/dist/src/typescript/components/array-expression.js +2 -1
- package/dist/src/typescript/components/array-expression.js.map +1 -0
- package/dist/src/typescript/components/arrow-function.js +2 -1
- package/dist/src/typescript/components/arrow-function.js.map +1 -0
- package/dist/src/typescript/components/class-method.js +2 -1
- package/dist/src/typescript/components/class-method.js.map +1 -0
- package/dist/src/typescript/components/enum-declaration.js +2 -1
- package/dist/src/typescript/components/enum-declaration.js.map +1 -0
- package/dist/src/typescript/components/function-declaration.js +2 -1
- package/dist/src/typescript/components/function-declaration.js.map +1 -0
- package/dist/src/typescript/components/function-expression.js +2 -1
- package/dist/src/typescript/components/function-expression.js.map +1 -0
- package/dist/src/typescript/components/function-type.js +2 -1
- package/dist/src/typescript/components/function-type.js.map +1 -0
- package/dist/src/typescript/components/index.js +2 -1
- package/dist/src/typescript/components/index.js.map +1 -0
- package/dist/src/typescript/components/interface-declaration.js +2 -1
- package/dist/src/typescript/components/interface-declaration.js.map +1 -0
- package/dist/src/typescript/components/interface-member.d.ts.map +1 -1
- package/dist/src/typescript/components/interface-member.js +13 -20
- package/dist/src/typescript/components/interface-member.js.map +1 -0
- package/dist/src/typescript/components/interface-method.js +2 -1
- package/dist/src/typescript/components/interface-method.js.map +1 -0
- package/dist/src/typescript/components/record-expression.js +2 -1
- package/dist/src/typescript/components/record-expression.js.map +1 -0
- package/dist/src/typescript/components/static-serializers.js +2 -1
- package/dist/src/typescript/components/static-serializers.js.map +1 -0
- package/dist/src/typescript/components/type-alias-declaration.js +2 -1
- package/dist/src/typescript/components/type-alias-declaration.js.map +1 -0
- package/dist/src/typescript/components/type-declaration.js +2 -1
- package/dist/src/typescript/components/type-declaration.js.map +1 -0
- package/dist/src/typescript/components/type-expression.d.ts +0 -1
- package/dist/src/typescript/components/type-expression.d.ts.map +1 -1
- package/dist/src/typescript/components/type-expression.js +13 -12
- package/dist/src/typescript/components/type-expression.js.map +1 -0
- package/dist/src/typescript/components/type-transform.d.ts.map +1 -1
- package/dist/src/typescript/components/type-transform.js +5 -4
- package/dist/src/typescript/components/type-transform.js.map +1 -0
- package/dist/src/typescript/components/union/declaration.js +2 -1
- package/dist/src/typescript/components/union/declaration.js.map +1 -0
- package/dist/src/typescript/components/union/declaration.test.js +2 -1
- package/dist/src/typescript/components/union/declaration.test.js.map +1 -0
- package/dist/src/typescript/components/union/expression.js +2 -1
- package/dist/src/typescript/components/union/expression.js.map +1 -0
- package/dist/src/typescript/components/union/expression.test.js +2 -1
- package/dist/src/typescript/components/union/expression.test.js.map +1 -0
- package/dist/src/typescript/components/value-expression.js +2 -1
- package/dist/src/typescript/components/value-expression.js.map +1 -0
- package/dist/src/typescript/index.js +2 -1
- package/dist/src/typescript/index.js.map +1 -0
- package/dist/src/typescript/lib.js +2 -1
- package/dist/src/typescript/lib.js.map +1 -0
- package/dist/src/typescript/utils/index.js +2 -1
- package/dist/src/typescript/utils/index.js.map +1 -0
- package/dist/src/typescript/utils/operation.js +2 -1
- package/dist/src/typescript/utils/operation.js.map +1 -0
- package/dist/src/typescript/utils/refkey.js +2 -1
- package/dist/src/typescript/utils/refkey.js.map +1 -0
- package/dist/test/test-host.js +2 -1
- package/dist/test/test-host.js.map +1 -0
- package/dist/test/testing/snippet-extractor-csharp.test.js +2 -1
- package/dist/test/testing/snippet-extractor-csharp.test.js.map +1 -0
- package/dist/test/testing/snippet-extractor-java.test.js +2 -1
- package/dist/test/testing/snippet-extractor-java.test.js.map +1 -0
- package/dist/test/testing/snippet-extractor-python.test.js +2 -1
- package/dist/test/testing/snippet-extractor-python.test.js.map +1 -0
- package/dist/test/testing/snippet-extractor-typescript.test.js +2 -1
- package/dist/test/testing/snippet-extractor-typescript.test.js.map +1 -0
- package/dist/test/typescript/components/arrow-function.test.js +18 -22
- package/dist/test/typescript/components/arrow-function.test.js.map +1 -0
- package/dist/test/typescript/components/component-override.test.d.ts +2 -0
- package/dist/test/typescript/components/component-override.test.d.ts.map +1 -0
- package/dist/test/typescript/components/component-override.test.js +78 -0
- package/dist/test/typescript/components/component-override.test.js.map +1 -0
- package/dist/test/typescript/components/enum-declaration.test.js +2 -1
- package/dist/test/typescript/components/enum-declaration.test.js.map +1 -0
- package/dist/test/typescript/components/function-declaration.test.js +3 -2
- package/dist/test/typescript/components/function-declaration.test.js.map +1 -0
- package/dist/test/typescript/components/function-expression.test.js +18 -22
- package/dist/test/typescript/components/function-expression.test.js.map +1 -0
- package/dist/test/typescript/components/function-type.test.js +18 -22
- package/dist/test/typescript/components/function-type.test.js.map +1 -0
- package/dist/test/typescript/components/interface-declaration.test.js +3 -2
- package/dist/test/typescript/components/interface-declaration.test.js.map +1 -0
- package/dist/test/typescript/components/interface-method.test.js +37 -45
- package/dist/test/typescript/components/interface-method.test.js.map +1 -0
- package/dist/test/typescript/components/member-expression.test.js +2 -1
- package/dist/test/typescript/components/member-expression.test.js.map +1 -0
- package/dist/test/typescript/components/type-alias-declaration.test.js +8 -5
- package/dist/test/typescript/components/type-alias-declaration.test.js.map +1 -0
- package/dist/test/typescript/components/type-transform.test.js +29 -27
- package/dist/test/typescript/components/type-transform.test.js.map +1 -0
- package/dist/test/typescript/components/value-expression.test.js +3 -2
- package/dist/test/typescript/components/value-expression.test.js.map +1 -0
- package/dist/test/typescript/utils.js +2 -1
- package/dist/test/typescript/utils.js.map +1 -0
- package/dist/test/utils.d.ts +1 -0
- package/dist/test/utils.d.ts.map +1 -1
- package/dist/test/utils.js +13 -3
- package/dist/test/utils.js.map +1 -0
- package/dist/test/vitest.setup.js +2 -1
- package/dist/test/vitest.setup.js.map +1 -0
- package/package.json +9 -13
- package/src/core/components/index.tsx +2 -0
- package/src/core/components/overrides/component-overrides.tsx +134 -0
- package/src/core/components/overrides/config.ts +85 -0
- package/src/core/components/overrides/context.ts +14 -0
- package/src/core/write-output.ts +2 -2
- package/src/csharp/components/class/declaration.test.tsx +114 -88
- package/src/csharp/components/class/declaration.tsx +13 -3
- package/src/csharp/components/enum/declaration.test.tsx +47 -78
- package/src/csharp/components/property/property.test.tsx +108 -25
- package/src/csharp/components/property/property.tsx +43 -11
- package/src/csharp/components/type-expression.test.tsx +84 -69
- package/src/csharp/components/type-expression.tsx +31 -5
- package/src/csharp/components/utils/nullable-util.ts +25 -0
- package/src/testing/scenario-test/harness.ts +6 -1
- package/src/typescript/components/interface-member.tsx +8 -14
- package/src/typescript/components/type-expression.tsx +7 -8
- package/src/typescript/components/type-transform.tsx +3 -7
- package/test/typescript/components/arrow-function.test.tsx +23 -42
- package/test/typescript/components/component-override.test.tsx +71 -0
- package/test/typescript/components/function-declaration.test.tsx +2 -1
- package/test/typescript/components/function-expression.test.tsx +23 -42
- package/test/typescript/components/function-type.test.tsx +22 -40
- package/test/typescript/components/interface-declaration.test.tsx +1 -1
- package/test/typescript/components/interface-method.test.tsx +50 -92
- package/test/typescript/components/type-alias-declaration.test.tsx +8 -6
- package/test/typescript/components/type-transform.test.tsx +37 -37
- package/test/typescript/components/value-expression.test.tsx +1 -1
- package/test/utils.ts +10 -3
- package/dist/test/typescript/test-host.d.ts +0 -16
- package/dist/test/typescript/test-host.d.ts.map +0 -1
- package/dist/test/typescript/test-host.js +0 -40
- package/test/typescript/test-host.ts +0 -49
|
@@ -1,18 +1,44 @@
|
|
|
1
1
|
import { memo as _$memo, createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
2
|
import * as cs from "@alloy-js/csharp";
|
|
3
3
|
import { Attribute } from "@alloy-js/csharp";
|
|
4
|
-
import { resolveEncodedName } from "@typespec/compiler";
|
|
4
|
+
import { getProperty, resolveEncodedName } from "@typespec/compiler";
|
|
5
5
|
import { useTsp } from "../../../core/index.js";
|
|
6
6
|
import { TypeExpression } from "../type-expression.js";
|
|
7
7
|
import { getDocComments } from "../utils/doc-comments.js";
|
|
8
|
+
import { getNullableUnionInnerType } from "../utils/nullable-util.js";
|
|
8
9
|
/**
|
|
9
10
|
* Create a C# property declaration from a TypeSpec property type.
|
|
10
11
|
*/
|
|
11
12
|
export function Property(props) {
|
|
12
|
-
const result = preprocessPropertyType(props.type
|
|
13
|
+
const result = preprocessPropertyType(props.type);
|
|
13
14
|
const {
|
|
14
15
|
$
|
|
15
16
|
} = useTsp();
|
|
17
|
+
let overrideType = "";
|
|
18
|
+
let isVirtual = false;
|
|
19
|
+
if (props.type.model) {
|
|
20
|
+
if (props.type.model.baseModel) {
|
|
21
|
+
const base = props.type.model.baseModel;
|
|
22
|
+
const baseProperty = getProperty(base, props.type.name);
|
|
23
|
+
if (baseProperty) {
|
|
24
|
+
const baseResult = preprocessPropertyType(baseProperty);
|
|
25
|
+
if (baseResult.nullable === result.nullable && baseResult.type === result.type) {
|
|
26
|
+
overrideType = "override";
|
|
27
|
+
} else {
|
|
28
|
+
overrideType = "new";
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
if (overrideType === "" && props.type.model.derivedModels && props.type.model.derivedModels.length > 0) {
|
|
33
|
+
isVirtual = props.type.model.derivedModels.some(derived => {
|
|
34
|
+
const derivedProperty = derived.properties.get(props.type.name);
|
|
35
|
+
if (derivedProperty) {
|
|
36
|
+
const derivedResult = preprocessPropertyType(derivedProperty);
|
|
37
|
+
return derivedResult.nullable === result.nullable && derivedResult.type === result.type;
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
}
|
|
16
42
|
return _$createComponent(cs.Property, {
|
|
17
43
|
get name() {
|
|
18
44
|
return props.type.name;
|
|
@@ -24,7 +50,10 @@ export function Property(props) {
|
|
|
24
50
|
}
|
|
25
51
|
});
|
|
26
52
|
},
|
|
53
|
+
override: overrideType === "override",
|
|
54
|
+
"new": overrideType === "new",
|
|
27
55
|
"public": true,
|
|
56
|
+
virtual: isVirtual,
|
|
28
57
|
get required() {
|
|
29
58
|
return !props.type.optional;
|
|
30
59
|
},
|
|
@@ -57,29 +86,26 @@ function JsonNameAttribute(props) {
|
|
|
57
86
|
}
|
|
58
87
|
});
|
|
59
88
|
}
|
|
60
|
-
function preprocessPropertyType(
|
|
61
|
-
const
|
|
62
|
-
$
|
|
63
|
-
} = useTsp();
|
|
89
|
+
function preprocessPropertyType(prop) {
|
|
90
|
+
const type = prop.type;
|
|
64
91
|
if (type.kind === "Union") {
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
const nullVariant = [...variants.values()].find(v => v.type !== $.intrinsic.null);
|
|
68
|
-
if (nonNullVariant && nullVariant && variants.size === 2) {
|
|
92
|
+
const innerType = getNullableUnionInnerType(type);
|
|
93
|
+
if (innerType) {
|
|
69
94
|
return {
|
|
70
|
-
type:
|
|
95
|
+
type: innerType,
|
|
71
96
|
nullable: true
|
|
72
97
|
};
|
|
73
98
|
} else {
|
|
74
99
|
return {
|
|
75
100
|
type,
|
|
76
|
-
nullable:
|
|
101
|
+
nullable: prop.optional
|
|
77
102
|
};
|
|
78
103
|
}
|
|
79
104
|
} else {
|
|
80
105
|
return {
|
|
81
106
|
type,
|
|
82
|
-
nullable:
|
|
107
|
+
nullable: prop.optional
|
|
83
108
|
};
|
|
84
109
|
}
|
|
85
|
-
}
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=property.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["cs","Attribute","getProperty","resolveEncodedName","useTsp","TypeExpression","getDocComments","getNullableUnionInnerType","Property","props","result","preprocessPropertyType","type","$","overrideType","isVirtual","model","baseModel","base","baseProperty","name","baseResult","nullable","derivedModels","length","some","derived","derivedProperty","properties","get","derivedResult","_$createComponent","override","virtual","required","optional","doc","attributes","_$memo","jsonAttributes","JsonNameAttribute","undefined","set","program","jsonName","args","JSON","stringify","prop","kind","innerType"],"sources":["../../../../../src/csharp/components/property/property.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
2
|
import { Tester } from "#test/test-host.js";
|
|
3
|
-
import {
|
|
3
|
+
import { List } from "@alloy-js/core";
|
|
4
|
+
import { ClassDeclaration, createCSharpNamePolicy, SourceFile } from "@alloy-js/csharp";
|
|
4
5
|
import { t } from "@typespec/compiler/testing";
|
|
5
6
|
import { beforeEach, describe, expect, it } from "vitest";
|
|
6
7
|
import { Output } from "../../../core/components/output.js";
|
|
@@ -17,18 +18,13 @@ function Wrapper(props) {
|
|
|
17
18
|
},
|
|
18
19
|
namePolicy: policy,
|
|
19
20
|
get children() {
|
|
20
|
-
return _$createComponent(
|
|
21
|
-
|
|
21
|
+
return _$createComponent(SourceFile, {
|
|
22
|
+
path: "test.cs",
|
|
22
23
|
get children() {
|
|
23
|
-
return _$createComponent(
|
|
24
|
-
|
|
24
|
+
return _$createComponent(ClassDeclaration, {
|
|
25
|
+
name: "Test",
|
|
25
26
|
get children() {
|
|
26
|
-
return
|
|
27
|
-
name: "Test",
|
|
28
|
-
get children() {
|
|
29
|
-
return props.children;
|
|
30
|
-
}
|
|
31
|
-
});
|
|
27
|
+
return props.children;
|
|
32
28
|
}
|
|
33
29
|
});
|
|
34
30
|
}
|
|
@@ -51,12 +47,51 @@ it("maps prop: string | null to nullable property", async () => {
|
|
|
51
47
|
});
|
|
52
48
|
}
|
|
53
49
|
})).toRenderTo(`
|
|
54
|
-
|
|
50
|
+
class Test
|
|
55
51
|
{
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
52
|
+
public required string? Prop1 { get; set; }
|
|
53
|
+
}
|
|
54
|
+
`);
|
|
55
|
+
});
|
|
56
|
+
it("maps optional properties to nullable properties", async () => {
|
|
57
|
+
const {
|
|
58
|
+
prop1
|
|
59
|
+
} = await tester.compile(t.code`
|
|
60
|
+
model TestModel {
|
|
61
|
+
${t.modelProperty("prop1")}?: string;
|
|
62
|
+
}
|
|
63
|
+
`);
|
|
64
|
+
expect(_$createComponent(Wrapper, {
|
|
65
|
+
get children() {
|
|
66
|
+
return _$createComponent(Property, {
|
|
67
|
+
type: prop1
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
})).toRenderTo(`
|
|
71
|
+
class Test
|
|
72
|
+
{
|
|
73
|
+
public string? Prop1 { get; set; }
|
|
74
|
+
}
|
|
75
|
+
`);
|
|
76
|
+
});
|
|
77
|
+
it("maps optional and nullable properties to nullable properties", async () => {
|
|
78
|
+
const {
|
|
79
|
+
prop1
|
|
80
|
+
} = await tester.compile(t.code`
|
|
81
|
+
model TestModel {
|
|
82
|
+
${t.modelProperty("prop1")}?: string | null;
|
|
83
|
+
}
|
|
84
|
+
`);
|
|
85
|
+
expect(_$createComponent(Wrapper, {
|
|
86
|
+
get children() {
|
|
87
|
+
return _$createComponent(Property, {
|
|
88
|
+
type: prop1
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
})).toRenderTo(`
|
|
92
|
+
class Test
|
|
93
|
+
{
|
|
94
|
+
public string? Prop1 { get; set; }
|
|
60
95
|
}
|
|
61
96
|
`);
|
|
62
97
|
});
|
|
@@ -77,13 +112,10 @@ describe("jsonAttributes", () => {
|
|
|
77
112
|
});
|
|
78
113
|
}
|
|
79
114
|
})).toRenderTo(`
|
|
80
|
-
|
|
115
|
+
class Test
|
|
81
116
|
{
|
|
82
|
-
|
|
83
|
-
{
|
|
84
|
-
[System.Text.Json.JsonPropertyName("prop1")]
|
|
85
|
-
public required string Prop1 { get; set; }
|
|
86
|
-
}
|
|
117
|
+
[System.Text.Json.JsonPropertyName("prop1")]
|
|
118
|
+
public required string Prop1 { get; set; }
|
|
87
119
|
}
|
|
88
120
|
`);
|
|
89
121
|
});
|
|
@@ -104,14 +136,82 @@ describe("jsonAttributes", () => {
|
|
|
104
136
|
});
|
|
105
137
|
}
|
|
106
138
|
})).toRenderTo(`
|
|
107
|
-
|
|
139
|
+
class Test
|
|
140
|
+
{
|
|
141
|
+
[System.Text.Json.JsonPropertyName("prop_1")]
|
|
142
|
+
public required string Prop1 { get; set; }
|
|
143
|
+
}
|
|
144
|
+
`);
|
|
145
|
+
});
|
|
146
|
+
it("inherit prop: override, new", async () => {
|
|
147
|
+
const r = await tester.compile(t.code`
|
|
148
|
+
model TestModel extends BaseModel {
|
|
149
|
+
${t.modelProperty("prop1")}: string;
|
|
150
|
+
${t.modelProperty("prop2")}: string | null;
|
|
151
|
+
}
|
|
152
|
+
model BaseModel {
|
|
153
|
+
prop1: string | null;
|
|
154
|
+
prop2: string | null;
|
|
155
|
+
}
|
|
156
|
+
`);
|
|
157
|
+
expect(_$createComponent(Wrapper, {
|
|
158
|
+
get children() {
|
|
159
|
+
return _$createComponent(List, {
|
|
160
|
+
get children() {
|
|
161
|
+
return [_$createComponent(Property, {
|
|
162
|
+
get type() {
|
|
163
|
+
return r.prop1;
|
|
164
|
+
}
|
|
165
|
+
}), _$createComponent(Property, {
|
|
166
|
+
get type() {
|
|
167
|
+
return r.prop2;
|
|
168
|
+
}
|
|
169
|
+
})];
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
})).toRenderTo(`
|
|
174
|
+
class Test
|
|
108
175
|
{
|
|
109
|
-
|
|
110
|
-
{
|
|
111
|
-
|
|
112
|
-
|
|
176
|
+
public new required string Prop1 { get; set; }
|
|
177
|
+
public override required string? Prop2 { get; set; }
|
|
178
|
+
}
|
|
179
|
+
`);
|
|
180
|
+
});
|
|
181
|
+
it("inherit prop: virtual", async () => {
|
|
182
|
+
const r = await tester.compile(t.code`
|
|
183
|
+
model TestModel extends BaseModel {
|
|
184
|
+
prop1: string;
|
|
185
|
+
prop2: string | null;
|
|
186
|
+
}
|
|
187
|
+
model BaseModel {
|
|
188
|
+
${t.modelProperty("prop1")}: string | null;
|
|
189
|
+
${t.modelProperty("prop2")}: string | null;
|
|
190
|
+
}
|
|
191
|
+
`);
|
|
192
|
+
expect(_$createComponent(Wrapper, {
|
|
193
|
+
get children() {
|
|
194
|
+
return _$createComponent(List, {
|
|
195
|
+
get children() {
|
|
196
|
+
return [_$createComponent(Property, {
|
|
197
|
+
get type() {
|
|
198
|
+
return r.prop1;
|
|
199
|
+
}
|
|
200
|
+
}), _$createComponent(Property, {
|
|
201
|
+
get type() {
|
|
202
|
+
return r.prop2;
|
|
203
|
+
}
|
|
204
|
+
})];
|
|
113
205
|
}
|
|
206
|
+
});
|
|
114
207
|
}
|
|
115
|
-
|
|
208
|
+
})).toRenderTo(`
|
|
209
|
+
class Test
|
|
210
|
+
{
|
|
211
|
+
public required string? Prop1 { get; set; }
|
|
212
|
+
public virtual required string? Prop2 { get; set; }
|
|
213
|
+
}
|
|
214
|
+
`);
|
|
116
215
|
});
|
|
117
|
-
});
|
|
216
|
+
});
|
|
217
|
+
//# sourceMappingURL=property.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Tester","List","ClassDeclaration","createCSharpNamePolicy","SourceFile","t","beforeEach","describe","expect","it","Output","Property","tester","createInstance","Wrapper","props","policy","_$createComponent","program","namePolicy","children","path","name","prop1","compile","code","modelProperty","type","toRenderTo","jsonAttributes","r","prop2"],"sources":["../../../../../src/csharp/components/property/property.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-expression.d.ts","sourceRoot":"","sources":["../../../../src/csharp/components/type-expression.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"type-expression.d.ts","sourceRoot":"","sources":["../../../../src/csharp/components/type-expression.tsx"],"names":[],"mappings":"AACA,OAAO,EAAQ,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,MAAM,EACX,KAAK,IAAI,EACV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAM1D,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,QAAQ,CAmCnE;AAED,QAAA,MAAM,yBAAyB,4BAqC7B,CAAC;AAEH,wBAAgB,4BAA4B,CAC1C,CAAC,EAAE,OAAO,EACV,IAAI,EAAE,MAAM,GAAG,aAAa,GAC3B,MAAM,GAAG,IAAI,CAoBf;AAyBD,OAAO,EAAE,yBAAyB,EAAE,CAAC"}
|
|
@@ -1,18 +1,36 @@
|
|
|
1
1
|
import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { Experimental_OverridableComponent } from "#core/index.js";
|
|
2
3
|
import { code } from "@alloy-js/core";
|
|
3
4
|
import { Reference } from "@alloy-js/csharp";
|
|
4
|
-
import { getTypeName } from "@typespec/compiler";
|
|
5
|
+
import { getTypeName, isVoidType } from "@typespec/compiler";
|
|
5
6
|
import { useTsp } from "../../core/index.js";
|
|
6
7
|
import { reportTypescriptDiagnostic } from "../../typescript/lib.js";
|
|
8
|
+
import { getNullableUnionInnerType } from "./utils/nullable-util.js";
|
|
7
9
|
import { efRefkey } from "./utils/refkey.js";
|
|
8
10
|
export function TypeExpression(props) {
|
|
11
|
+
if (props.type.kind === "Union") {
|
|
12
|
+
const nullabletype = getNullableUnionInnerType(props.type);
|
|
13
|
+
if (nullabletype) {
|
|
14
|
+
return code`${_$createComponent(TypeExpression, {
|
|
15
|
+
type: nullabletype
|
|
16
|
+
})}?`;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
9
19
|
const {
|
|
10
20
|
$
|
|
11
21
|
} = useTsp();
|
|
12
22
|
if (isDeclaration($, props.type)) {
|
|
13
|
-
return _$createComponent(
|
|
14
|
-
|
|
15
|
-
|
|
23
|
+
return _$createComponent(Experimental_OverridableComponent, {
|
|
24
|
+
reference: true,
|
|
25
|
+
get type() {
|
|
26
|
+
return props.type;
|
|
27
|
+
},
|
|
28
|
+
get children() {
|
|
29
|
+
return _$createComponent(Reference, {
|
|
30
|
+
get refkey() {
|
|
31
|
+
return efRefkey(props.type);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
16
34
|
}
|
|
17
35
|
});
|
|
18
36
|
}
|
|
@@ -30,6 +48,15 @@ export function TypeExpression(props) {
|
|
|
30
48
|
return props.type.indexer.value;
|
|
31
49
|
}
|
|
32
50
|
})}>`;
|
|
51
|
+
} else if ($.literal.isString(props.type)) {
|
|
52
|
+
// c# doesn't have literal types, so we map them to their corresponding C# types in general
|
|
53
|
+
return code`string`;
|
|
54
|
+
} else if ($.literal.isNumeric(props.type)) {
|
|
55
|
+
return Number.isInteger(props.type.value) ? code`int` : code`double`;
|
|
56
|
+
} else if ($.literal.isBoolean(props.type)) {
|
|
57
|
+
return code`bool`;
|
|
58
|
+
} else if (isVoidType(props.type)) {
|
|
59
|
+
return code`void`;
|
|
33
60
|
}
|
|
34
61
|
throw new Error(`Unsupported type for TypeExpression: ${props.type.kind} (${getTypeName(props.type)})`);
|
|
35
62
|
}
|
|
@@ -133,11 +160,12 @@ function isDeclaration($, type) {
|
|
|
133
160
|
if ($.array.is(type) || $.record.is(type)) {
|
|
134
161
|
return false;
|
|
135
162
|
}
|
|
136
|
-
return
|
|
163
|
+
return true;
|
|
137
164
|
case "Union":
|
|
138
165
|
return Boolean(type.name);
|
|
139
166
|
default:
|
|
140
167
|
return false;
|
|
141
168
|
}
|
|
142
169
|
}
|
|
143
|
-
export { intrinsicNameToCSharpType };
|
|
170
|
+
export { intrinsicNameToCSharpType };
|
|
171
|
+
//# sourceMappingURL=type-expression.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Experimental_OverridableComponent","code","Reference","getTypeName","isVoidType","useTsp","reportTypescriptDiagnostic","getNullableUnionInnerType","efRefkey","TypeExpression","props","type","kind","nullabletype","_$createComponent","$","isDeclaration","reference","children","refkey","scalar","is","getScalarIntrinsicExpression","array","indexer","value","record","literal","isString","isNumeric","Number","isInteger","isBoolean","Error","intrinsicNameToCSharpType","Map","intrinsicName","isUtcDateTime","extendsUtcDateTime","getStdBase","name","csType","get","program","target","Boolean"],"sources":["../../../../src/csharp/components/type-expression.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
import { createComponent as _$createComponent, createIntrinsic as _$createIntrinsic } from "@alloy-js/core/jsx-runtime";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { beforeEach, describe, it } from "vitest";
|
|
6
|
-
import { createEmitterFrameworkTestRunner } from "../../../test/typescript/test-host.js";
|
|
7
|
-
import { assertFileContents } from "../../../test/utils.js";
|
|
2
|
+
import { Tester } from "#test/test-host.js";
|
|
3
|
+
import { SourceFile } from "@alloy-js/csharp";
|
|
4
|
+
import { t } from "@typespec/compiler/testing";
|
|
5
|
+
import { beforeEach, describe, expect, it } from "vitest";
|
|
8
6
|
import { Output } from "../../core/index.js";
|
|
9
7
|
import { ClassDeclaration } from "./class/declaration.js";
|
|
10
8
|
import { TypeExpression } from "./type-expression.js";
|
|
11
9
|
let runner;
|
|
12
10
|
beforeEach(async () => {
|
|
13
|
-
runner = await
|
|
11
|
+
runner = await Tester.createInstance();
|
|
14
12
|
});
|
|
15
13
|
function Wrapper(props) {
|
|
16
14
|
return _$createComponent(Output, {
|
|
@@ -18,15 +16,10 @@ function Wrapper(props) {
|
|
|
18
16
|
return runner.program;
|
|
19
17
|
},
|
|
20
18
|
get children() {
|
|
21
|
-
return _$createComponent(
|
|
22
|
-
|
|
19
|
+
return _$createComponent(SourceFile, {
|
|
20
|
+
path: "test.ts",
|
|
23
21
|
get children() {
|
|
24
|
-
return
|
|
25
|
-
path: "test.ts",
|
|
26
|
-
get children() {
|
|
27
|
-
return props.children;
|
|
28
|
-
}
|
|
29
|
-
});
|
|
22
|
+
return props.children;
|
|
30
23
|
}
|
|
31
24
|
});
|
|
32
25
|
}
|
|
@@ -45,65 +38,53 @@ async function compileType(ref) {
|
|
|
45
38
|
describe("map scalar to c# built-in types", () => {
|
|
46
39
|
it.each([["string", "string"], ["int32", "int"], ["int64", "long"]])("%s => %s", async (tspType, csType) => {
|
|
47
40
|
const type = await compileType(tspType);
|
|
48
|
-
|
|
41
|
+
expect(_$createComponent(Wrapper, {
|
|
49
42
|
get children() {
|
|
50
43
|
return _$createComponent(TypeExpression, {
|
|
51
44
|
type: type
|
|
52
45
|
});
|
|
53
46
|
}
|
|
54
|
-
}))
|
|
55
|
-
|
|
56
|
-
namespace TestNamespace
|
|
57
|
-
{
|
|
58
|
-
${csType}
|
|
59
|
-
}
|
|
47
|
+
})).toRenderTo(`
|
|
48
|
+
${csType}
|
|
60
49
|
`);
|
|
61
50
|
});
|
|
62
51
|
});
|
|
63
52
|
it("maps array to c# array", async () => {
|
|
64
53
|
const type = await compileType("int32[]");
|
|
65
|
-
|
|
54
|
+
expect(_$createComponent(Wrapper, {
|
|
66
55
|
get children() {
|
|
67
56
|
return _$createComponent(TypeExpression, {
|
|
68
57
|
type: type
|
|
69
58
|
});
|
|
70
59
|
}
|
|
71
|
-
}))
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
{
|
|
75
|
-
int[]
|
|
76
|
-
}
|
|
77
|
-
`);
|
|
60
|
+
})).toRenderTo(`
|
|
61
|
+
int[]
|
|
62
|
+
`);
|
|
78
63
|
});
|
|
79
64
|
describe("Record map to IDictionary", () => {
|
|
80
65
|
it("for primitive types", async () => {
|
|
81
66
|
const type = await compileType("Record<int32>");
|
|
82
|
-
|
|
67
|
+
expect(_$createComponent(Wrapper, {
|
|
83
68
|
get children() {
|
|
84
69
|
return _$createComponent(TypeExpression, {
|
|
85
70
|
type: type
|
|
86
71
|
});
|
|
87
72
|
}
|
|
88
|
-
}))
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
{
|
|
92
|
-
IDictionary<string, int>
|
|
93
|
-
}
|
|
94
|
-
`);
|
|
73
|
+
})).toRenderTo(`
|
|
74
|
+
IDictionary<string, int>
|
|
75
|
+
`);
|
|
95
76
|
});
|
|
96
77
|
it("for models", async () => {
|
|
97
78
|
const {
|
|
98
79
|
test,
|
|
99
80
|
Pet
|
|
100
|
-
} = await runner.compile(`
|
|
81
|
+
} = await runner.compile(t.code`
|
|
101
82
|
model Test {
|
|
102
|
-
|
|
83
|
+
${t.modelProperty("test")}: Record<Pet>;
|
|
103
84
|
}
|
|
104
|
-
@test model Pet {}
|
|
85
|
+
@test model ${t.model("Pet")} {}
|
|
105
86
|
`);
|
|
106
|
-
|
|
87
|
+
expect(_$createComponent(Wrapper, {
|
|
107
88
|
get children() {
|
|
108
89
|
return [_$createComponent(ClassDeclaration, {
|
|
109
90
|
type: Pet
|
|
@@ -113,16 +94,68 @@ describe("Record map to IDictionary", () => {
|
|
|
113
94
|
}
|
|
114
95
|
})];
|
|
115
96
|
}
|
|
116
|
-
}))
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
97
|
+
})).toRenderTo(`
|
|
98
|
+
class Pet
|
|
99
|
+
{
|
|
100
|
+
|
|
101
|
+
}
|
|
102
|
+
IDictionary<string, Pet>
|
|
103
|
+
`);
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
describe("Nullable union", () => {
|
|
107
|
+
it("nullable boolean", async () => {
|
|
108
|
+
const {
|
|
109
|
+
Pet
|
|
110
|
+
} = await runner.compile(t.code`
|
|
111
|
+
@test model ${t.model("Pet")} {
|
|
112
|
+
@test name: boolean | null;
|
|
113
|
+
}
|
|
114
|
+
`);
|
|
115
|
+
expect(_$createComponent(Wrapper, {
|
|
116
|
+
get children() {
|
|
117
|
+
return _$createComponent(ClassDeclaration, {
|
|
118
|
+
type: Pet
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
})).toRenderTo(`
|
|
122
|
+
class Pet
|
|
123
|
+
{
|
|
124
|
+
public required bool? name { get; set; }
|
|
125
|
+
}
|
|
126
|
+
`);
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
describe("Literal types", () => {
|
|
130
|
+
it("literal types (string, int, double, bool)", async () => {
|
|
131
|
+
const {
|
|
132
|
+
Pet
|
|
133
|
+
} = await runner.compile(t.code`
|
|
134
|
+
@test model ${t.model("Pet")} {
|
|
135
|
+
@test boolName: true;
|
|
136
|
+
@test intName: 42;
|
|
137
|
+
@test doubleName: 3.14;
|
|
138
|
+
@test stringName: "Hello";
|
|
139
|
+
}
|
|
140
|
+
`);
|
|
141
|
+
expect(_$createComponent(Wrapper, {
|
|
142
|
+
get children() {
|
|
143
|
+
return _$createComponent(ClassDeclaration, {
|
|
144
|
+
type: Pet
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
})).toRenderTo(`
|
|
148
|
+
class Pet
|
|
149
|
+
{
|
|
150
|
+
public required bool boolName { get; set; }
|
|
151
|
+
|
|
152
|
+
public required int intName { get; set; }
|
|
153
|
+
|
|
154
|
+
public required double doubleName { get; set; }
|
|
155
|
+
|
|
156
|
+
public required string stringName { get; set; }
|
|
157
|
+
}
|
|
158
|
+
`);
|
|
127
159
|
});
|
|
128
|
-
});
|
|
160
|
+
});
|
|
161
|
+
//# sourceMappingURL=type-expression.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Tester","SourceFile","t","beforeEach","describe","expect","it","Output","ClassDeclaration","TypeExpression","runner","createInstance","Wrapper","props","_$createComponent","program","children","path","compileType","ref","test","compile","type","each","tspType","csType","toRenderTo","Pet","code","modelProperty","model","_$createIntrinsic"],"sources":["../../../../src/csharp/components/type-expression.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["List","cs","getReturnsDoc","getDocComments","$","type","typeDoc","getDoc","undefined","docElements","push","_$createComponent","DocSummary","children","DocFromMarkdown","markdown","operation","is","paramDocs","param","parameters","properties","values","paramDoc","DocParam","name","returnDoc","program","DocReturns","doubleHardline"],"sources":["../../../../../src/csharp/components/utils/doc-comments.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAAwBA,IAAI,QAAQ,gBAAgB;AACpD,OAAO,KAAKC,EAAE,MAAM,kBAAkB;AACtC,SAASC,aAAa,QAAmB,oBAAoB;AAG7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAACC,CAAU,EAAEC,IAAU,EAAY;EAC/D,MAAMC,OAAO,GAAGF,CAAC,CAACC,IAAI,CAACE,MAAM,CAACF,IAAI,CAAC;EACnC,IAAI,CAACC,OAAO,EAAE;IACZ,OAAOE,SAAS;EAClB;EAEA,MAAMC,WAAuB,GAAG,EAAE;;EAElC;EACAA,WAAW,CAACC,IAAI,CAAAC,iBAAA,CACbV,EAAE,CAACW,UAAU;IAAA,IAAAC,SAAA;MAAA,OAAAF,iBAAA,CACXV,EAAE,CAACa,eAAe;QAACC,QAAQ,EAAET;MAAO;IAAA;EAAA,EAEzC,CAAC;;EAED;EACA,IAAIF,CAAC,CAACY,SAAS,CAACC,EAAE,CAACZ,IAAI,CAAC,EAAE;IACxB;IACA,MAAMa,SAAS,GAAG,EAAE;IACpB,KAAK,MAAMC,KAAK,IAAId,IAAI,CAACe,UAAU,CAACC,UAAU,CAACC,MAAM,CAAC,CAAC,EAAE;MACvD,MAAMC,QAAQ,GAAGnB,CAAC,CAACC,IAAI,CAACE,MAAM,CAACY,KAAK,CAAC;MACrC,IAAII,QAAQ,EAAE;QACZL,SAAS,CAACR,IAAI,CAAAC,iBAAA,CACXV,EAAE,CAACuB,QAAQ;UAAA,IAACC,IAAIA,CAAA;YAAA,OAAEN,KAAK,CAACM,IAAI;UAAA;UAAA,IAAAZ,SAAA;YAAA,OAAAF,iBAAA,CAC1BV,EAAE,CAACa,eAAe;cAACC,QAAQ,EAAEQ;YAAQ;UAAA;QAAA,EAE1C,CAAC;MACH;IACF;IACAd,WAAW,CAACC,IAAI,CAAC,GAAGQ,SAAS,CAAC;;IAE9B;IACA,MAAMQ,SAAS,GAAGxB,aAAa,CAACE,CAAC,CAACuB,OAAO,EAAEtB,IAAI,CAAC;IAChD,IAAIqB,SAAS,EAAE;MACbjB,WAAW,CAACC,IAAI,CAAAC,iBAAA,CACbV,EAAE,CAAC2B,UAAU;QAAA,IAAAf,SAAA;UAAA,OAAAF,iBAAA,CACXV,EAAE,CAACa,eAAe;YAACC,QAAQ,EAAEW;UAAS;QAAA;MAAA,EAE3C,CAAC;IACH;EACF;EAEA,OAAAf,iBAAA,CAAQX,IAAI;IAAC6B,cAAc;IAAAhB,QAAA,EAAEJ;EAAW;AAC1C","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nullable-util.d.ts","sourceRoot":"","sources":["../../../../../src/csharp/components/utils/nullable-util.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEtD,gFAAgF;AAChF,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS,CAoBpE"}
|