Emitter usage
Emitter usage
Section titled “Emitter usage”- Via the command line
tsp compile . --emit=@typespec/http-client-csharp- Via the config
emit: - "@typespec/http-client-csharp"The config can be extended with options as follows:
emit: - "@typespec/http-client-csharp"options: "@typespec/http-client-csharp": option: valueEmitter options
Section titled “Emitter options”emitter-output-dir
Section titled “emitter-output-dir”Type: absolutePath
Defines the emitter output directory. Defaults to {output-dir}/@typespec/http-client-csharp
See Configuring output directory for more info
api-version
Section titled “api-version”Type: string | object
Use this flag if you would like to generate the sdk only for a specific version. Default value is the latest version. Also accepts values latest and all. For multi-service packages, provide a map from each service namespace to its desired version. Nested namespaces must be represented as nested objects in tspconfig.yaml; services not listed default to their latest version.
Options:
stringobject
generate-protocol-methods
Section titled “generate-protocol-methods”Type: boolean
Set to false to skip generation of protocol methods. The default value is true.
generate-convenience-methods
Section titled “generate-convenience-methods”Type: boolean
Set to false to skip generation of convenience methods. The default value is true.
unreferenced-types-handling
Section titled “unreferenced-types-handling”Type: "removeOrInternalize" | "internalize" | "keepAll"
Defines the strategy on how to handle unreferenced types. The default value is removeOrInternalize.
new-project
Section titled “new-project”Type: boolean
Set to true to overwrite the csproj if it already exists. The default value is false.
save-inputs
Section titled “save-inputs”Type: boolean
Set to true to save the tspCodeModel.json and Configuration.json files that are emitted and used as inputs to the generator. The default value is false.
package-name
Section titled “package-name”Type: string
Define the package name. If not specified, the first namespace defined in the TypeSpec is used as the package name.
Type: boolean
Set to true to automatically attempt to attach to a debugger when executing the C# generator. The default value is false.
logLevel
Section titled “logLevel”Type: "info" | "debug" | "verbose"
Set the log level for which to collect traces. The default value is info.
disable-xml-docs
Section titled “disable-xml-docs”Type: boolean
Set to true to disable XML documentation generation. The default value is false.
disable-roslyn-reduce
Section titled “disable-roslyn-reduce”Type: boolean
Set to true to skip the Roslyn reduce (simplification) post-processing step. This speeds up generation and is useful when iterating quickly. The default value is false.
generator-name
Section titled “generator-name”Type: string
The name of the generator. By default this is set to ScmCodeModelGenerator. Generator authors can set this to the name of a generator that inherits from ScmCodeModelGenerator.
emitter-extension-path
Section titled “emitter-extension-path”Type: string
Allows emitter authors to specify the path to a custom emitter package, allowing you to extend the emitter behavior. This should be set to import.meta.url if you are using a custom emitter.
plugins
Section titled “plugins”Type: string[]
Paths to generator plugin assemblies (DLLs) or directories containing plugin assemblies. Each plugin must contain a class that extends GeneratorPlugin. Paths may be absolute or relative to the resolved emitter-output-dir. For example, to load plugins that live in a codegen folder under the output directory:
options: "@typespec/http-client-csharp": plugins: - "codegen/MyPlugin.dll" # file relative to emitter-output-dir - "codegen" # directory containing plugin assemblies - "/abs/path/to/MyPlugin.dll" # absolute path used as-islicense
Section titled “license”Type: object { name, company, link, header, description }
License information for the generated client code.
Properties:
| Name | Type | Default | Description |
|---|---|---|---|
name | string | ||
company | string | ||
link | string | ||
header | string | ||
description | string |
sdk-context-options
Section titled “sdk-context-options”Type: object
The SDK context options that implement the CreateSdkContextOptions interface from the @azure-tools/typespec-client-generator-core package to be used by the CSharp emitter.