@typespec/emitter-framework 0.13.0-dev.1 → 0.13.0-dev.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/dist/src/csharp/components/index.d.ts +2 -0
- package/dist/src/csharp/components/index.d.ts.map +1 -1
- package/dist/src/csharp/components/index.js +2 -0
- package/dist/src/csharp/components/index.js.map +1 -1
- package/dist/src/csharp/components/json-converter/json-converter-resolver.d.ts +28 -0
- package/dist/src/csharp/components/json-converter/json-converter-resolver.d.ts.map +1 -0
- package/dist/src/csharp/components/json-converter/json-converter-resolver.js +82 -0
- package/dist/src/csharp/components/json-converter/json-converter-resolver.js.map +1 -0
- package/dist/src/csharp/components/json-converter/json-converter-resolver.test.d.ts +2 -0
- package/dist/src/csharp/components/json-converter/json-converter-resolver.test.d.ts.map +1 -0
- package/dist/src/csharp/components/json-converter/json-converter-resolver.test.js +134 -0
- package/dist/src/csharp/components/json-converter/json-converter-resolver.test.js.map +1 -0
- package/dist/src/csharp/components/json-converter/json-converter.d.ts +28 -0
- package/dist/src/csharp/components/json-converter/json-converter.d.ts.map +1 -0
- package/dist/src/csharp/components/json-converter/json-converter.js +168 -0
- package/dist/src/csharp/components/json-converter/json-converter.js.map +1 -0
- package/dist/src/csharp/components/json-converter/json-converter.test.d.ts +2 -0
- package/dist/src/csharp/components/json-converter/json-converter.test.d.ts.map +1 -0
- package/dist/src/csharp/components/json-converter/json-converter.test.js +134 -0
- package/dist/src/csharp/components/json-converter/json-converter.test.js.map +1 -0
- package/dist/src/csharp/components/property/property.d.ts +4 -1
- package/dist/src/csharp/components/property/property.d.ts.map +1 -1
- package/dist/src/csharp/components/property/property.js +46 -11
- package/dist/src/csharp/components/property/property.js.map +1 -1
- package/dist/src/csharp/components/property/property.test.js +125 -8
- package/dist/src/csharp/components/property/property.test.js.map +1 -1
- package/package.json +7 -7
- package/package.json.bak +7 -7
- package/src/csharp/components/index.ts +2 -0
- package/src/csharp/components/json-converter/json-converter-resolver.test.tsx +120 -0
- package/src/csharp/components/json-converter/json-converter-resolver.tsx +117 -0
- package/src/csharp/components/json-converter/json-converter.test.tsx +141 -0
- package/src/csharp/components/json-converter/json-converter.tsx +146 -0
- package/src/csharp/components/property/property.test.tsx +111 -7
- package/src/csharp/components/property/property.tsx +47 -6
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { Tester } from "#test/test-host.js";
|
|
3
|
+
import { code, namekey } from "@alloy-js/core";
|
|
4
|
+
import { createCSharpNamePolicy, SourceFile } from "@alloy-js/csharp";
|
|
5
|
+
import { t } from "@typespec/compiler/testing";
|
|
6
|
+
import { $ } from "@typespec/compiler/typekit";
|
|
7
|
+
import { beforeEach, describe, expect, it } from "vitest";
|
|
8
|
+
import { Output } from "../../../core/components/output.js";
|
|
9
|
+
import { JsonConverter, TimeSpanIso8601JsonConverter, TimeSpanSecondsJsonConverter } from "./json-converter.js";
|
|
10
|
+
let tester;
|
|
11
|
+
beforeEach(async () => {
|
|
12
|
+
tester = await Tester.createInstance();
|
|
13
|
+
});
|
|
14
|
+
function Wrapper(props) {
|
|
15
|
+
const policy = createCSharpNamePolicy();
|
|
16
|
+
return _$createComponent(Output, {
|
|
17
|
+
get program() {
|
|
18
|
+
return tester.program;
|
|
19
|
+
},
|
|
20
|
+
namePolicy: policy,
|
|
21
|
+
get children() {
|
|
22
|
+
return _$createComponent(SourceFile, {
|
|
23
|
+
path: "test.cs",
|
|
24
|
+
get children() {
|
|
25
|
+
return props.children;
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
const fakeJsonConverterKey = namekey("FakeJsonConverter");
|
|
32
|
+
function FakeJsonConverter() {
|
|
33
|
+
return _$createComponent(JsonConverter, {
|
|
34
|
+
name: fakeJsonConverterKey,
|
|
35
|
+
get type() {
|
|
36
|
+
return $(tester.program).builtin.string;
|
|
37
|
+
},
|
|
38
|
+
decodeAndReturn: reader => {
|
|
39
|
+
return code`return ${reader}.GetString();`;
|
|
40
|
+
},
|
|
41
|
+
encodeAndWrite: (writer, value) => {
|
|
42
|
+
return code`${writer}.WriteStringValue(${value});`;
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
it("Custom JsonConverter", async () => {
|
|
47
|
+
await tester.compile(t.code``);
|
|
48
|
+
expect(_$createComponent(Wrapper, {
|
|
49
|
+
get children() {
|
|
50
|
+
return _$createComponent(FakeJsonConverter, {});
|
|
51
|
+
}
|
|
52
|
+
})).toRenderTo(`
|
|
53
|
+
using System;
|
|
54
|
+
using System.Text.Json;
|
|
55
|
+
using System.Text.Json.Serialization;
|
|
56
|
+
|
|
57
|
+
internal sealed class FakeJsonConverter : JsonConverter<string>
|
|
58
|
+
{
|
|
59
|
+
public override string Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
|
|
60
|
+
{
|
|
61
|
+
return reader.GetString();
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
public override void Write(Utf8JsonWriter writer, string value, JsonSerializerOptions options)
|
|
65
|
+
{
|
|
66
|
+
writer.WriteStringValue(value);
|
|
67
|
+
}
|
|
68
|
+
}`);
|
|
69
|
+
});
|
|
70
|
+
describe("Known JsonConverters", () => {
|
|
71
|
+
it("TimeSpanIso8601JsonConverter", async () => {
|
|
72
|
+
await tester.compile(t.code``);
|
|
73
|
+
expect(_$createComponent(Wrapper, {
|
|
74
|
+
get children() {
|
|
75
|
+
return _$createComponent(TimeSpanIso8601JsonConverter, {});
|
|
76
|
+
}
|
|
77
|
+
})).toRenderTo(`
|
|
78
|
+
using System;
|
|
79
|
+
using System.Text.Json;
|
|
80
|
+
using System.Text.Json.Serialization;
|
|
81
|
+
using System.Xml;
|
|
82
|
+
|
|
83
|
+
internal sealed class TimeSpanIso8601JsonConverter : JsonConverter<TimeSpan>
|
|
84
|
+
{
|
|
85
|
+
public override TimeSpan Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
|
|
86
|
+
{
|
|
87
|
+
var isoString = reader.GetString();
|
|
88
|
+
if( isoString == null)
|
|
89
|
+
{
|
|
90
|
+
throw new FormatException("Invalid ISO8601 duration string: null");
|
|
91
|
+
}
|
|
92
|
+
return XmlConvert.ToTimeSpan(isoString);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
public override void Write(Utf8JsonWriter writer, TimeSpan value, JsonSerializerOptions options)
|
|
96
|
+
{
|
|
97
|
+
writer.WriteStringValue(XmlConvert.ToString(value));
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
`);
|
|
101
|
+
});
|
|
102
|
+
describe.each([["int16", "(short)", "GetInt16"], ["uint16", "(ushort)", "GetUInt16"], ["int32", "(int)", "GetInt32"], ["uint32", "(uint)", "GetUInt32"], ["int64", "(long)", "GetInt64"], ["uint64", "(ulong)", "GetUInt64"], ["float32", "(float)", "GetSingle"], ["float64", "", "GetDouble"]])("%s", (typeName, jsonWriteType, jsonReaderMethod) => {
|
|
103
|
+
it("TimeSpanSecondsJsonConverter", async () => {
|
|
104
|
+
await tester.compile(t.code``);
|
|
105
|
+
const type = $(tester.program).builtin[typeName];
|
|
106
|
+
expect(_$createComponent(Wrapper, {
|
|
107
|
+
get children() {
|
|
108
|
+
return _$createComponent(TimeSpanSecondsJsonConverter, {
|
|
109
|
+
encodeType: type
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
})).toRenderTo(`
|
|
113
|
+
using System;
|
|
114
|
+
using System.Text.Json;
|
|
115
|
+
using System.Text.Json.Serialization;
|
|
116
|
+
|
|
117
|
+
internal sealed class TimeSpanSeconds${typeName.charAt(0).toUpperCase() + typeName.slice(1)}JsonConverter : JsonConverter<TimeSpan>
|
|
118
|
+
{
|
|
119
|
+
public override TimeSpan Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
|
|
120
|
+
{
|
|
121
|
+
var seconds = reader.${jsonReaderMethod}();
|
|
122
|
+
return TimeSpan.FromSeconds(seconds);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
public override void Write(Utf8JsonWriter writer, TimeSpan value, JsonSerializerOptions options)
|
|
126
|
+
{
|
|
127
|
+
writer.WriteNumberValue(${jsonWriteType}value.TotalSeconds);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
`);
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
});
|
|
134
|
+
//# sourceMappingURL=json-converter.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Tester","code","namekey","createCSharpNamePolicy","SourceFile","t","$","beforeEach","describe","expect","it","Output","JsonConverter","TimeSpanIso8601JsonConverter","TimeSpanSecondsJsonConverter","tester","createInstance","Wrapper","props","policy","_$createComponent","program","namePolicy","children","path","fakeJsonConverterKey","FakeJsonConverter","name","type","builtin","string","decodeAndReturn","reader","encodeAndWrite","writer","value","compile","toRenderTo","each","typeName","jsonWriteType","jsonReaderMethod","encodeType","charAt","toUpperCase","slice"],"sources":["../../../../../src/csharp/components/json-converter/json-converter.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -2,7 +2,10 @@ import { type Children } from "@alloy-js/core";
|
|
|
2
2
|
import { type ModelProperty } from "@typespec/compiler";
|
|
3
3
|
export interface PropertyProps {
|
|
4
4
|
type: ModelProperty;
|
|
5
|
-
/** If set the property will add the json serialization attributes(using System.Text.Json).
|
|
5
|
+
/** If set the property will add the json serialization attributes(using System.Text.Json.Serialization).
|
|
6
|
+
* - the JsonPropertyName attribute
|
|
7
|
+
* - the JsonConverter attribute if the property has encoding and a JsonConverterResolver context is available
|
|
8
|
+
* */
|
|
6
9
|
jsonAttributes?: boolean;
|
|
7
10
|
}
|
|
8
11
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"property.d.ts","sourceRoot":"","sources":["../../../../../src/csharp/components/property/property.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"property.d.ts","sourceRoot":"","sources":["../../../../../src/csharp/components/property/property.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAIjE,OAAO,EAIL,KAAK,aAAa,EAEnB,MAAM,oBAAoB,CAAC;AAO5B,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,aAAa,CAAC;IACpB;;;SAGK;IACL,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,QAAQ,CAkEvD;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,aAAa,CAAC;CACrB"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { code, REFKEYABLE } from "@alloy-js/core";
|
|
2
3
|
import * as cs from "@alloy-js/csharp";
|
|
3
4
|
import { Attribute } from "@alloy-js/csharp";
|
|
4
|
-
import {
|
|
5
|
+
import { Serialization } from "@alloy-js/csharp/global/System/Text/Json";
|
|
6
|
+
import { getEncode, getProperty, resolveEncodedName } from "@typespec/compiler";
|
|
5
7
|
import { useTsp } from "../../../core/index.js";
|
|
8
|
+
import { useJsonConverterResolver } from "../json-converter/json-converter-resolver.js";
|
|
6
9
|
import { TypeExpression } from "../type-expression.js";
|
|
7
10
|
import { getDocComments } from "../utils/doc-comments.js";
|
|
8
11
|
import { getNullableUnionInnerType } from "../utils/nullable-util.js";
|
|
@@ -10,10 +13,10 @@ import { getNullableUnionInnerType } from "../utils/nullable-util.js";
|
|
|
10
13
|
* Create a C# property declaration from a TypeSpec property type.
|
|
11
14
|
*/
|
|
12
15
|
export function Property(props) {
|
|
13
|
-
const result = preprocessPropertyType(props.type);
|
|
14
16
|
const {
|
|
15
17
|
$
|
|
16
18
|
} = useTsp();
|
|
19
|
+
const result = preprocessPropertyType(props.type);
|
|
17
20
|
let overrideType = "";
|
|
18
21
|
let isVirtual = false;
|
|
19
22
|
if (props.type.model) {
|
|
@@ -39,6 +42,32 @@ export function Property(props) {
|
|
|
39
42
|
});
|
|
40
43
|
}
|
|
41
44
|
}
|
|
45
|
+
const attributes = [];
|
|
46
|
+
if (props.jsonAttributes) {
|
|
47
|
+
attributes.push(_$createComponent(JsonNameAttribute, {
|
|
48
|
+
get type() {
|
|
49
|
+
return props.type;
|
|
50
|
+
}
|
|
51
|
+
}));
|
|
52
|
+
const encodeData = getEncode($.program, props.type);
|
|
53
|
+
if (encodeData) {
|
|
54
|
+
const JsonConverterResolver = useJsonConverterResolver();
|
|
55
|
+
if (JsonConverterResolver) {
|
|
56
|
+
const converter = JsonConverterResolver.resolveJsonConverter(result.type, encodeData);
|
|
57
|
+
if (converter) {
|
|
58
|
+
attributes.push(_$createComponent(JsonConverterAttribute, {
|
|
59
|
+
get type() {
|
|
60
|
+
return _$createComponent(cs.Reference, {
|
|
61
|
+
get refkey() {
|
|
62
|
+
return converter.namekey;
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}));
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
42
71
|
return _$createComponent(cs.Property, {
|
|
43
72
|
get name() {
|
|
44
73
|
return props.type.name;
|
|
@@ -63,13 +92,7 @@ export function Property(props) {
|
|
|
63
92
|
get doc() {
|
|
64
93
|
return getDocComments($, props.type);
|
|
65
94
|
},
|
|
66
|
-
|
|
67
|
-
return _$memo(() => !!props.jsonAttributes)() ? [_$createComponent(JsonNameAttribute, {
|
|
68
|
-
get type() {
|
|
69
|
-
return props.type;
|
|
70
|
-
}
|
|
71
|
-
})] : undefined;
|
|
72
|
-
},
|
|
95
|
+
attributes: attributes,
|
|
73
96
|
get: true,
|
|
74
97
|
set: true
|
|
75
98
|
});
|
|
@@ -80,7 +103,9 @@ function JsonNameAttribute(props) {
|
|
|
80
103
|
} = useTsp();
|
|
81
104
|
const jsonName = resolveEncodedName(program, props.type, "application/json");
|
|
82
105
|
return _$createComponent(Attribute, {
|
|
83
|
-
name
|
|
106
|
+
get name() {
|
|
107
|
+
return Serialization.JsonPropertyNameAttribute[REFKEYABLE]();
|
|
108
|
+
},
|
|
84
109
|
get args() {
|
|
85
110
|
return [JSON.stringify(jsonName)];
|
|
86
111
|
}
|
|
@@ -108,4 +133,14 @@ function preprocessPropertyType(prop) {
|
|
|
108
133
|
};
|
|
109
134
|
}
|
|
110
135
|
}
|
|
136
|
+
function JsonConverterAttribute(props) {
|
|
137
|
+
return _$createComponent(Attribute, {
|
|
138
|
+
get name() {
|
|
139
|
+
return Serialization.JsonConverterAttribute[REFKEYABLE]();
|
|
140
|
+
},
|
|
141
|
+
get args() {
|
|
142
|
+
return [code`typeof(${props.type})`];
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
}
|
|
111
146
|
//# sourceMappingURL=property.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["cs","Attribute","getProperty","resolveEncodedName","useTsp","TypeExpression","getDocComments","getNullableUnionInnerType","Property","props","result","preprocessPropertyType","type","
|
|
1
|
+
{"version":3,"names":["code","REFKEYABLE","cs","Attribute","Serialization","getEncode","getProperty","resolveEncodedName","useTsp","useJsonConverterResolver","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","attributes","jsonAttributes","push","_$createComponent","JsonNameAttribute","encodeData","program","JsonConverterResolver","converter","resolveJsonConverter","JsonConverterAttribute","Reference","refkey","namekey","override","virtual","required","optional","doc","set","jsonName","JsonPropertyNameAttribute","args","JSON","stringify","prop","kind","innerType"],"sources":["../../../../../src/csharp/components/property/property.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,IAAI,EAAEC,UAAU,QAAuB,gBAAgB;AAChE,OAAO,KAAKC,EAAE,MAAM,kBAAkB;AACtC,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,SAASC,aAAa,QAAQ,0CAA0C;AACxE,SACEC,SAAS,EACTC,WAAW,EACXC,kBAAkB,QAGb,oBAAoB;AAC3B,SAASC,MAAM,QAAQ,wBAAwB;AAC/C,SAASC,wBAAwB;AACjC,SAASC,cAAc;AACvB,SAASC,cAAc;AACvB,SAASC,yBAAyB,QAAQ,2BAA2B;AAWrE;AACA;AACA;AACA,OAAO,SAASC,QAAQA,CAACC,KAAoB,EAAY;EACvD,MAAM;IAAEC;EAAE,CAAC,GAAGP,MAAM,CAAC,CAAC;EACtB,MAAMQ,MAAM,GAAGC,sBAAsB,CAACH,KAAK,CAACI,IAAI,CAAC;EAEjD,IAAIC,YAAqC,GAAG,EAAE;EAC9C,IAAIC,SAAS,GAAG,KAAK;EACrB,IAAIN,KAAK,CAACI,IAAI,CAACG,KAAK,EAAE;IACpB,IAAIP,KAAK,CAACI,IAAI,CAACG,KAAK,CAACC,SAAS,EAAE;MAC9B,MAAMC,IAAI,GAAGT,KAAK,CAACI,IAAI,CAACG,KAAK,CAACC,SAAS;MACvC,MAAME,YAAY,GAAGlB,WAAW,CAACiB,IAAI,EAAET,KAAK,CAACI,IAAI,CAACO,IAAI,CAAC;MACvD,IAAID,YAAY,EAAE;QAChB,MAAME,UAAU,GAAGT,sBAAsB,CAACO,YAAY,CAAC;QACvD,IAAIE,UAAU,CAACC,QAAQ,KAAKX,MAAM,CAACW,QAAQ,IAAID,UAAU,CAACR,IAAI,KAAKF,MAAM,CAACE,IAAI,EAAE;UAC9EC,YAAY,GAAG,UAAU;QAC3B,CAAC,MAAM;UACLA,YAAY,GAAG,KAAK;QACtB;MACF;IACF;IACA,IACEA,YAAY,KAAK,EAAE,IACnBL,KAAK,CAACI,IAAI,CAACG,KAAK,CAACO,aAAa,IAC9Bd,KAAK,CAACI,IAAI,CAACG,KAAK,CAACO,aAAa,CAACC,MAAM,GAAG,CAAC,EACzC;MACAT,SAAS,GAAGN,KAAK,CAACI,IAAI,CAACG,KAAK,CAACO,aAAa,CAACE,IAAI,CAAEC,OAAO,IAAK;QAC3D,MAAMC,eAAe,GAAGD,OAAO,CAACE,UAAU,CAACC,GAAG,CAACpB,KAAK,CAACI,IAAI,CAACO,IAAI,CAAC;QAC/D,IAAIO,eAAe,EAAE;UACnB,MAAMG,aAAa,GAAGlB,sBAAsB,CAACe,eAAe,CAAC;UAC7D,OAAOG,aAAa,CAACR,QAAQ,KAAKX,MAAM,CAACW,QAAQ,IAAIQ,aAAa,CAACjB,IAAI,KAAKF,MAAM,CAACE,IAAI;QACzF;MACF,CAAC,CAAC;IACJ;EACF;EACA,MAAMkB,UAAU,GAAG,EAAE;EACrB,IAAItB,KAAK,CAACuB,cAAc,EAAE;IACxBD,UAAU,CAACE,IAAI,CAAAC,iBAAA,CAAEC,iBAAiB;MAAA,IAACtB,IAAIA,CAAA;QAAA,OAAEJ,KAAK,CAACI,IAAI;MAAA;IAAA,EAAI,CAAC;IACxD,MAAMuB,UAAU,GAAGpC,SAAS,CAACU,CAAC,CAAC2B,OAAO,EAAE5B,KAAK,CAACI,IAAI,CAAC;IACnD,IAAIuB,UAAU,EAAE;MACd,MAAME,qBAAqB,GAAGlC,wBAAwB,CAAC,CAAC;MACxD,IAAIkC,qBAAqB,EAAE;QACzB,MAAMC,SAAS,GAAGD,qBAAqB,CAACE,oBAAoB,CAAC7B,MAAM,CAACE,IAAI,EAAEuB,UAAU,CAAC;QACrF,IAAIG,SAAS,EAAE;UACbR,UAAU,CAACE,IAAI,CAAAC,iBAAA,CACZO,sBAAsB;YAAA,IAAC5B,IAAIA,CAAA;cAAA,OAAAqB,iBAAA,CAAGrC,EAAE,CAAC6C,SAAS;gBAAA,IAACC,MAAMA,CAAA;kBAAA,OAAEJ,SAAS,CAACK,OAAO;gBAAA;cAAA;YAAA;UAAA,EACvE,CAAC;QACH;MACF;IACF;EACF;EAEA,OAAAV,iBAAA,CACGrC,EAAE,CAACW,QAAQ;IAAA,IACVY,IAAIA,CAAA;MAAA,OAAEX,KAAK,CAACI,IAAI,CAACO,IAAI;IAAA;IAAA,IACrBP,IAAIA,CAAA;MAAA,OAAAqB,iBAAA,CAAG7B,cAAc;QAAA,IAACQ,IAAIA,CAAA;UAAA,OAAEF,MAAM,CAACE,IAAI;QAAA;MAAA;IAAA;IACvCgC,QAAQ,EAAE/B,YAAY,KAAK,UAAU;IAAA,OAChCA,YAAY,KAAK,KAAK;IAAA;IAE3BgC,OAAO,EAAE/B,SAAS;IAAA,IAClBgC,QAAQA,CAAA;MAAA,OAAE,CAACtC,KAAK,CAACI,IAAI,CAACmC,QAAQ;IAAA;IAAA,IAC9B1B,QAAQA,CAAA;MAAA,OAAEX,MAAM,CAACW,QAAQ;IAAA;IAAA,IACzB2B,GAAGA,CAAA;MAAA,OAAE3C,cAAc,CAACI,CAAC,EAAED,KAAK,CAACI,IAAI,CAAC;IAAA;IAClCkB,UAAU,EAAEA,UAAU;IACtBF,GAAG;IACHqB,GAAG;EAAA;AAGT;AAMA,SAASf,iBAAiBA,CAAC1B,KAA6B,EAAY;EAClE,MAAM;IAAE4B;EAAQ,CAAC,GAAGlC,MAAM,CAAC,CAAC;EAC5B,MAAMgD,QAAQ,GAAGjD,kBAAkB,CAACmC,OAAO,EAAE5B,KAAK,CAACI,IAAI,EAAE,kBAAkB,CAAC;EAC5E,OAAAqB,iBAAA,CACGpC,SAAS;IAAA,IACRsB,IAAIA,CAAA;MAAA,OAAErB,aAAa,CAACqD,yBAAyB,CAACxD,UAAU,CAAC,CAAC,CAAC;IAAA;IAAA,IAC3DyD,IAAIA,CAAA;MAAA,OAAE,CAACC,IAAI,CAACC,SAAS,CAACJ,QAAQ,CAAC,CAAC;IAAA;EAAA;AAGtC;AAEA,SAASvC,sBAAsBA,CAAC4C,IAAmB,EAAqC;EACtF,MAAM3C,IAAI,GAAG2C,IAAI,CAAC3C,IAAI;EAEtB,IAAIA,IAAI,CAAC4C,IAAI,KAAK,OAAO,EAAE;IACzB,MAAMC,SAAS,GAAGnD,yBAAyB,CAACM,IAAI,CAAC;IACjD,IAAI6C,SAAS,EAAE;MACb,OAAO;QAAE7C,IAAI,EAAE6C,SAAS;QAAEpC,QAAQ,EAAE;MAAK,CAAC;IAC5C,CAAC,MAAM;MACL,OAAO;QAAET,IAAI;QAAES,QAAQ,EAAEkC,IAAI,CAACR;MAAS,CAAC;IAC1C;EACF,CAAC,MAAM;IACL,OAAO;MAAEnC,IAAI;MAAES,QAAQ,EAAEkC,IAAI,CAACR;IAAS,CAAC;EAC1C;AACF;AAEA,SAASP,sBAAsBA,CAAChC,KAAyB,EAAY;EACnE,OAAAyB,iBAAA,CACGpC,SAAS;IAAA,IACRsB,IAAIA,CAAA;MAAA,OAAErB,aAAa,CAAC0C,sBAAsB,CAAC7C,UAAU,CAAC,CAAC,CAAC;IAAA;IAAA,IACxDyD,IAAIA,CAAA;MAAA,OAAE,CAAC1D,IAAI,UAAUc,KAAK,CAACI,IAAI,GAAG,CAAC;IAAA;EAAA;AAGzC","ignoreList":[]}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
1
|
+
import { createComponent as _$createComponent, createIntrinsic as _$createIntrinsic, memo as _$memo } from "@alloy-js/core/jsx-runtime";
|
|
2
2
|
import { Tester } from "#test/test-host.js";
|
|
3
|
-
import { List } from "@alloy-js/core";
|
|
3
|
+
import { For, List } from "@alloy-js/core";
|
|
4
4
|
import { ClassDeclaration, createCSharpNamePolicy, SourceFile } from "@alloy-js/csharp";
|
|
5
5
|
import { t } from "@typespec/compiler/testing";
|
|
6
6
|
import { beforeEach, describe, expect, it } from "vitest";
|
|
7
7
|
import { Output } from "../../../core/components/output.js";
|
|
8
|
+
import { createJsonConverterResolver, JsonConverterResolver, useJsonConverterResolver } from "../json-converter/json-converter-resolver.js";
|
|
8
9
|
import { Property } from "./property.js";
|
|
9
10
|
let tester;
|
|
10
11
|
beforeEach(async () => {
|
|
@@ -112,9 +113,11 @@ describe("jsonAttributes", () => {
|
|
|
112
113
|
});
|
|
113
114
|
}
|
|
114
115
|
})).toRenderTo(`
|
|
116
|
+
using System.Text.Json.Serialization;
|
|
117
|
+
|
|
115
118
|
class Test
|
|
116
119
|
{
|
|
117
|
-
[
|
|
120
|
+
[JsonPropertyName("prop1")]
|
|
118
121
|
public required string Prop1 { get; set; }
|
|
119
122
|
}
|
|
120
123
|
`);
|
|
@@ -136,11 +139,13 @@ describe("jsonAttributes", () => {
|
|
|
136
139
|
});
|
|
137
140
|
}
|
|
138
141
|
})).toRenderTo(`
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
142
|
+
using System.Text.Json.Serialization;
|
|
143
|
+
|
|
144
|
+
class Test
|
|
145
|
+
{
|
|
146
|
+
[JsonPropertyName("prop_1")]
|
|
147
|
+
public required string Prop1 { get; set; }
|
|
148
|
+
}
|
|
144
149
|
`);
|
|
145
150
|
});
|
|
146
151
|
it("inherit prop: override, new", async () => {
|
|
@@ -213,5 +218,117 @@ describe("jsonAttributes", () => {
|
|
|
213
218
|
}
|
|
214
219
|
`);
|
|
215
220
|
});
|
|
221
|
+
it("json converter: duration -> seconds(int32)", async () => {
|
|
222
|
+
const r = await tester.compile(t.code`
|
|
223
|
+
model BaseModel {
|
|
224
|
+
@encode(DurationKnownEncoding.seconds, int32)
|
|
225
|
+
${t.modelProperty("prop1")}?: duration;
|
|
226
|
+
@encode(DurationKnownEncoding.seconds, float64)
|
|
227
|
+
${t.modelProperty("prop2")}: duration;
|
|
228
|
+
@encode(DurationKnownEncoding.ISO8601, string)
|
|
229
|
+
${t.modelProperty("prop3")}: duration;
|
|
230
|
+
}
|
|
231
|
+
`);
|
|
232
|
+
expect(_$createComponent(Wrapper, {
|
|
233
|
+
get children() {
|
|
234
|
+
return _$createComponent(JsonConverterResolver.Provider, {
|
|
235
|
+
get value() {
|
|
236
|
+
return createJsonConverterResolver();
|
|
237
|
+
},
|
|
238
|
+
get children() {
|
|
239
|
+
return _$createComponent(List, {
|
|
240
|
+
get children() {
|
|
241
|
+
return [_$createComponent(Property, {
|
|
242
|
+
get type() {
|
|
243
|
+
return r.prop1;
|
|
244
|
+
},
|
|
245
|
+
jsonAttributes: true
|
|
246
|
+
}), _$createComponent(Property, {
|
|
247
|
+
get type() {
|
|
248
|
+
return r.prop2;
|
|
249
|
+
},
|
|
250
|
+
jsonAttributes: true
|
|
251
|
+
}), _$createComponent(Property, {
|
|
252
|
+
get type() {
|
|
253
|
+
return r.prop3;
|
|
254
|
+
},
|
|
255
|
+
jsonAttributes: true
|
|
256
|
+
}), _$createIntrinsic("hbr", {}), "// JsonConverter wont work as nested class, but good enough for test to verify the generated code.", _$createComponent(For, {
|
|
257
|
+
get each() {
|
|
258
|
+
return useJsonConverterResolver()?.listResolvedJsonConverters() ?? [];
|
|
259
|
+
},
|
|
260
|
+
children: x => [_$memo(() => x.converter)]
|
|
261
|
+
})];
|
|
262
|
+
}
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
})).toRenderTo(`
|
|
268
|
+
using System;
|
|
269
|
+
using System.Text.Json;
|
|
270
|
+
using System.Text.Json.Serialization;
|
|
271
|
+
using System.Xml;
|
|
272
|
+
|
|
273
|
+
class Test
|
|
274
|
+
{
|
|
275
|
+
[JsonPropertyName("prop1")]
|
|
276
|
+
[JsonConverter(typeof(TimeSpanSecondsInt32JsonConverter))]
|
|
277
|
+
public TimeSpan? Prop1 { get; set; }
|
|
278
|
+
[JsonPropertyName("prop2")]
|
|
279
|
+
[JsonConverter(typeof(TimeSpanSecondsFloat64JsonConverter))]
|
|
280
|
+
public required TimeSpan Prop2 { get; set; }
|
|
281
|
+
[JsonPropertyName("prop3")]
|
|
282
|
+
[JsonConverter(typeof(TimeSpanIso8601JsonConverter))]
|
|
283
|
+
public required TimeSpan Prop3 { get; set; }
|
|
284
|
+
|
|
285
|
+
|
|
286
|
+
// JsonConverter wont work as nested class, but good enough for test to verify the generated code.
|
|
287
|
+
internal sealed class TimeSpanSecondsInt32JsonConverter : JsonConverter<TimeSpan>
|
|
288
|
+
{
|
|
289
|
+
public override TimeSpan Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
|
|
290
|
+
{
|
|
291
|
+
var seconds = reader.GetInt32();
|
|
292
|
+
return TimeSpan.FromSeconds(seconds);
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
public override void Write(Utf8JsonWriter writer, TimeSpan value, JsonSerializerOptions options)
|
|
296
|
+
{
|
|
297
|
+
writer.WriteNumberValue((int)value.TotalSeconds);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
internal sealed class TimeSpanSecondsFloat64JsonConverter : JsonConverter<TimeSpan>
|
|
301
|
+
{
|
|
302
|
+
public override TimeSpan Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
|
|
303
|
+
{
|
|
304
|
+
var seconds = reader.GetDouble();
|
|
305
|
+
return TimeSpan.FromSeconds(seconds);
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
public override void Write(Utf8JsonWriter writer, TimeSpan value, JsonSerializerOptions options)
|
|
309
|
+
{
|
|
310
|
+
writer.WriteNumberValue(value.TotalSeconds);
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
internal sealed class TimeSpanIso8601JsonConverter : JsonConverter<TimeSpan>
|
|
314
|
+
{
|
|
315
|
+
public override TimeSpan Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
|
|
316
|
+
{
|
|
317
|
+
var isoString = reader.GetString();
|
|
318
|
+
if( isoString == null)
|
|
319
|
+
{
|
|
320
|
+
throw new FormatException("Invalid ISO8601 duration string: null");
|
|
321
|
+
}
|
|
322
|
+
return XmlConvert.ToTimeSpan(isoString);
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
public override void Write(Utf8JsonWriter writer, TimeSpan value, JsonSerializerOptions options)
|
|
326
|
+
{
|
|
327
|
+
writer.WriteStringValue(XmlConvert.ToString(value));
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
`);
|
|
332
|
+
});
|
|
216
333
|
});
|
|
217
334
|
//# sourceMappingURL=property.test.js.map
|
|
@@ -1 +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":";AAAA,SAASA,MAAM,QAAQ,oBAAoB;AAC3C,SAASC,IAAI,QAAuB,gBAAgB;
|
|
1
|
+
{"version":3,"names":["Tester","For","List","ClassDeclaration","createCSharpNamePolicy","SourceFile","t","beforeEach","describe","expect","it","Output","createJsonConverterResolver","JsonConverterResolver","useJsonConverterResolver","Property","tester","createInstance","Wrapper","props","policy","_$createComponent","program","namePolicy","children","path","name","prop1","compile","code","modelProperty","type","toRenderTo","jsonAttributes","r","prop2","Provider","value","prop3","_$createIntrinsic","each","listResolvedJsonConverters","x","_$memo","converter"],"sources":["../../../../../src/csharp/components/property/property.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@typespec/emitter-framework",
|
|
3
|
-
"version": "0.13.0-dev.
|
|
3
|
+
"version": "0.13.0-dev.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"repository": {
|
|
@@ -38,16 +38,16 @@
|
|
|
38
38
|
"license": "MIT",
|
|
39
39
|
"description": "",
|
|
40
40
|
"peerDependencies": {
|
|
41
|
-
"@alloy-js/core": "^0.
|
|
42
|
-
"@alloy-js/csharp": "^0.
|
|
43
|
-
"@alloy-js/typescript": "^0.
|
|
41
|
+
"@alloy-js/core": "^0.21.0",
|
|
42
|
+
"@alloy-js/csharp": "^0.21.0",
|
|
43
|
+
"@alloy-js/typescript": "^0.21.0",
|
|
44
44
|
"@typespec/compiler": "^1.5.0"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
|
-
"@alloy-js/cli": "^0.
|
|
48
|
-
"@alloy-js/core": "^0.
|
|
47
|
+
"@alloy-js/cli": "^0.21.0",
|
|
48
|
+
"@alloy-js/core": "^0.21.0",
|
|
49
49
|
"@alloy-js/rollup-plugin": "^0.1.0",
|
|
50
|
-
"@alloy-js/typescript": "^0.
|
|
50
|
+
"@alloy-js/typescript": "^0.21.0",
|
|
51
51
|
"@typespec/compiler": "^1.5.0",
|
|
52
52
|
"concurrently": "^9.1.2",
|
|
53
53
|
"pathe": "^2.0.3",
|
package/package.json.bak
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@typespec/emitter-framework",
|
|
3
|
-
"version": "0.13.0-dev.
|
|
3
|
+
"version": "0.13.0-dev.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"repository": {
|
|
@@ -55,16 +55,16 @@
|
|
|
55
55
|
"license": "MIT",
|
|
56
56
|
"description": "",
|
|
57
57
|
"peerDependencies": {
|
|
58
|
-
"@alloy-js/core": "^0.
|
|
59
|
-
"@alloy-js/csharp": "^0.
|
|
60
|
-
"@alloy-js/typescript": "^0.
|
|
58
|
+
"@alloy-js/core": "^0.21.0",
|
|
59
|
+
"@alloy-js/csharp": "^0.21.0",
|
|
60
|
+
"@alloy-js/typescript": "^0.21.0",
|
|
61
61
|
"@typespec/compiler": "^1.5.0"
|
|
62
62
|
},
|
|
63
63
|
"devDependencies": {
|
|
64
|
-
"@alloy-js/cli": "^0.
|
|
65
|
-
"@alloy-js/core": "^0.
|
|
64
|
+
"@alloy-js/cli": "^0.21.0",
|
|
65
|
+
"@alloy-js/core": "^0.21.0",
|
|
66
66
|
"@alloy-js/rollup-plugin": "^0.1.0",
|
|
67
|
-
"@alloy-js/typescript": "^0.
|
|
67
|
+
"@alloy-js/typescript": "^0.21.0",
|
|
68
68
|
"@typespec/compiler": "^1.5.0",
|
|
69
69
|
"concurrently": "^9.1.2",
|
|
70
70
|
"pathe": "^2.0.3",
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export * from "./class/declaration.js";
|
|
2
2
|
export * from "./enum/declaration.jsx";
|
|
3
|
+
export * from "./json-converter/json-converter-resolver.jsx";
|
|
4
|
+
export * from "./json-converter/json-converter.jsx";
|
|
3
5
|
export * from "./property/property.jsx";
|
|
4
6
|
export * from "./type-expression.jsx";
|