Skip to content

Commit

Permalink
fixes in ignore flag
Browse files Browse the repository at this point in the history
  • Loading branch information
helios2003 committed Jun 24, 2024
1 parent 71d74aa commit de2dd43
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 1 deletion.
13 changes: 12 additions & 1 deletion src/commands/optimize.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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',
Expand All @@ -27,13 +31,15 @@ export default class Optimize extends Command {
static description = 'optimize asyncapi specification file';
isInteractive = false;
selectedOptimizations?: Optimizations[];
disableOptimizations?: DisableOptimizations[];
outputMethod?: Outputs;

static examples = [
'asyncapi optimize ./asyncapi.yaml',
'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();
Expand Down Expand Up @@ -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;

Expand All @@ -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);

Expand Down
5 changes: 5 additions & 0 deletions src/core/flags/optimize.flags.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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',
Expand All @@ -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 }),
};
Expand Down

0 comments on commit de2dd43

Please sign in to comment.