Skip to content

Commit

Permalink
[http-client-csharp] remove unused emitter options (microsoft#5803)
Browse files Browse the repository at this point in the history
fixes: microsoft#5746

Follow up autorest PR to migrate the removed options:
Azure/autorest.csharp#5227
  • Loading branch information
jorgerangel-msft authored Jan 31, 2025
1 parent fcb4421 commit 0a6c595
Show file tree
Hide file tree
Showing 70 changed files with 68 additions and 255 deletions.
37 changes: 2 additions & 35 deletions packages/http-client-csharp/emitter/src/emitter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ export async function $onEmit(context: EmitContext<NetEmitterOptions>) {
process.exit(1);
}
const tspNamespace = root.Name; // this is the top-level namespace defined in the typespec file, which is actually always different from the namespace of the SDK
// await program.host.writeFile(outPath, prettierOutput(JSON.stringify(root, null, 2)));

if (root) {
const generatedFolder = resolvePath(outputFolder, "src", "Generated");

Expand All @@ -93,37 +93,8 @@ export async function $onEmit(context: EmitContext<NetEmitterOptions>) {
"output-folder": ".",
namespace: namespace,
"library-name": options["library-name"] ?? namespace,
"single-top-level-client": options["single-top-level-client"],
"unreferenced-types-handling": options["unreferenced-types-handling"],
"keep-non-overloadable-protocol-signature":
options["keep-non-overloadable-protocol-signature"],
"model-namespace": options["model-namespace"],
"models-to-treat-empty-string-as-null": options["models-to-treat-empty-string-as-null"],
"intrinsic-types-to-treat-empty-string-as-null": options[
"models-to-treat-empty-string-as-null"
]
? options["additional-intrinsic-types-to-treat-empty-string-as-null"].concat(
["Uri", "Guid", "ResourceIdentifier", "DateTimeOffset"].filter(
(item) =>
options["additional-intrinsic-types-to-treat-empty-string-as-null"].indexOf(
item,
) < 0,
),
)
: undefined,
"methods-to-keep-client-default-value": options["methods-to-keep-client-default-value"],
"head-as-boolean": options["head-as-boolean"],
"deserialize-null-collection-as-null-value":
options["deserialize-null-collection-as-null-value"],
flavor: options["flavor"],
//only emit these if they are not the default values
"generate-sample-project":
options["generate-sample-project"] === true
? undefined
: options["generate-sample-project"],
"generate-test-project":
options["generate-test-project"] === false ? undefined : options["generate-test-project"],
"use-model-reader-writer": options["use-model-reader-writer"] ?? true,
"disable-xml-docs":
options["disable-xml-docs"] === false ? undefined : options["disable-xml-docs"],
};
Expand All @@ -142,9 +113,6 @@ export async function $onEmit(context: EmitContext<NetEmitterOptions>) {
Logger.getInstance().info(`Checking if ${csProjFile} exists`);
const newProjectOption =
options["new-project"] || !checkFile(csProjFile) ? "--new-project" : "";
const existingProjectOption = options["existing-project-folder"]
? `--existing-project-folder ${options["existing-project-folder"]}`
: "";
const debugFlag = (options.debug ?? false) ? "--debug" : "";

const emitterPath = options["emitter-extension-path"] ?? import.meta.url;
Expand All @@ -153,7 +121,7 @@ export async function $onEmit(context: EmitContext<NetEmitterOptions>) {
projectRoot + "/dist/generator/Microsoft.Generator.CSharp.dll",
);

const command = `dotnet --roll-forward Major ${generatorPath} ${outputFolder} -p ${options["plugin-name"]}${constructCommandArg(newProjectOption)}${constructCommandArg(existingProjectOption)}${constructCommandArg(debugFlag)}`;
const command = `dotnet --roll-forward Major ${generatorPath} ${outputFolder} -p ${options["plugin-name"]}${constructCommandArg(newProjectOption)}${constructCommandArg(debugFlag)}`;
Logger.getInstance().info(command);

try {
Expand All @@ -167,7 +135,6 @@ export async function $onEmit(context: EmitContext<NetEmitterOptions>) {
"-p",
options["plugin-name"],
newProjectOption,
existingProjectOption,
debugFlag,
],
{ stdio: "inherit" },
Expand Down
58 changes: 0 additions & 58 deletions packages/http-client-csharp/emitter/src/options.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,27 +9,14 @@ export interface NetEmitterOptions extends SdkEmitterOptions {
logFile?: string;
namespace: string;
"library-name": string;
"single-top-level-client"?: boolean;
skipSDKGeneration?: boolean;
"unreferenced-types-handling"?: "removeOrInternalize" | "internalize" | "keepAll";
"new-project"?: boolean;
"clear-output-folder"?: boolean;
"save-inputs"?: boolean;
"model-namespace"?: boolean;
"existing-project-folder"?: string;
"keep-non-overloadable-protocol-signature"?: boolean;
debug?: boolean;
"models-to-treat-empty-string-as-null"?: string[];
"additional-intrinsic-types-to-treat-empty-string-as-null"?: string[];
"methods-to-keep-client-default-value"?: string[];
"deserialize-null-collection-as-null-value"?: boolean;
logLevel?: LoggerLevel;
"package-dir"?: string;
"head-as-boolean"?: boolean;
flavor?: string;
"generate-sample-project"?: boolean;
"generate-test-project"?: boolean;
"use-model-reader-writer"?: boolean;
"disable-xml-docs"?: boolean;
"plugin-name"?: string;
"emitter-extension-path"?: string;
Expand All @@ -47,7 +34,6 @@ export const NetEmitterOptionsSchema: JSONSchemaType<NetEmitterOptions> = {
logFile: { type: "string", nullable: true },
namespace: { type: "string" },
"library-name": { type: "string" },
"single-top-level-client": { type: "boolean", nullable: true },
skipSDKGeneration: { type: "boolean", default: false, nullable: true },
"unreferenced-types-handling": {
type: "string",
Expand All @@ -62,50 +48,12 @@ export const NetEmitterOptionsSchema: JSONSchemaType<NetEmitterOptions> = {
"generate-convenience-methods": { type: "boolean", nullable: true },
"flatten-union-as-enum": { type: "boolean", nullable: true },
"package-name": { type: "string", nullable: true },
"existing-project-folder": { type: "string", nullable: true },
"keep-non-overloadable-protocol-signature": {
type: "boolean",
nullable: true,
},
debug: { type: "boolean", nullable: true },
"models-to-treat-empty-string-as-null": {
type: "array",
nullable: true,
items: { type: "string" },
},
"additional-intrinsic-types-to-treat-empty-string-as-null": {
type: "array",
nullable: true,
items: { type: "string" },
},
"methods-to-keep-client-default-value": {
type: "array",
nullable: true,
items: { type: "string" },
},
"deserialize-null-collection-as-null-value": {
type: "boolean",
nullable: true,
},
logLevel: {
type: "string",
enum: [LoggerLevel.INFO, LoggerLevel.DEBUG, LoggerLevel.VERBOSE],
nullable: true,
},
"package-dir": { type: "string", nullable: true },
"head-as-boolean": { type: "boolean", nullable: true },
flavor: { type: "string", nullable: true },
"generate-sample-project": {
type: "boolean",
nullable: true,
default: true,
},
"generate-test-project": {
type: "boolean",
nullable: true,
default: false,
},
"use-model-reader-writer": { type: "boolean", nullable: true },
"disable-xml-docs": { type: "boolean", nullable: true },
"plugin-name": { type: "string", nullable: true },
"emitter-extension-path": { type: "string", nullable: true },
Expand All @@ -125,13 +73,7 @@ export const defaultOptions = {
"generate-convenience-methods": true,
"package-name": undefined,
debug: undefined,
"models-to-treat-empty-string-as-null": undefined,
"additional-intrinsic-types-to-treat-empty-string-as-null": [],
"methods-to-keep-client-default-value": undefined,
"deserialize-null-collection-as-null-value": undefined,
logLevel: LoggerLevel.INFO,
flavor: undefined,
"generate-test-project": false,
"plugin-name": "ClientModelPlugin",
"emitter-extension-path": undefined,
};
Expand Down
12 changes: 0 additions & 12 deletions packages/http-client-csharp/emitter/src/type/configuration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,7 @@ export interface Configuration {
"output-folder": string;
namespace: string;
"library-name": string | null;
flavor?: string;
"single-top-level-client"?: boolean;
"unreferenced-types-handling"?: "removeOrInternalize" | "internalize" | "keepAll";
"model-namespace"?: boolean;
"models-to-treat-empty-string-as-null"?: string[];
"additional-intrinsic-types-to-treat-empty-string-as-null"?: string[];
"methods-to-keep-client-default-value"?: string[];
"keep-non-overloadable-protocol-signature"?: boolean;
"intrinsic-types-to-treat-empty-string-as-null"?: string[];
"head-as-boolean"?: boolean;
"deserialize-null-collection-as-null-value"?: boolean;
"generate-sample-project"?: boolean;
"generate-test-project"?: boolean;
"use-model-reader-writer"?: boolean;
"disable-xml-docs"?: boolean;
}
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,6 @@ private Configuration(
string outputPath,
Dictionary<string, BinaryData> additionalConfigOptions,
bool clearOutputFolder,
bool generateModelFactory,
bool generateSampleProject,
bool generateTestProject,
string libraryName,
bool useModelNamespace,
string libraryNamespace,
Expand All @@ -56,9 +53,6 @@ private Configuration(
OutputDirectory = outputPath;
AdditionalConfigOptions = additionalConfigOptions;
ClearOutputFolder = clearOutputFolder;
GenerateModelFactory = generateModelFactory;
GenerateSampleProject = generateSampleProject;
GenerateTestProject = generateTestProject;
LibraryName = libraryName;
UseModelNamespace = useModelNamespace;
RootNamespace = GetCleanNameSpace(libraryNamespace);
Expand Down Expand Up @@ -129,9 +123,6 @@ private static int GetSegmentCount(string libraryNamespace)
private static class Options
{
public const string ClearOutputFolder = "clear-output-folder";
public const string GenerateModelFactory = "generate-model-factory";
public const string GenerateSampleProject = "generate-sample-project";
public const string GenerateTestProject = "generate-test-project";
public const string LibraryName = "library-name";
public const string Namespace = "namespace";
public const string UseModelNamespace = "use-model-namespace";
Expand Down Expand Up @@ -220,9 +211,6 @@ internal static Configuration Load(string outputPath, string? json = null)
Path.GetFullPath(outputPath),
ParseAdditionalConfigOptions(root),
ReadOption(root, Options.ClearOutputFolder),
ReadOption(root, Options.GenerateModelFactory),
ReadOption(root, Options.GenerateSampleProject),
ReadOption(root, Options.GenerateTestProject),
ReadRequiredStringOption(root, Options.LibraryName),
ReadOption(root, Options.UseModelNamespace),
ReadRequiredStringOption(root, Options.Namespace),
Expand All @@ -236,10 +224,7 @@ internal static Configuration Load(string outputPath, string? json = null)
private static readonly Dictionary<string, bool> _defaultBoolOptionValues = new()
{
{ Options.UseModelNamespace, true },
{ Options.GenerateModelFactory, true },
{ Options.GenerateSampleProject, true },
{ Options.ClearOutputFolder, true },
{ Options.GenerateTestProject, false },
{ Options.DisableXmlDocs, false },
};

Expand All @@ -249,9 +234,6 @@ internal static Configuration Load(string outputPath, string? json = null)
private static readonly HashSet<string> _knownOptions = new()
{
Options.ClearOutputFolder,
Options.GenerateModelFactory,
Options.GenerateSampleProject,
Options.GenerateTestProject,
Options.LibraryName,
Options.UseModelNamespace,
Options.Namespace,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
{
"output-folder": ".",
"namespace": "Authentication.ApiKey",
"library-name": "Authentication.ApiKey",
"use-model-reader-writer": true
"library-name": "Authentication.ApiKey"
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
{
"output-folder": ".",
"namespace": "Authentication.Http.Custom",
"library-name": "Authentication.Http.Custom",
"use-model-reader-writer": true
"library-name": "Authentication.Http.Custom"
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
{
"output-folder": ".",
"namespace": "Authentication.OAuth2",
"library-name": "Authentication.OAuth2",
"use-model-reader-writer": true
"library-name": "Authentication.OAuth2"
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
{
"output-folder": ".",
"namespace": "Authentication.Union",
"library-name": "Authentication.Union",
"use-model-reader-writer": true
"library-name": "Authentication.Union"
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
{
"output-folder": ".",
"namespace": "Client.Naming",
"library-name": "Client.Naming",
"use-model-reader-writer": true
"library-name": "Client.Naming"
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
{
"output-folder": ".",
"namespace": "Client.Structure.Service",
"library-name": "Client.Structure.Service",
"use-model-reader-writer": true
"library-name": "Client.Structure.Service"
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
{
"output-folder": ".",
"namespace": "Client.Structure.Service.Default",
"library-name": "Client.Structure.Service.Default",
"use-model-reader-writer": true
"library-name": "Client.Structure.Service.Default"
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
{
"output-folder": ".",
"namespace": "Client.Structure.Service.Multi.Client",
"library-name": "Client.Structure.Service.Multi.Client",
"use-model-reader-writer": true
"library-name": "Client.Structure.Service.Multi.Client"
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
{
"output-folder": ".",
"namespace": "Client.Structure.Service.Renamed.Operation",
"library-name": "Client.Structure.Service.Renamed.Operation",
"use-model-reader-writer": true
"library-name": "Client.Structure.Service.Renamed.Operation"
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
{
"output-folder": ".",
"namespace": "Client.Structure.Service.TwoOperationGroup",
"library-name": "Client.Structure.Service.TwoOperationGroup",
"use-model-reader-writer": true
"library-name": "Client.Structure.Service.TwoOperationGroup"
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
{
"output-folder": ".",
"namespace": "Encode.Bytes",
"library-name": "Encode.Bytes",
"use-model-reader-writer": true
"library-name": "Encode.Bytes"
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
{
"output-folder": ".",
"namespace": "Encode.Datetime",
"library-name": "Encode.Datetime",
"use-model-reader-writer": true
"library-name": "Encode.Datetime"
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
{
"output-folder": ".",
"namespace": "Encode.Duration",
"library-name": "Encode.Duration",
"use-model-reader-writer": true
"library-name": "Encode.Duration"
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
{
"output-folder": ".",
"namespace": "Encode.Numeric",
"library-name": "Encode.Numeric",
"use-model-reader-writer": true
"library-name": "Encode.Numeric"
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
{
"output-folder": ".",
"namespace": "Parameters.Basic",
"library-name": "Parameters.Basic",
"use-model-reader-writer": true
"library-name": "Parameters.Basic"
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
{
"output-folder": ".",
"namespace": "Parameters.BodyOptionality",
"library-name": "Parameters.BodyOptionality",
"use-model-reader-writer": true
"library-name": "Parameters.BodyOptionality"
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
{
"output-folder": ".",
"namespace": "Parameters.CollectionFormat",
"library-name": "Parameters.CollectionFormat",
"use-model-reader-writer": true
"library-name": "Parameters.CollectionFormat"
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
{
"output-folder": ".",
"namespace": "Parameters.Spread",
"library-name": "Parameters.Spread",
"use-model-reader-writer": true
"library-name": "Parameters.Spread"
}
Loading

0 comments on commit 0a6c595

Please sign in to comment.