@typespec/http-client-csharp 1.0.0-alpha.20251111.2 → 1.0.0-alpha.20251112.1
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/emitter/src/lib/client-model-builder.js +20 -4
- package/dist/emitter/src/lib/client-model-builder.js.map +1 -1
- package/dist/generator/Microsoft.TypeSpec.Generator.ClientModel.StubLibrary.dll +0 -0
- package/dist/generator/Microsoft.TypeSpec.Generator.ClientModel.StubLibrary.pdb +0 -0
- package/dist/generator/Microsoft.TypeSpec.Generator.ClientModel.dll +0 -0
- package/dist/generator/Microsoft.TypeSpec.Generator.ClientModel.pdb +0 -0
- package/dist/generator/Microsoft.TypeSpec.Generator.Input.dll +0 -0
- package/dist/generator/Microsoft.TypeSpec.Generator.Input.pdb +0 -0
- package/dist/generator/Microsoft.TypeSpec.Generator.dll +0 -0
- package/dist/generator/Microsoft.TypeSpec.Generator.pdb +0 -0
- package/package.json +1 -1
|
@@ -31,8 +31,8 @@ export function createModel(sdkContext) {
|
|
|
31
31
|
const inputClients = fromSdkClients(sdkContext, rootClients, rootApiVersions);
|
|
32
32
|
// TODO -- TCGC now does not have constants field in its sdkPackage, they might add it in the future.
|
|
33
33
|
const constants = Array.from(sdkContext.__typeCache.constants.values());
|
|
34
|
-
// Fix naming conflicts for constants and
|
|
35
|
-
|
|
34
|
+
// Fix naming conflicts for constants, enums, and models
|
|
35
|
+
fixNamingConflicts(models, constants);
|
|
36
36
|
const clientModel = {
|
|
37
37
|
// To ensure deterministic library name, customers would need to set the package-name property as the ordering of the namespaces could change
|
|
38
38
|
// if the typespec is changed.
|
|
@@ -47,7 +47,7 @@ export function createModel(sdkContext) {
|
|
|
47
47
|
return clientModel;
|
|
48
48
|
}
|
|
49
49
|
/**
|
|
50
|
-
* Fixes naming conflicts for constants and
|
|
50
|
+
* Fixes naming conflicts for constants, enums, and models.
|
|
51
51
|
*
|
|
52
52
|
* TODO - TCGC has two issues which come from the same root cause: the name determination algorithm based on the typespec node of the constant.
|
|
53
53
|
* Typespec itself will always use the same node/Type instance for the same value constant, therefore a lot of names are not correct.
|
|
@@ -59,7 +59,7 @@ export function createModel(sdkContext) {
|
|
|
59
59
|
* @param enums - Array of input enum types
|
|
60
60
|
* @param constants - Array of input literal types (constants)
|
|
61
61
|
*/
|
|
62
|
-
function
|
|
62
|
+
function fixNamingConflicts(models, constants) {
|
|
63
63
|
// First, fix names for constants and constant-derived enums in model properties
|
|
64
64
|
for (const model of models) {
|
|
65
65
|
for (const property of model.properties) {
|
|
@@ -93,6 +93,22 @@ function fixConstantAndEnumNaming(models, constants) {
|
|
|
93
93
|
constantNameMap.set(constant.name, 1);
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
|
+
// Third, handle duplicate model names within the same namespace
|
|
97
|
+
// This can occur when namespace option is specified and models from different
|
|
98
|
+
// source namespaces end up in the same target namespace
|
|
99
|
+
const modelNameMap = new Map();
|
|
100
|
+
for (const model of models) {
|
|
101
|
+
// Use namespace + name as the key to detect duplicates within the same namespace
|
|
102
|
+
const key = `${model.namespace}.${model.name}`;
|
|
103
|
+
const count = modelNameMap.get(key);
|
|
104
|
+
if (count) {
|
|
105
|
+
modelNameMap.set(key, count + 1);
|
|
106
|
+
model.name = `${model.name}${count}`;
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
modelNameMap.set(key, 1);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
96
112
|
}
|
|
97
113
|
function navigateModels(sdkContext) {
|
|
98
114
|
for (const m of sdkContext.sdkPackage.models) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-model-builder.js","sourceRoot":"","sources":["../../../../emitter/src/lib/client-model-builder.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,+FAA+F;AAE/F,OAAO,EAAE,UAAU,EAAE,MAAM,6CAA6C,CAAC;AAIzE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE9E;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,UAAgC;IAC1D,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;IAEzC,uHAAuH;IACvH,iBAAiB,CAAC,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;IACrD,yHAAyH;IACzH,cAAc,CAAC,UAAU,CAAC,CAAC;IAE3B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAChE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG;QACtB,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAqB;QACjE,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAoB;KAChE,CAAC;IAEF,MAAM,kBAAkB,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC,cAAc,CAAC,CAAC;IACjG,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC;IACvC,MAAM,eAAe,GACnB,kBAAkB,CAAC,MAAM,GAAG,CAAC;QAC3B,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAe,CAAC,CAAC,IAAI,EAAE;QACnE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC;IAE1C,MAAM,YAAY,GAAG,cAAc,CAAC,UAAU,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;IAE9E,qGAAqG;IACrG,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IAExE,
|
|
1
|
+
{"version":3,"file":"client-model-builder.js","sourceRoot":"","sources":["../../../../emitter/src/lib/client-model-builder.ts"],"names":[],"mappings":"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"}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@typespec/http-client-csharp",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.20251112.1",
|
|
4
4
|
"author": "Microsoft Corporation",
|
|
5
5
|
"description": "TypeSpec library for emitting Http Client libraries for C#.",
|
|
6
6
|
"homepage": "https://typespec.io",
|