From 8721a02da15268e02cbfe7e11d71ab7fa228a5e4 Mon Sep 17 00:00:00 2001 From: Symbat Nurbay Date: Thu, 16 May 2024 15:28:33 +0200 Subject: [PATCH 1/4] repo-tools: add additional properties to generate command Signed-off-by: Symbat Nurbay --- .changeset/strong-moose-work.md | 5 +++++ packages/repo-tools/src/commands/index.ts | 4 ++++ .../package/schema/openapi/generate/client.ts | 16 +++++++++++++--- .../package/schema/openapi/generate/index.ts | 2 +- 4 files changed, 23 insertions(+), 4 deletions(-) create mode 100644 .changeset/strong-moose-work.md diff --git a/.changeset/strong-moose-work.md b/.changeset/strong-moose-work.md new file mode 100644 index 0000000000..0c9cf01d94 --- /dev/null +++ b/.changeset/strong-moose-work.md @@ -0,0 +1,5 @@ +--- +'@backstage/repo-tools': minor +--- + +Add --additional-properties option to generate command to pass properties to @openapitools/openapi-generator-cli diff --git a/packages/repo-tools/src/commands/index.ts b/packages/repo-tools/src/commands/index.ts index 83266ea9f9..a07b01077f 100644 --- a/packages/repo-tools/src/commands/index.ts +++ b/packages/repo-tools/src/commands/index.ts @@ -54,6 +54,10 @@ function registerPackageCommand(program: Command) { .description( 'Command to generate a client and/or a server stub from an OpenAPI spec.', ) + .option('--additional-properties [properties]') + .description( + 'Additional properties that can be passed to @openapitools/openapi-generator-cli', + ) .action( lazy(() => import('./package/schema/openapi/generate').then(m => m.command), diff --git a/packages/repo-tools/src/commands/package/schema/openapi/generate/client.ts b/packages/repo-tools/src/commands/package/schema/openapi/generate/client.ts index 6963e02664..1f4b2e5152 100644 --- a/packages/repo-tools/src/commands/package/schema/openapi/generate/client.ts +++ b/packages/repo-tools/src/commands/package/schema/openapi/generate/client.ts @@ -27,12 +27,18 @@ import { exec } from '../../../../../lib/exec'; import { resolvePackagePath } from '@backstage/backend-plugin-api'; import { getPathToCurrentOpenApiSpec } from '../../../../../lib/openapi/helpers'; -async function generate(outputDirectory: string) { +async function generate( + outputDirectory: string, + additionalProperties?: string, +) { const resolvedOpenapiPath = await getPathToCurrentOpenApiSpec(); const resolvedOutputDirectory = cliPaths.resolveTargetRoot( outputDirectory, OUTPUT_PATH, ); + const openapiProperties = additionalProperties + ? `--additional-properties=${additionalProperties}` + : ''; mkdirpSync(resolvedOutputDirectory); await fs.mkdirp(resolvedOutputDirectory); @@ -60,6 +66,7 @@ async function generate(outputDirectory: string) { ), '--generator-key', 'v3.0', + openapiProperties, ], { maxBuffer: Number.MAX_VALUE, @@ -87,9 +94,12 @@ async function generate(outputDirectory: string) { }); } -export async function command(outputPackage: string): Promise { +export async function command( + outputPackage: string, + additionalProperties?: string, +): Promise { try { - await generate(outputPackage); + await generate(outputPackage, additionalProperties); console.log( chalk.green(`Generated client in ${outputPackage}/${OUTPUT_PATH}`), ); diff --git a/packages/repo-tools/src/commands/package/schema/openapi/generate/index.ts b/packages/repo-tools/src/commands/package/schema/openapi/generate/index.ts index 1e48fe3825..5356db3244 100644 --- a/packages/repo-tools/src/commands/package/schema/openapi/generate/index.ts +++ b/packages/repo-tools/src/commands/package/schema/openapi/generate/index.ts @@ -26,7 +26,7 @@ export async function command(opts: OptionValues) { process.exit(1); } if (opts.clientPackage) { - await generateClient(opts.clientPackage); + await generateClient(opts.clientPackage, opts.additionalProperties); } if (opts.server) { await generateServer(); From 0714031ca8b1bd8342dc192b73b5443e514bcf06 Mon Sep 17 00:00:00 2001 From: Symbat Nurbay Date: Fri, 17 May 2024 10:15:23 +0200 Subject: [PATCH 2/4] repo-tools: rename --additional-properties to --client-additional-properties Signed-off-by: Symbat Nurbay --- packages/repo-tools/src/commands/index.ts | 2 +- .../package/schema/openapi/generate/client.ts | 12 ++++++------ .../package/schema/openapi/generate/index.ts | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/repo-tools/src/commands/index.ts b/packages/repo-tools/src/commands/index.ts index a07b01077f..24ec2af411 100644 --- a/packages/repo-tools/src/commands/index.ts +++ b/packages/repo-tools/src/commands/index.ts @@ -54,7 +54,7 @@ function registerPackageCommand(program: Command) { .description( 'Command to generate a client and/or a server stub from an OpenAPI spec.', ) - .option('--additional-properties [properties]') + .option('--client-additional-properties [properties]') .description( 'Additional properties that can be passed to @openapitools/openapi-generator-cli', ) diff --git a/packages/repo-tools/src/commands/package/schema/openapi/generate/client.ts b/packages/repo-tools/src/commands/package/schema/openapi/generate/client.ts index 1f4b2e5152..b843cd27ec 100644 --- a/packages/repo-tools/src/commands/package/schema/openapi/generate/client.ts +++ b/packages/repo-tools/src/commands/package/schema/openapi/generate/client.ts @@ -29,15 +29,15 @@ import { getPathToCurrentOpenApiSpec } from '../../../../../lib/openapi/helpers' async function generate( outputDirectory: string, - additionalProperties?: string, + clientAdditionalProperties?: string, ) { const resolvedOpenapiPath = await getPathToCurrentOpenApiSpec(); const resolvedOutputDirectory = cliPaths.resolveTargetRoot( outputDirectory, OUTPUT_PATH, ); - const openapiProperties = additionalProperties - ? `--additional-properties=${additionalProperties}` + const additionalProperties = clientAdditionalProperties + ? `--additional-properties=${clientAdditionalProperties}` : ''; mkdirpSync(resolvedOutputDirectory); @@ -66,7 +66,7 @@ async function generate( ), '--generator-key', 'v3.0', - openapiProperties, + additionalProperties, ], { maxBuffer: Number.MAX_VALUE, @@ -96,10 +96,10 @@ async function generate( export async function command( outputPackage: string, - additionalProperties?: string, + clientAdditionalProperties?: string, ): Promise { try { - await generate(outputPackage, additionalProperties); + await generate(outputPackage, clientAdditionalProperties); console.log( chalk.green(`Generated client in ${outputPackage}/${OUTPUT_PATH}`), ); diff --git a/packages/repo-tools/src/commands/package/schema/openapi/generate/index.ts b/packages/repo-tools/src/commands/package/schema/openapi/generate/index.ts index 5356db3244..41884e2e90 100644 --- a/packages/repo-tools/src/commands/package/schema/openapi/generate/index.ts +++ b/packages/repo-tools/src/commands/package/schema/openapi/generate/index.ts @@ -26,7 +26,7 @@ export async function command(opts: OptionValues) { process.exit(1); } if (opts.clientPackage) { - await generateClient(opts.clientPackage, opts.additionalProperties); + await generateClient(opts.clientPackage, opts.clientAdditionalProperties); } if (opts.server) { await generateServer(); From 70b51b218b97900d2fa74a1e512cc651269d6fc7 Mon Sep 17 00:00:00 2001 From: Symbat Nurbay Date: Fri, 17 May 2024 10:20:14 +0200 Subject: [PATCH 3/4] repo-tools: change changeset Signed-off-by: Symbat Nurbay --- .changeset/strong-moose-work.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/strong-moose-work.md b/.changeset/strong-moose-work.md index 0c9cf01d94..20d35da7f0 100644 --- a/.changeset/strong-moose-work.md +++ b/.changeset/strong-moose-work.md @@ -2,4 +2,4 @@ '@backstage/repo-tools': minor --- -Add --additional-properties option to generate command to pass properties to @openapitools/openapi-generator-cli +Add --client-additional-properties option to generate command to pass properties to @openapitools/openapi-generator-cli From 11540f4f707c457241a2c5fcd7277333b50fcb98 Mon Sep 17 00:00:00 2001 From: Ben Lambert Date: Mon, 27 May 2024 14:04:05 +0200 Subject: [PATCH 4/4] Update strong-moose-work.md Signed-off-by: Ben Lambert --- .changeset/strong-moose-work.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.changeset/strong-moose-work.md b/.changeset/strong-moose-work.md index 20d35da7f0..443b708e51 100644 --- a/.changeset/strong-moose-work.md +++ b/.changeset/strong-moose-work.md @@ -1,5 +1,5 @@ --- -'@backstage/repo-tools': minor +'@backstage/repo-tools': patch --- -Add --client-additional-properties option to generate command to pass properties to @openapitools/openapi-generator-cli +Add `--client-additional-properties` option to `openapi generate` command