@typespec/http-client-csharp 1.0.0-alpha.20250826.5 → 1.0.0-alpha.20250827.3
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/index.d.ts +2 -0
- package/dist/emitter/src/index.d.ts.map +1 -1
- package/dist/emitter/src/index.js +3 -0
- package/dist/emitter/src/index.js.map +1 -1
- package/dist/emitter/src/lib/client-model-builder.d.ts.map +1 -1
- package/dist/emitter/src/lib/client-model-builder.js +15 -3
- package/dist/emitter/src/lib/client-model-builder.js.map +1 -1
- package/dist/emitter/src/lib/decorators.d.ts +18 -1
- package/dist/emitter/src/lib/decorators.d.ts.map +1 -1
- package/dist/emitter/src/lib/decorators.js +21 -0
- package/dist/emitter/src/lib/decorators.js.map +1 -1
- package/dist/emitter/src/tsp-index.d.ts +2 -0
- package/dist/emitter/src/tsp-index.d.ts.map +1 -0
- package/dist/emitter/src/tsp-index.js +9 -0
- package/dist/emitter/src/tsp-index.js.map +1 -0
- 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 +3 -1
- package/readme.md +40 -0
|
@@ -6,7 +6,9 @@ export { $lib, createDiagnostic, getTracer, reportDiagnostic } from "./lib/lib.j
|
|
|
6
6
|
export { LoggerLevel } from "./lib/logger-level.js";
|
|
7
7
|
export { Logger } from "./lib/logger.js";
|
|
8
8
|
export { CSharpEmitterOptions, CSharpEmitterOptionsSchema, defaultOptions, resolveOptions, } from "./options.js";
|
|
9
|
+
export { $dynamicModel, isDynamicModel } from "./lib/decorators.js";
|
|
9
10
|
export { CSharpEmitterContext, createCSharpEmitterContext } from "./sdk-context.js";
|
|
10
11
|
export { CodeModel } from "./type/code-model.js";
|
|
11
12
|
export { InputClient, InputModelType } from "./type/input-type.js";
|
|
13
|
+
export type { DynamicModelDecorator } from "../../generated-defs/TypeSpec.HttpClient.CSharp.js";
|
|
12
14
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../emitter/src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,cAAc,EACd,cAAc,GACf,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../emitter/src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,cAAc,EACd,cAAc,GACf,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAKnE,YAAY,EAAE,qBAAqB,EAAE,MAAM,oDAAoD,CAAC"}
|
|
@@ -12,5 +12,8 @@ export { Logger } from "./lib/logger.js";
|
|
|
12
12
|
export { CSharpEmitterOptionsSchema, defaultOptions, resolveOptions, } from "./options.js";
|
|
13
13
|
// we export `createCSharpEmitterContext` only for autorest.csharp because it uses the emitter to generate the code model file but not calling the dll here
|
|
14
14
|
// we could remove this export when in the future we deprecate autorest.csharp
|
|
15
|
+
export { $dynamicModel, isDynamicModel } from "./lib/decorators.js";
|
|
15
16
|
export { createCSharpEmitterContext } from "./sdk-context.js";
|
|
17
|
+
/** @internal */
|
|
18
|
+
export { $decorators } from "./tsp-index.js";
|
|
16
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../emitter/src/index.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,+FAA+F;AAE/F,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,4IAA4I;AAC5I,8EAA8E;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAEL,0BAA0B,EAC1B,cAAc,EACd,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,2JAA2J;AAC3J,8EAA8E;AAC9E,OAAO,EAAwB,0BAA0B,EAAE,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../emitter/src/index.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,+FAA+F;AAE/F,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,4IAA4I;AAC5I,8EAA8E;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAEL,0BAA0B,EAC1B,cAAc,EACd,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,2JAA2J;AAC3J,8EAA8E;AAC9E,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAwB,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAIpF,gBAAgB;AAChB,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-model-builder.d.ts","sourceRoot":"","sources":["../../../../emitter/src/lib/client-model-builder.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"client-model-builder.d.ts","sourceRoot":"","sources":["../../../../emitter/src/lib/client-model-builder.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAOlD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,oBAAoB,GAAG,SAAS,CAsEvE"}
|
|
@@ -13,9 +13,13 @@ import { firstLetterToUpperCase, getClientNamespaceString } from "./utils.js";
|
|
|
13
13
|
*/
|
|
14
14
|
export function createModel(sdkContext) {
|
|
15
15
|
const sdkPackage = sdkContext.sdkPackage;
|
|
16
|
-
//
|
|
17
|
-
|
|
18
|
-
const
|
|
16
|
+
// TO-DO: Consider using the TCGC model + enum cache once https://github.com/Azure/typespec-azure/issues/3180 is resolved
|
|
17
|
+
navigateModels(sdkContext);
|
|
18
|
+
const types = Array.from(sdkContext.__typeCache.types.values());
|
|
19
|
+
const [models, enums] = [
|
|
20
|
+
types.filter((type) => type.kind === "model"),
|
|
21
|
+
types.filter((type) => type.kind === "enum"),
|
|
22
|
+
];
|
|
19
23
|
const sdkApiVersionEnums = sdkPackage.enums.filter((e) => e.usage === UsageFlags.ApiVersionEnum);
|
|
20
24
|
const rootClients = sdkPackage.clients;
|
|
21
25
|
const rootApiVersions = sdkApiVersionEnums.length > 0
|
|
@@ -70,4 +74,12 @@ export function createModel(sdkContext) {
|
|
|
70
74
|
};
|
|
71
75
|
return clientModel;
|
|
72
76
|
}
|
|
77
|
+
function navigateModels(sdkContext) {
|
|
78
|
+
for (const m of sdkContext.sdkPackage.models) {
|
|
79
|
+
fromSdkType(sdkContext, m);
|
|
80
|
+
}
|
|
81
|
+
for (const e of sdkContext.sdkPackage.enums) {
|
|
82
|
+
fromSdkType(sdkContext, e);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
73
85
|
//# sourceMappingURL=client-model-builder.js.map
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"client-model-builder.js","sourceRoot":"","sources":["../../../../emitter/src/lib/client-model-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { SdkContext } from "@azure-tools/typespec-client-generator-core";
|
|
2
|
-
import { DecoratedType, Operation, Type } from "@typespec/compiler";
|
|
2
|
+
import { DecoratedType, Model, Namespace, Operation, Program, Type } from "@typespec/compiler";
|
|
3
|
+
import type { DynamicModelDecorator } from "../../../generated-defs/TypeSpec.HttpClient.CSharp.js";
|
|
3
4
|
import { ExternalDocs } from "../type/external-docs.js";
|
|
4
5
|
export declare function getExternalDocs(context: SdkContext, entity: Type): ExternalDocs | undefined;
|
|
5
6
|
/**
|
|
@@ -7,4 +8,20 @@ export declare function getExternalDocs(context: SdkContext, entity: Type): Exte
|
|
|
7
8
|
*/
|
|
8
9
|
export declare function getOperationId(context: SdkContext, entity: Operation): string | undefined;
|
|
9
10
|
export declare function hasDecorator(type: DecoratedType, name: string): boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Marks a model or namespace as dynamic, indicating it should generate dynamic model code.
|
|
13
|
+
* Can be applied to Model or Namespace types.
|
|
14
|
+
* @param context - The decorator context
|
|
15
|
+
* @param target - The model or namespace to mark as dynamic
|
|
16
|
+
* @beta
|
|
17
|
+
*/
|
|
18
|
+
export declare const $dynamicModel: DynamicModelDecorator;
|
|
19
|
+
/**
|
|
20
|
+
* Check if the given model or namespace is marked as dynamic.
|
|
21
|
+
* @param program - The TypeSpec program
|
|
22
|
+
* @param target - The model or namespace to check
|
|
23
|
+
* @returns true if the target is marked as dynamic, false otherwise
|
|
24
|
+
* @beta
|
|
25
|
+
*/
|
|
26
|
+
export declare function isDynamicModel(program: Program, target: Model | Namespace): boolean;
|
|
10
27
|
//# sourceMappingURL=decorators.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../../../emitter/src/lib/decorators.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,6CAA6C,CAAC;AACzE,OAAO,
|
|
1
|
+
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../../../emitter/src/lib/decorators.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,6CAA6C,CAAC;AACzE,OAAO,EACL,aAAa,EAEb,KAAK,EACL,SAAS,EACT,SAAS,EACT,OAAO,EACP,IAAI,EACL,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uDAAuD,CAAC;AACnG,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGxD,wBAAgB,eAAe,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,GAAG,YAAY,GAAG,SAAS,CAE3F;AAGD;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAEzF;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvE;AAID;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,EAAE,qBAK3B,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,GAAG,SAAS,GAAG,OAAO,CAEnF"}
|
|
@@ -14,4 +14,25 @@ export function getOperationId(context, entity) {
|
|
|
14
14
|
export function hasDecorator(type, name) {
|
|
15
15
|
return type.decorators.find((it) => it.decorator.name === name) !== undefined;
|
|
16
16
|
}
|
|
17
|
+
const dynamicModelKey = Symbol("dynamicModel");
|
|
18
|
+
/**
|
|
19
|
+
* Marks a model or namespace as dynamic, indicating it should generate dynamic model code.
|
|
20
|
+
* Can be applied to Model or Namespace types.
|
|
21
|
+
* @param context - The decorator context
|
|
22
|
+
* @param target - The model or namespace to mark as dynamic
|
|
23
|
+
* @beta
|
|
24
|
+
*/
|
|
25
|
+
export const $dynamicModel = (context, target) => {
|
|
26
|
+
context.program.stateSet(dynamicModelKey).add(target);
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Check if the given model or namespace is marked as dynamic.
|
|
30
|
+
* @param program - The TypeSpec program
|
|
31
|
+
* @param target - The model or namespace to check
|
|
32
|
+
* @returns true if the target is marked as dynamic, false otherwise
|
|
33
|
+
* @beta
|
|
34
|
+
*/
|
|
35
|
+
export function isDynamicModel(program, target) {
|
|
36
|
+
return program.stateSet(dynamicModelKey).has(target);
|
|
37
|
+
}
|
|
17
38
|
//# sourceMappingURL=decorators.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../../emitter/src/lib/decorators.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,+FAA+F;
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../../emitter/src/lib/decorators.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,+FAA+F;AAe/F,MAAM,eAAe,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AAC/C,MAAM,UAAU,eAAe,CAAC,OAAmB,EAAE,MAAY;IAC/D,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,eAAe,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AAC/C;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,OAAmB,EAAE,MAAiB;IACnE,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAmB,EAAE,IAAY;IAC5D,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,SAAS,CAAC;AAChF,CAAC;AAED,MAAM,eAAe,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AAE/C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAA0B,CAClD,OAAyB,EACzB,MAAyB,EACnB,EAAE;IACR,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACxD,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,OAAgB,EAAE,MAAyB;IACxE,OAAO,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACvD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tsp-index.d.ts","sourceRoot":"","sources":["../../../emitter/src/tsp-index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tsp-index.js","sourceRoot":"","sources":["../../../emitter/src/tsp-index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,gBAAgB;AAChB,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,4BAA4B,EAAE;QAC5B,YAAY,EAAE,aAAa;KACiB;CAC/C,CAAC"}
|
|
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.20250827.3",
|
|
4
4
|
"author": "Microsoft Corporation",
|
|
5
5
|
"description": "TypeSpec library for emitting Http Client libraries for C#.",
|
|
6
6
|
"homepage": "https://typespec.io",
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
"exports": {
|
|
22
22
|
".": {
|
|
23
23
|
"types": "./dist/emitter/src/index.d.ts",
|
|
24
|
+
"typespec": "./emitter/lib/main.tsp",
|
|
24
25
|
"default": "./dist/emitter/src/index.js"
|
|
25
26
|
}
|
|
26
27
|
},
|
|
@@ -29,6 +30,7 @@
|
|
|
29
30
|
"build:emitter": "tsc -p ./emitter/tsconfig.build.json",
|
|
30
31
|
"build:generator": "dotnet build ./generator",
|
|
31
32
|
"build": "npm run build:emitter && npm run build:generator && npm run extract-api",
|
|
33
|
+
"gen-extern-signature": "tspd --enable-experimental gen-extern-signature .",
|
|
32
34
|
"watch": "tsc -p ./emitter/tsconfig.build.json --watch",
|
|
33
35
|
"lint-typespec-library": "tsp compile . --warn-as-error --import @typespec/library-linter --no-emit",
|
|
34
36
|
"test:emitter": "vitest run -c ./emitter/vitest.config.ts",
|
package/readme.md
CHANGED
|
@@ -142,3 +142,43 @@ License information for the generated client code.
|
|
|
142
142
|
**Type:** `object`
|
|
143
143
|
|
|
144
144
|
The SDK context options that implement the `CreateSdkContextOptions` interface from the [`@azure-tools/typespec-client-generator-core`](https://www.npmjs.com/package/@azure-tools/typespec-client-generator-core) package to be used by the CSharp emitter.
|
|
145
|
+
|
|
146
|
+
## Decorators
|
|
147
|
+
|
|
148
|
+
### TypeSpec.HttpClient.CSharp
|
|
149
|
+
|
|
150
|
+
- [`@dynamicModel`](#@dynamicmodel)
|
|
151
|
+
|
|
152
|
+
#### `@dynamicModel`
|
|
153
|
+
|
|
154
|
+
Marks a model or namespace as dynamic, indicating it should generate dynamic model code.
|
|
155
|
+
Can be applied to Model or Namespace types.
|
|
156
|
+
|
|
157
|
+
```typespec
|
|
158
|
+
@TypeSpec.HttpClient.CSharp.dynamicModel
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
##### Target
|
|
162
|
+
|
|
163
|
+
`Model | Namespace`
|
|
164
|
+
|
|
165
|
+
##### Parameters
|
|
166
|
+
|
|
167
|
+
None
|
|
168
|
+
|
|
169
|
+
##### Examples
|
|
170
|
+
|
|
171
|
+
```tsp
|
|
172
|
+
@dynamicModel
|
|
173
|
+
model Pet {
|
|
174
|
+
name: string;
|
|
175
|
+
kind: string;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
@dynamicModel
|
|
179
|
+
namespace PetStore {
|
|
180
|
+
model Dog extends Pet {
|
|
181
|
+
breed: string;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
```
|