diff --git a/src/apps/cli/internal/base/BaseGeneratorCommand.ts b/src/apps/cli/internal/base/BaseGeneratorCommand.ts index 1fa8674c3..f71b69584 100644 --- a/src/apps/cli/internal/base/BaseGeneratorCommand.ts +++ b/src/apps/cli/internal/base/BaseGeneratorCommand.ts @@ -25,6 +25,7 @@ export interface GeneratorOptions { noOverwriteGlobs: string[]; mapBaseUrlToFolder: any; disabledHooks: Record; + compile: boolean; registry: { url?: string; auth?: string; @@ -53,6 +54,7 @@ export abstract class BaseGeneratorCommand extends Command { noOverwriteGlobs: flags['no-overwrite'], mapBaseUrlToFolder: parsedFlags.mapBaseUrlToFolder, disabledHooks: parsedFlags.disableHooks, + compile: flags.compile, registry: { url: flags['registry-url'], auth: flags['registry-auth'], diff --git a/src/apps/cli/internal/flags/generate/fromTemplate.flags.ts b/src/apps/cli/internal/flags/generate/fromTemplate.flags.ts index 93a218457..5fdc1aa30 100644 --- a/src/apps/cli/internal/flags/generate/fromTemplate.flags.ts +++ b/src/apps/cli/internal/flags/generate/fromTemplate.flags.ts @@ -1,7 +1,13 @@ import { sharedFlags } from './sharedFlags'; +import { Flags } from '@oclif/core'; export const fromTemplateFlags = () => { return { ...sharedFlags, + compile: Flags.boolean({ + default: true, + description: 'Compile the template before generating files (defaults to true)', + allowNo: true, + }) }; }; diff --git a/src/domains/services/generator.service.ts b/src/domains/services/generator.service.ts index b24cda8d6..6831ccd88 100644 --- a/src/domains/services/generator.service.ts +++ b/src/domains/services/generator.service.ts @@ -97,10 +97,12 @@ export class GeneratorService extends BaseService { } const logs: string[] = []; + const {compile, ...restOptions} = options as any; + const generator = new AsyncAPIGenerator( template, output || path.resolve(os.tmpdir(), 'asyncapi-generator'), - options, + {...restOptions, compile}, ); const s = interactive ? spinner()