From de2dd4355d7a5afde7b9192fcef6734d4e81b796 Mon Sep 17 00:00:00 2001 From: helios2003 Date: Mon, 24 Jun 2024 09:25:09 +0530 Subject: [PATCH] fixes in ignore flag --- src/commands/optimize.ts | 13 ++++++++++++- src/core/flags/optimize.flags.ts | 5 +++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/commands/optimize.ts b/src/commands/optimize.ts index d5e81f4e499..76b7045bd53 100644 --- a/src/commands/optimize.ts +++ b/src/commands/optimize.ts @@ -18,6 +18,10 @@ export enum Optimizations { MOVE_ALL_TO_COMPONENTS='move-all-to-components', } +export enum DisableOptimizations { + SCHEMA='schema' +} + export enum Outputs { TERMINAL='terminal', NEW_FILE='new-file', @@ -27,6 +31,7 @@ export default class Optimize extends Command { static description = 'optimize asyncapi specification file'; isInteractive = false; selectedOptimizations?: Optimizations[]; + disableOptimizations?: DisableOptimizations[]; outputMethod?: Outputs; static examples = [ @@ -34,6 +39,7 @@ export default class Optimize extends Command { 'asyncapi optimize ./asyncapi.yaml --no-tty', 'asyncapi optimize ./asyncapi.yaml --optimization=remove-components --optimization=reuse-components --optimization=move-all-to-components --no-tty', 'asyncapi optimize ./asyncapi.yaml --optimization=remove-components --output=terminal --no-tty', + 'asyncapi optimize ./asyncapi.yaml --ignore=schema' ]; static flags = optimizeFlags(); @@ -74,6 +80,7 @@ export default class Optimize extends Command { } this.isInteractive = !flags['no-tty']; this.selectedOptimizations = flags.optimization as Optimizations[]; + this.disableOptimizations = flags.ignore as DisableOptimizations[]; this.outputMethod = flags.output as Outputs; this.metricsMetadata.optimized = false; @@ -93,7 +100,11 @@ export default class Optimize extends Command { moveAllToComponents: this.selectedOptimizations.includes(Optimizations.MOVE_ALL_TO_COMPONENTS), removeComponents: this.selectedOptimizations.includes(Optimizations.REMOVE_COMPONENTS), reuseComponents: this.selectedOptimizations.includes(Optimizations.REUSE_COMPONENTS) - }, output: Output.YAML}); + }, + disableOptimizationFor: { + schema: this.disableOptimizations.includes(DisableOptimizations.SCHEMA) + }, + output: Output.YAML}); this.collectMetricsData(report); diff --git a/src/core/flags/optimize.flags.ts b/src/core/flags/optimize.flags.ts index b9a5aa2c707..8fc1f8cb58f 100644 --- a/src/core/flags/optimize.flags.ts +++ b/src/core/flags/optimize.flags.ts @@ -7,6 +7,10 @@ export enum Optimizations { MOVE_ALL_TO_COMPONENTS='move-all-to-components', } +export enum DisableOptimizations { + SCHEMA='schema', +} + export enum Outputs { TERMINAL='terminal', NEW_FILE='new-file', @@ -17,6 +21,7 @@ export const optimizeFlags = () => { return { help: Flags.help({ char: 'h' }), optimization: Flags.string({char: 'p', default: Object.values(Optimizations), options: Object.values(Optimizations), multiple: true, description: 'select the type of optimizations that you want to apply.'}), + ignore: Flags.string({char: 'i', default: [], options: Object.values(DisableOptimizations), multiple: true, description: 'list of components to be ignored from the optimization process'}), output: Flags.string({char: 'o', default: Outputs.TERMINAL, options: Object.values(Outputs), description: 'select where you want the output.'}), 'no-tty': Flags.boolean({ description: 'do not use an interactive terminal', default: false }), };